流式传输聊天响应
阅读 ShareAI 聊天完成服务器发送事件,追加内容增量并处理完成、错误和中断的流。
本页面内容
设置 stream: true 以增量接收响应。保持 HTTP 连接打开,解析完整的 SSE 事件并仅追加每个内容增量一次。
POST
https://api.shareai.now/api/v1/chat/completions返回服务器发送事件流。
- 基础 URL
https://api.shareai.now- 身份验证
- Bearer API 密钥或已批准的 OAuth 访问令牌
cURL
curl --no-buffer --fail-with-body https://api.shareai.now/api/v1/chat/completions \
-H "Authorization: Bearer $SHAREAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{"model":"MODEL_IDENTIFIER","messages":[{"role":"user","content":"Explain server-sent events briefly."}],"stream":true}'
阅读事件边界#
SSE 使用空行分隔事件。网络块可能会拆分 JSON 值或包含多个事件,因此不要将每次网络读取解析为完整的 JSON 响应。增量解码 UTF-8 并保留不完整的数据直到事件完成。
Plain text
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
渲染内容一次#
追加 choices[0].delta.content 如果存在。保留空白和重复的词语。仅角色或最终块可能没有内容。将 [DONE] 视为流终止符。
处理流错误#
在进入 SSE 解析器之前检查 HTTP 状态。流开始后,处理一个 event: error 事件和意外断开连接。将中断的答案标记为不完整,并让用户明确重试。不要将第二个独立生成的答案追加到部分输出中。
从您的应用程序取消#
当用户停止生成时,请使用您的 HTTP 客户端的取消机制。将取消、网络故障和已完成的答案作为独立的 UI 状态。不要承诺关闭客户端连接会撤销已处理的使用量。
最近更新于 9 月 15, 2026