跳到主要内容

深度思考

深度思考(Deep Thinking / Reasoning)是部分大模型提供的增强推理能力。模型在回答前会先进行内部"思考",输出推理过程后再给出最终答案,适合数学、逻辑、代码分析等复杂任务。

启用方式: 无需额外配置或开关,只需将 model 参数设为支持深度思考的模型(如 deepseek-r1)即可自动启用。模型会在回答前先输出思考过程(reasoning_content),再输出最终回答(content)。

适用模型

深度思考能力仅部分模型支持,目前支持的模型包括 deepseek-r1 等推理模型。具体支持情况请参考接入大模型中的模型列表。

备注

使用不支持深度思考的模型时传入相关参数不会报错,但不会产生思考内容。

使用方式

协议说明

以下示例基于 Chat Completions 协议(cURL 标签展示了原始 HTTP 请求)。深度思考功能同样适用于其他协议,包括 CloudBase SDK 和 Anthropic SDK 兼容协议,使用方式一致——只需指定支持深度思考的模型即可。各协议的接入方式请参考接入方式文档。

const model = ai.createModel("cloudbase");

const result = await model.generateText({
model: "deepseek-r1",
messages: [{ role: "user", content: "证明 √2 是无理数" }]
});

// 通过 rawResponses 获取思考内容
const rawResponse = result.rawResponses[0];
const message = rawResponse.choices[0].message;

console.log("思考过程:", message.reasoning_content);
console.log("最终回答:", result.text);

输出格式

启用深度思考后,模型返回两部分内容:

字段说明用途
reasoning_content思考过程展示给用户看(可折叠),帮助理解模型推理逻辑
content最终回答实际使用的结果

非流式响应示例:

{
"choices": [{
"message": {
"role": "assistant",
"reasoning_content": "用户问的是 28 的质因数分解。我需要逐步分解:28 ÷ 2 = 14,14 ÷ 2 = 7,7 是质数。所以 28 = 2² × 7。",
"content": "28 的质因数分解为 2² × 7。\n\n分解步骤:\n1. 28 ÷ 2 = 14\n2. 14 ÷ 2 = 7\n3. 7 是质数,停止\n\n因此 28 = 2 × 2 × 7 = 2² × 7"
},
"finish_reason": "stop"
}]
}

前端展示建议

思考过程通常较长,建议以可折叠的方式展示:

function ThinkingMessage({ reasoning, content }) {
const [expanded, setExpanded] = useState(false);

return (
<div className="message">
{reasoning && (
<div className="thinking-block">
<button onClick={() => setExpanded(!expanded)}>
{expanded ? "▼" : "▶"} 思考过程
</button>
{expanded && (
<pre className="thinking-content">{reasoning}</pre>
)}
</div>
)}
<div className="answer">
<ReactMarkdown>{content}</ReactMarkdown>
</div>
</div>
);
}

多轮对话中的注意事项

使用深度思考模型进行多轮对话时,不要将 reasoning_content 追加到 messages 历史中

const messages = [];

async function chat(userMessage) {
messages.push({ role: "user", content: userMessage });

const completion = await client.chat.completions.create({
model: "deepseek-r1",
messages
});

const choice = completion.choices[0].message;

// ✅ 正确:只追加 content
messages.push({
role: "assistant",
content: choice.content
});

// ❌ 错误:不要追加 reasoning_content
// messages.push({
// role: "assistant",
// content: choice.reasoning_content + choice.content
// });

return {
reasoning: choice.reasoning_content,
answer: choice.content
};
}
注意

将思考过程追加到 messages 会导致:

  1. 输入 Token 快速膨胀(思考过程通常很长)
  2. 模型回复质量下降
  3. 可能出现格式异常

适用场景

场景推荐原因
数学证明 / 推理✅ 推荐需要严谨的逐步推理
代码 Bug 分析✅ 推荐需要追踪执行流程
复杂逻辑判断✅ 推荐需要考虑多种条件
简单问答❌ 不推荐增加不必要的延迟和成本
实时对话❌ 不推荐思考过程导致首字延迟较高
创意写作⚠️ 视情况短文案不需要,长篇规划可能有帮助

成本与性能

指标深度思考模型普通模型
首字延迟较高(需完成思考)较低
输出 Token较多(含思考内容)较少
回答准确性较高(复杂任务)一般
计费思考 Token 也计费仅回答内容计费
提示

根据任务复杂度选择模型:简单任务用 deepseek-v4-flash,复杂推理任务用 deepseek-r1