跳到主要内容

流式响应

在 Chat Completions 和 Anthropic Messages 中开启 SSE 流式输出,获取最终用量,以及流式结束标记和超时建议。

何时使用流式输出​

流式输出会在模型生成的同时逐段返回内容,适合聊天界面实时显示。生成内容较长时,流式输出还能避免客户端在等待完整结果时超时。

Chat Completions​

把 stream 设为 true,响应变为 SSE 分片(text/event-stream),以 data: [DONE] 结尾。请求带 "stream_options": {"include_usage": true} 时,最后一个分片会包含 usage。

bash
curl https://run.fluxlane.ai/v1/chat/completions \
-H "Authorization: Bearer $FLUXLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "模型名称",
"messages": [{"role": "user", "content": "用一句话介绍流式输出。"}],
"stream": true,
"stream_options": {"include_usage": true}
}'

处理要点:

  • 逐行读取以 data: 开头的内容,每行是一个 JSON 分片,增量文本在 choices[0].delta.content;
  • 读到 data: [DONE] 表示正常结束;
  • 需要统计 Token 时务必带上 include_usage,否则流式响应中没有用量信息。

Anthropic Messages​

POST /v1/messages 请求带 "stream": true 时,返回标准 Anthropic SSE 事件序列:

text
message_start → content_block_start → content_block_delta → content_block_stop → message_delta → message_stop

收到 message_stop 表示正常结束。

超时与中断​

  • 生成较慢或网络中断会导致超时:启用流式输出,并适当提高客户端的读取超时。
  • 没有收到结束标记(data: [DONE] 或 message_stop)就断开,说明流被中断,应视为请求未完成。

更多处理建议见限流、超时与流式中断。