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

相关推荐
深海鱼在掘金2 分钟前
深入浅出 LangChain —— 第三章:模型抽象层
人工智能·langchain·agent
生信碱移2 分钟前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
workflower11 分钟前
具身智能行业应用-生活服务业
大数据·人工智能·机器人·动态规划·生活
GitCode官方24 分钟前
基于昇腾 MindSpeed LLM 玩转 DeepSeekV4-Flash 模型的预训练复现部署
人工智能·开源·atomgit
大刘讲IT31 分钟前
AI重塑企业信息价值标准:从“系统供给”到“用户定义”的企业数字化新范式
人工智能·经验分享·ai·制造
流年似水~39 分钟前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
jay神39 分钟前
VisDrone2019-DET 无人机小目标检测数据集
人工智能·深度学习·yolo·目标检测·计算机视觉·毕业设计·无人机
乔江seven44 分钟前
【李沐 | 动手学深度学习】17 深度学习硬件:CPU 和 GPU
人工智能·深度学习·深度学习硬件·cpu和gpu
深海鱼在掘金1 小时前
深入浅出 LangChain —— 第二章:环境搭建与快速上手
人工智能·typescript·langchain
qq_411262421 小时前
四博 AI 机械臂台灯智能音箱方案
人工智能·智能音箱