Think Split Plugin 是一个用于处理 AI 模型响应中思考过程的插件。它能够自动识别并分离响应内容中的 <think> 标签内容,将思考过程从主要回答中提取到独立的 reasoning_content 字段,使得 AI 的思考过程和最终答案能够分开展示和处理。
<think>...</think> 标签reasoning_content 字段插件识别以下格式的思考内容:
<think>
这里是 AI 的思考过程...
</think>
或
\n<think>
这里是 AI 的思考过程...
</think>\n
转换前:
{
"choices": [{
"message": {
"content": "\n<think>\n这是一个关于数学的问题...\n</think>\n答案是 42。"
}
}]
}
转换后:
{
"choices": [{
"message": {
"content": "答案是 42。",
"reasoning_content": "这是一个关于数学的问题..."
}
}]
}
{
"model": "gpt-4",
"type": 1,
"plugin": {
"think-split": {
"enable": true
}
}
}
{
"model": "claude-3-opus",
"type": 1,
"retry_times": 3,
"plugin": {
"think-split": {
"enable": true
}
}
}
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
enable |
bool | 是 | false | 是否启用 Think Split 插件 |
Think Split Plugin 可以与其他插件配合使用:
{
"model": "gpt-4",
"plugin": {
"think-split": {
"enable": true
},
"cache": {
"enable": true,
"ttl": 300
},
"web-search": {
"enable": true
}
}
}
<think> 标签正确闭合,否则可能无法正确识别<think> 标签reasoning_content 字段,会被覆盖enable 是否设置为 true<think> 标签<think> 标签格式是否正确reasoning_content 字段是否在 delta 中{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "量子纠缠是量子力学中的一种现象...",
"reasoning_content": "用户询问量子纠缠,这是量子物理学中的核心概念..."
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-4","choices":[{"index":0,"delta":{"reasoning_content":"开始思考问题..."},"finish_reason":null}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-4","choices":[{"index":0,"delta":{"content":"量子纠缠是"},"finish_reason":null}]}
data: [DONE]