流式传输
Token360 支持对话补全的流式响应,在模型生成内容的同时实时返回 token。这为交互式应用提供了更好的用户体验。
流式响应原理
在对话补全请求中设置 stream: true 后,Token360 将以 Server-Sent Events (SSE) 的形式返回响应,而非单个 JSON 对象。每个事件包含响应的一小部分,通常是一个或几个 token。
基本用法
1curl -N https://api.token360.ai/v1/chat/completions \
2 -H "Authorization: Bearer sk-your-api-key" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "claude-opus-5",
6 "messages": [{"role": "user", "content": "Write a haiku about coding."}],
7 "stream": true
8 }'SSE 响应格式
每个 SSE 事件以 data: 开头,后跟一个 JSON 对象:
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"claude-opus-5","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"claude-opus-5","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"claude-opus-5","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"claude-opus-5","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]关键字段
delta.role— 消息角色,通常出现在首个携带内容的 chunk 中。不要假设每个 chunk 都包含该字段。delta.content— 当前 chunk 的文本 token。可能为null或缺失(例如在最后一个 chunk 中)。finish_reason— 生成过程中为null,最后一个 chunk 中为"stop"(或"length"、"tool_calls")。usage— 在请求或上游支持时,位于协议规定的顶层位置,而不是 choice 内部。[DONE]— 标识流式传输结束。
用量信息
请求或上游支持时,token 用量可以包含在最后一个 chunk 中:
JSON
1{
2 "usage": {
3 "prompt_tokens": 12,
4 "completion_tokens": 45,
5 "total_tokens": 57
6 }
7}性能优势
建议在以下场景使用流式响应:
- 聊天界面 — 用户可以实时看到响应内容的生成过程。
- 长文本生成 — 避免因输出内容过长而导致超时。
- 首 token 延迟 (TTFT) — 用户可在毫秒级时间内看到首个输出。
Token360 会监控所有流式请求的 TTFT 和总延迟,您可以在控制台的数据分析面板中查看。
Token360 会归一化 chunk 字段,但不会重写 token 切分边界。不同供应商可能把相同输出拆成不同数量的 chunk。请按顺序拼接 delta,不要依赖 chunk 数量或供应商私有元数据。详见响应协议兼容性。
流式传输中的错误处理
如果在流式传输过程中发生错误,错误信息将作为最后一个 SSE 事件返回:
data: {"error":{"message":"Stream interrupted","type":"api_error","code":"stream_interrupted"}}
data: [DONE]请务必在流式处理逻辑中检查错误对象。即使此前已收到部分数据,只要流中出现错误事件,就应将本次流视为失败。
此页面对您有帮助吗?