游乐游手机版
首页/AI热点日报/热点详情

DeepSeek Reasoner模型推理内容读取方法

类型:热点整理2026-07-25
DeepSeek推理模型的真正价值在于推理过程,需通过reasoning_content字段获取。调用时需确认响应体包含该字段,使用OpenAISDK需在extra_body传入{ "thinking ":true}。提取方式推荐直接读取专用字段response reasoning_content,本地加载需开启tracing支持并获取完整推理链。

许多开发者在调用 deepseek-reasoner 模型时,往往直接获取 final answer,但这实际上只利用了模型的表层功能。该模型的核心价值深藏于其推理过程,即 reasoning_content 字段。忽略这一字段,相当于浪费了模型的主要能力。下面将详细拆解这套流程,帮助您正确获取关键信息。

验证模型返回格式中是否包含 reasoning_content

调用完成后,首先应检查响应体中是否包含 【reasoning_content】 字段。在 V4 版本下,该字段默认存在,但可能为空。如果字段缺失或值为空字符串,则表明存在两个问题:要么未启用思考模式,要么仍在使用已弃用的旧版 deepseek-reasoner 模型名称——请注意,该旧名称已正式停止使用。

若使用 OpenAI SDK 进行调用,必须在 extra_body 参数中显式设置 {"thinking": true},否则 reasoning_content 字段将不会生成。这一步容易被忽略,许多开发者仅设置默认参数便认为配置正确,结果导致推理内容完全缺失。

从 API 响应中提取推理内容

获取 reasoning_content 后,如何提取它?以下两种主流方法可供参考。

方法一:正则提取 Markdown 代码块
如果模型返回包含 ```reasoning 标记的代码块,可使用正则表达式进行提取:re.search(r'```reasoning\n(.*?)\n```', content, re.DOTALL)。需注意,避免使用 .text 或 .content.split('##')[0] 等模糊分割方法,以免截断关键的推理步骤,得不偿失。

方法二:直接读取专用字段(推荐)
使用最新版 ReasonerAPIClient 或兼容 V4 的网关时,响应中包含独立字段:response.reasoning_content。该字段为 JSON 数组,每个元素包含 step_id、thought、tool_call、observation 等关键信息,直接遍历即可获取完整的推理链条。这是最可靠的提取方式,没有之一。但务必验证该字段存在且非空,否则说明调用未启用思考模式。

本地加载模型时读取推理过程

如果在本地加载模型,流程稍显复杂,但同样清晰易懂。

第一步:开启带 trace 支持的会话
session = model.start_session(enable_tracing=True)。这一步是基础,enable_tracing 必须设置为 True,否则无法获取完整推理链。

第二步:提交输入并触发推理
response = session.reason_next(prompt="分析合同违约风险")。直接提交 prompt,模型将开始推理。

第三步:获取完整推理链
trace = response.get_full_trace()。该函数返回一个字典列表,包含每个推理节点的 input、output、decision_rule、confidence。这些数据是后续审计和分析的关键依据。

第四步:导出为可读格式
print(trace.to_tree()) 会输出缩进式决策树,方便肉眼检查;trace.to_json("trace.json") 则能保存结构化数据,供后续审计或二次分析。两种方式各有用途,建议都执行一次。

来源:https://www.php.cn/faq/2876790.html?uid=1431639

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。