OpenAI流模式下思考过程的获取示例
OpenAI采用流模式时思考过程也是通过流式输出的。这意味着可以像接收最终回答一样实时逐片段获取模型思考过程实现边推理边展示的效果。这里尝试基于网络资料尝试解锁这一过程的具体实现方式。1 实现示例OpenAI流模式下思考过程的获取的具体的实现方法是在处理流式响应时从数据块的delta字段中提取reasoning_content属性而不是用于最终回答的content属性。以下是一个基于OpenAI库的示例展示了如何并打印出模型的思考过程和最终回答。from openai import OpenAI client OpenAI() # 以支持推理的模型为例如 o1 系列或 DeepSeek-R1 等 stream client.chat.completions.create( modeldeepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B, # 或 o1-mini 等 messages[{role: user, content: 9.11 和 9.8 哪个更大}], streamTrue, ) 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, flushTrue) # 实时打印思考过程 # 获取最终回答的增量 elif hasattr(chunk.choices[0].delta, content) and chunk.choices[0].delta.content: content chunk.choices[0].delta.content print(f【回答】: {content}, end, flushTrue) # 实时打印最终回答2 核心要点2.1 关键字段流式数据块ChatCompletionChunk中使用choices[0].delta.reasoning_content获取思考过程。在有的实现中比如VLLM思考过程有可能是reasoning字段所以需要依据具体框架文档决定。2.2 参数控制对于 OpenAI 的o1或o3等推理模型还可以通过reasoning_effort参数来控制模型思考的深入程度例如low、medium、high。部分模型或工具如 Vercel AI SDK也支持reasoningSummary参数来获取更精炼的思考摘要。2.3 模型差异需要注意的是并非所有模型都支持输出思考过程。这一功能主要针对专门的推理模型例如 OpenAI 的o1系列、o3以及 DeepSeek-R1 等第三方推理模型。普通的 GPT 模型如gpt-4o在标准 API 调用中通常不提供此字段。reference---OpenAI Reasoninghttps://vercel.com/docs/ai-gateway/capabilities/reasoning/openaiOpenAI 聊天補全與推理流式傳輸https://docs.vllm.tw/en/latest/getting_started/examples/openai_chat_completion_with_reasoning_streaming.html使用openai库进行流式输出时到底发生了什么https://juejin.cn/post/7430462823758512128
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424701.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!