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:

  1. 每轮同时返回 reasoning_contentcontent
  2. 不要在下一轮消息中包含上轮的 reasoning_content——只包含 content(最终答案)。
  3. 这样节省带宽,避免模型重新处理自己的推理过程。

示例

{
  "model": "deepseek-r1",
  "messages": [
    { "role": "user", "content": "144 的平方根是多少?" },
    { "role": "assistant", "content": "144 的平方根是 12。" },
    { "role": "user", "content": "那 169 呢?" }
  ]
}

注意:助手的前一轮响应只包含 content,不包含 reasoning_content

Thinking Mode 中的工具调用

Thinking Mode 结合工具调用时:

  1. 模型可能在给出最终答案前进行多轮推理 + 工具调用。
  2. 工具调用期间,必须将 reasoning_content 传回 API,让模型继续推理链。
  3. 用户开始新问题时,清除之前对话中的 reasoning_content

工具调用了解详细文档。

温度推荐

推理模型的温度通常固定或效果有限。其他模型:

场景推荐 temperature
编程/数学0.0
数据分析1.0
通用对话1.3
翻译1.3
创意写作/诗歌1.5

相关文档