流式输出

流式请求会在生成过程中持续返回内容。适合对话界面和长输出,但客户端必须持续消费响应,直到流正常结束。

开始前

  • 先使用一次短文本、非流式请求确认 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);
}

连接中断

用户关闭页面、网络变化或客户端主动取消时,应终止本地读取并清理对应任务。不要在断开后自动并发重复整段长请求,否则会放大用量和限流风险。

流式响应还未结束时不能把它当作完整答案。需要记录结果时,先在应用内累积内容,并在流结束后再持久化。