流式传输
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": "glm-5.1",
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":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: {"id":"your-chat-completion-id","object":"chat.completion.chunk","created":1677652288,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]关键字段
delta.role— 固定为"assistant"。Token360 在每个 chunk 中都包含此字段,以保持一致性。delta.content— 当前 chunk 的文本 token。可能为null或缺失(例如在最后一个 chunk 中)。finish_reason— 生成过程中为null,最后一个 chunk 中为"stop"(或"length"、"tool_calls")。usage— 在[DONE]之前的最后一个 chunk 中返回,包含 token 用量和费用详情。provider— 处理该请求的模型供应商名称(例如"Parasail")。[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 和总延迟,您可以在控制台的数据分析面板中查看。
流式传输中的错误处理
如果在流式传输过程中发生错误,错误信息将作为最后一个 SSE 事件返回:
data: {"error":{"message":"Rate limit exceeded","type":"rate_limit_error","code":"rate_limit"}}
data: [DONE]请务必在流式处理逻辑中检查错误对象。
此页面对您有帮助吗?
上一篇
概述
下一篇
错误处理