流式响应
在 Chat Completions 和 Anthropic Messages 中开启 SSE 流式输出,获取最终用量,以及流式结束标记和超时建议。
何时使用流式输出
流式输出会在模型生成的同时逐段返回内容,适合聊天界面实时显示。生成内容较长时,流式输出还能避免客户端在等待完整结果时超时。
Chat Completions
把 stream 设为 true,响应变为 SSE 分片(text/event-stream),以 data: [DONE] 结尾。请求带 "stream_options": {"include_usage": true} 时,最后一个分片会包含 usage。
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 事件序列:
message_start → content_block_start → content_block_delta → content_block_stop → message_delta → message_stop
收到 message_stop 表示正常结束。
超时与中断
- 生成较慢或网络中断会导致超时:启用流式输出,并适当提高客户端的读取超时。
- 没有收到结束标记(
data: [DONE]或message_stop)就断开,说明流被中断,应视为请求未完成。
更多处理建议见限流、超时与流式中断。