Thinking Mode
Thinking Mode(扩展思维链)使推理模型在生成最终答案前进行深度分析。适用于复杂问题求解、数学推理、逻辑密集型任务和多步分析。
支持的模型
Thinking Mode 仅在推理模型上可用:
| 模型 | 自动启用 | 手动启用 |
|---|---|---|
deepseek-r1 | 是(默认) | 是 |
deepseek-r1-0528 | 是(默认) | 是 |
qwq-32b | 否 | 是 |
beijing-unicom-qwen3.5-397b | 否 | 是 |
如何启用
方式一:使用推理模型(自动启用)
直接将 model 参数设为推理模型,Thinking Mode 自动启用:
{
"model": "deepseek-r1",
"messages": [{ "role": "user", "content": "解这道数学题..." }]
}
方式二:用 thinking 参数显式启用
{
"model": "deepseek-r1",
"messages": [{ "role": "user", "content": "分析这个逻辑..." }],
"thinking": { "type": "enabled" }
}
响应格式
启用 Thinking Mode 后,响应同时包含推理过程和最终答案:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "答案是 42。",
"reasoning_content": "首先,让我分解问题...\n第 1 步:...\n第 2 步:...\n..."
}
}
]
}
| 字段 | 说明 |
|---|---|
content | 给用户的最终答案。 |
reasoning_content | 扩展思维链过程。包含模型内部推理,可能有自我纠正、验证和多步分析。 |
参数限制
使用 Thinking Mode 时,以下参数有特殊行为:
| 参数 | 行为 |
|---|---|
max_tokens | 支持。推理模型默认 32K,最大 64K。 |
temperature | 不适用。设了不报错但无效。 |
top_p | 不适用。 |
presence_penalty | 不适用。 |
frequency_penalty | 不适用。 |
logprobs | 不支持(返回 400 错误)。 |
top_logprobs | 不支持。 |
多轮对话中的 Thinking Mode
在多轮对话中使用 Thinking Mode:
- 每轮同时返回
reasoning_content和content。 - 不要在下一轮消息中包含上轮的
reasoning_content——只包含content(最终答案)。 - 这样节省带宽,避免模型重新处理自己的推理过程。
示例:
{
"model": "deepseek-r1",
"messages": [
{ "role": "user", "content": "144 的平方根是多少?" },
{ "role": "assistant", "content": "144 的平方根是 12。" },
{ "role": "user", "content": "那 169 呢?" }
]
}
注意:助手的前一轮响应只包含 content,不包含 reasoning_content。
Thinking Mode 中的工具调用
Thinking Mode 结合工具调用时:
- 模型可能在给出最终答案前进行多轮推理 + 工具调用。
- 工具调用期间,必须将
reasoning_content传回 API,让模型继续推理链。 - 用户开始新问题时,清除之前对话中的
reasoning_content。
见工具调用了解详细文档。
温度推荐
推理模型的温度通常固定或效果有限。其他模型:
| 场景 | 推荐 temperature |
|---|---|
| 编程/数学 | 0.0 |
| 数据分析 | 1.0 |
| 通用对话 | 1.3 |
| 翻译 | 1.3 |
| 创意写作/诗歌 | 1.5 |