目标:在首次非流式请求成功后,用约 5 分钟跑通 SSE 流式对话。
前置
已完成 首次请求,并持有 API_KEY、MODEL_ID。
curl 示例
curl -sSN "https://51kik.com/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"model": "'"$MODEL_ID"'",
"stream": true,
"messages": [{ "role": "user", "content": "用三句话介绍流式输出" }]
}'
参数要点:
| 项 | 值 |
|---|---|
stream | true |
Accept | text/event-stream |
-N(curl) | 禁用缓冲,实时打印 |
如何读 SSE
每行形如:
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"content":"..."}}]}
结束标记:
data: [DONE]
中间可能出现带 usage 的分片(网关对流式固定 include_usage)。详见 流式响应。
客户端注意
| 问题 | 处理 |
|---|---|
| nginx 缓冲导致「一次性输出」 | proxy_buffering off |
| 长时间无数据断开 | 提高代理读超时 |
流中出现 error 字段 | 视为失败,勿当成功结束 |
官方 SDK
const stream = await client.chat.send({
chatRequest: {
model: "YOUR_MODEL_ID",
stream: true,
messages: [{ role: "user", content: "你好" }],
},
});
for await (const chunk of stream) {
// chunk 类型为 chat.completion.chunk
}
见 对话与流式。
Anthropic 面
流式 Messages 使用 POST https://51kik.com/anthropic/v1/messages 且 stream: true,事件类型对齐 Anthropic SSE。见 Messages API。