DeepSeek 的思考模式会在最终回答前产生 reasoning_content;非思考模式直接返回最终回答。对于官方 API,开关是 thinking.type,而不是把模型名改成旧版 R1。两种模式都应以 message.content 作为给最终用户核对的答案,不能把思考内容误当成最终结论。
官方 API 如何开关
DeepSeek 官方思考模式指南给出的 OpenAI 兼容格式是 thinking: {type: enabled 或 disabled};使用 OpenAI Python SDK 时需放进 extra_body。当前默认开启思考,默认 effort 为 high;想明确关闭时应显式传 disabled。接口参考也列出 reasoning_effort 的 none、low、high、max 可选值。

以下是演示代码:同一个提示分别请求两种模式,打印最终回答和是否收到 reasoning_content。先在本机设置 DEEPSEEK_API_KEY;两次请求都会计算 API 用量。
import os
from openai import OpenAI
key = os.environ.get("DEEPSEEK_API_KEY")
if not key:
raise RuntimeError("请先设置 DEEPSEEK_API_KEY")
client = OpenAI(api_key=key, base_url="https://api.deepseek.com")
question = [{"role": "user", "content": "9.11 和 9.8 哪个数更大?只写结论和一句理由。"}]
for mode in ("disabled", "enabled"):
kwargs = {"reasoning_effort": "high"} if mode == "enabled" else {}
response = client.chat.completions.create(
model="deepseek-flash",
messages=question,
extra_body={"thinking": {"type": mode}},
**kwargs,
)
answer = response.choices[0].message
print(mode, "最终回答:", answer.content)
print("有思考字段:", bool(getattr(answer, "reasoning_content", None)))
如何读结果与选择模式
先核对两次都有非空的最终回答,再比较思考字段是否出现。思考模式返回的 reasoning_content 与 content 是不同字段;没有读到思考字段时,不要推断模型一定未思考,先核对请求参数与实际返回对象。这个简单问题无法证明某模式整体更准确,重要任务应使用你自己的题集比较正确性、耗时和费用。
需要直接回答简单问题时,可先用非思考模式建立基线;遇到需要逐步推理的任务,再用思考模式与同一验收标准比较。选择依据是实际任务结果,不是“开启思考必定更好”的口号。
参数与多轮请求的边界
官方指南明确:思考模式下 temperature、presence_penalty、frequency_penalty 即使传入也不生效;top_p 在思考模式仅 0.95–1.0 生效,低于 0.95 会按 0.95 处理,非思考模式则固定为 1.0。若不传 tools,前一轮 reasoning_content 不必回传;携带 tools 时则必须按官方工具调用流程回传,否则可能收到 400。
本文解释官方 API 的模式参数,没有验证网页版按钮位置,也未在你的账户发起实际请求。模型版本和参数规则会调整,运行前以引用的官方文档为准。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30048.html