对话能力
流式输出
用 SSE 边生成边返回,以及流式请求的用量与结束判断。
设置 "stream": true 后,响应以 Server-Sent Events(SSE)返回,每个事件是一段增量内容。
curl https://api.example.cn/v1/chat/completions \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"stream": true,
"stream_options": { "include_usage": true },
"messages": [{"role": "user", "content": "写一首关于秋天的短诗"}]
}'事件格式
data: {"choices":[{"delta":{"content":"秋"},"index":0}]}
data: {"choices":[{"delta":{"content":"风"},"index":0}]}
data: {"choices":[],"usage":{"prompt_tokens":18,"completion_tokens":64,"total_tokens":82}}
data: [DONE]- 设置
stream_options.include_usage后,最后一个数据事件携带本次usage,扣费以它为准。 - 收到
[DONE]表示流正常结束。
断流怎么办
如果连接在中途断开、没有收到最后的 usage:
- 已经输出的内容会保留在调用记录里,标记为“断流”。
- 这次请求的用量进入“待核对”,平台向上游核对实际用量后再结算;核对期间对应的预留金额暂时冻结。
- 平台不会自动重发同一个请求,避免重复计费。需要重试时请由你的程序重新发起。
详见 失败请求如何收费。