用 Responses API 流式返回生成结果
打开 Responses 的 stream,边生成边消费事件,而不是等整段文本结束。
基于 OpenAI Developers 整理 · Responses API · 官方资料
聊天和 Agent 界面通常不能等完整回答再渲染。Responses API 支持 stream=True,按事件推送增量。
这篇跑通:发起流式响应,打印文本增量,并确认结束事件出现。
打开 stream 并消费文本增量
Responses stream
python
from openai import OpenAI
client = OpenAI()
with client.responses.stream(
model="gpt-5.6",
input="用三句话解释什么是流式响应。",
) as stream:
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
final = stream.get_final_response()
print("\nfinish:", final.status)什么时候必须用流式
- 面向用户的聊天界面,需要立刻看到首字
- 长回答或工具调用过程中要展示中间状态
- 需要按事件做超时与取消
最容易踩的坑
只拿到空字符串
确认监听的是 output_text.delta(或当前 SDK 文档中的等价事件名),并完整消费迭代器。
连接中途断开
实现重试与 abort;不要假设一次 stream 永远成功。