目标:在首次非流式请求成功后,用约 5 分钟跑通 SSE 流式对话。

前置

已完成 首次请求,并持有 API_KEYMODEL_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": "用三句话介绍流式输出" }]
  }'

参数要点:

streamtrue
Accepttext/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/messagesstream: true,事件类型对齐 Anthropic SSE。见 Messages API