流式输出
流式请求会在生成过程中持续返回内容。适合对话界面和长输出,但客户端必须持续消费响应,直到流正常结束。
开始前
- 先使用一次短文本、非流式请求确认 Key、模型和网络配置。
- 使用当前 Key 可见的模型 ID。
- 服务端应设置合理的读取超时,并在客户端取消时停止继续写入页面。
Python 示例
stream = client.chat.completions.create(
model="your-model-id",
messages=[{"role": "user", "content": "请用三句话介绍流式输出"}],
stream=True,
)
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)
Node.js 示例
const stream = await client.chat.completions.create({
model: "your-model-id",
messages: [{ role: "user", content: "请用三句话介绍流式输出" }],
stream: true,
});
for await (const chunk of stream) {
const text = chunk.choices[0]?.delta?.content;
if (text) process.stdout.write(text);
}
连接中断
用户关闭页面、网络变化或客户端主动取消时,应终止本地读取并清理对应任务。不要在断开后自动并发重复整段长请求,否则会放大用量和限流风险。
流式响应还未结束时不能把它当作完整答案。需要记录结果时,先在应用内累积内容,并在流结束后再持久化。
