流式输出
Server-Sent Events (SSE) 流式输出让 AI 响应像打字机一样逐字返回,提升用户体验。本页介绍如何启用流式输出、解析 SSE 数据块以及处理流式连接。适用于聊天对话、内容生成等场景。
为什么用流式?
- 大模型响应慢,用户需要即时反馈
- 类似 ChatGPT 的打字机效果
- 提升用户体验
启用流式输出
在请求中设置 "stream": true
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx",
base_url="https://api.onemux.net/v1"
)
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "写一首诗"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")SSE 响应格式
流式响应使用 Server-Sent Events (SSE) 格式,每个数据块以 data: 开头:
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"你"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"好"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"!"}}]}
data: [DONE]