OpenAI流模式下思考过程的获取示例

OpenAI采用流模式时,思考过程也是通过流式输出的。

这意味着可以像接收最终回答一样,实时逐片段获取模型思考过程,实现边推理边展示的效果。

这里尝试基于网络资料,尝试解锁这一过程的具体实现方式。

1 实现示例

OpenAI流模式下思考过程的获取的具体的实现方法,是在处理流式响应时,从数据块的 delta 字段中提取 reasoning_content 属性,而不是用于最终回答的 content 属性。

以下是一个基于OpenAI库的示例,展示了如何并打印出模型的思考过程和最终回答。

复制代码
from openai import OpenAI

client = OpenAI()
# 以支持推理的模型为例,如 o1 系列或 DeepSeek-R1 等
stream = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", # 或 "o1-mini" 等
    messages=[{"role": "user", "content": "9.11 和 9.8 哪个更大?"}],
    stream=True,
)

print("开始流式接收...")
for chunk in stream:
    # 获取思考过程的增量
    if hasattr(chunk.choices[0].delta, 'reasoning_content') and chunk.choices[0].delta.reasoning_content:
        reasoning_content = chunk.choices[0].delta.reasoning_content
        print(f"【思考】: {reasoning_content}", end="", flush=True)  # 实时打印思考过程

    # 获取最终回答的增量
    elif hasattr(chunk.choices[0].delta, 'content') and chunk.choices[0].delta.content:
        content = chunk.choices[0].delta.content
        print(f"【回答】: {content}", end="", flush=True)  # 实时打印最终回答

2 核心要点

2.1 关键字段

流式数据块ChatCompletionChunk中,使用choices[0].delta.reasoning_content获取思考过程。在有的实现中比如VLLM,思考过程有可能是reasoning字段,所以需要依据具体框架文档决定。

2.2 参数控制

对于 OpenAI 的 o1o3 等推理模型,还可以通过 reasoning_effort 参数来控制模型思考的深入程度,例如 lowmediumhigh。部分模型或工具如 Vercel AI SDK也支持 reasoningSummary 参数来获取更精炼的思考摘要。

2.3 模型差异

需要注意的是,并非所有模型都支持输出思考过程。这一功能主要针对专门的推理模型,例如 OpenAI 的 o1 系列、o3 ,以及 DeepSeek-R1 等第三方推理模型。普通的 GPT 模型如 gpt-4o在标准 API 调用中通常不提供此字段。

reference


OpenAI Reasoning

https://vercel.com/docs/ai-gateway/capabilities/reasoning/openai

OpenAI 聊天補全與推理流式傳輸

https://docs.vllm.tw/en/latest/getting_started/examples/openai_chat_completion_with_reasoning_streaming.html

使用openai库进行流式输出时,到底发生了什么

https://juejin.cn/post/7430462823758512128

相关推荐
北京迅为几秒前
【迅为开发板专属工具】把烧写入口放进浏览器|Topeet RK Flash
linux·人工智能·嵌入式·rk3568·烧写
架构师汤师爷几秒前
DeepSeek Harness 暴涨 14.6万 Star,保姆级教程来啦~
人工智能
不一样的少年_2 分钟前
我让 AI Agent 先别改代码,它怎么还是动手了?
人工智能·agent·ai编程
才聚PMP2 分钟前
深陷技术内卷难突围?AI+项目管理开辟增值新赛道!
大数据·人工智能
阿里云大数据AI技术5 分钟前
基于阿里云Milvus 构建电商图文智能搜索平台
人工智能
樊小肆9 分钟前
DeepSeeker-Code源码导读04-上下文压缩
人工智能·agent
鲁邦通物联网10 分钟前
充电站柔性负荷架构演进:网络卡顿导致设备烧损,如何依托边缘计算网关重塑本地调功防线?
人工智能·边缘计算·边缘计算网关·物联网网关·5g数采·边缘计算盒子·工业级边缘计算网关
叠层归一研究院20 分钟前
如何用程序搭建一个 AGI 种子系统(三):生长如何对接物理与数学宇宙
人工智能·python·算法·机器学习·transformer·agi
兴趣使然黄小黄30 分钟前
【AI-agent】让 AI 输出可依赖:LLM 工程化的四道防线
大数据·人工智能
2501_9269783330 分钟前
AGI封锁的物理边界:发现模式决定封锁可行性
人工智能·经验分享·笔记·ai写作·agi