Skip to content

流式输出

流式请求会在模型生成内容时逐段返回,适合聊天界面和长回复。

curl 示例

bash
curl -N https://coffeecatbox.cc/v1/chat/completions \
  -H "Authorization: Bearer $NEWAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "控制台中的模型名",
    "messages": [
      {"role": "user", "content": "分三点解释流式输出"}
    ],
    "stream": true
  }'

-N 会关闭 curl 的输出缓冲。响应通常采用 Server-Sent Events 格式:

text
data: {"choices":[{"delta":{"content":"第一"}}]}

data: {"choices":[{"delta":{"content":"点"}}]}

data: [DONE]

处理原则

  1. 逐行读取响应;
  2. 忽略空行;
  3. 去掉每行开头的 data:
  4. 收到 [DONE] 后结束;
  5. 解析 JSON 并拼接增量内容;
  6. 正确处理连接中断和错误事件。

反向代理注意事项

如果你在自己的服务前增加 Nginx,需避免缓存流式响应:

nginx
location / {
    proxy_pass https://coffeecatbox.cc;
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_read_timeout 300s;
}

不要把 API 令牌硬编码在公开的 Nginx 配置仓库中。

常见问题

内容最后一次性出现

通常是客户端、网关或 CDN 缓冲了响应。检查是否关闭代理缓冲,并确认客户端按流读取。

中途断开

检查客户端超时、反向代理读取超时和网络稳定性。长时间无输出的推理模型可能需要更长的读取超时。

重试导致重复内容

流式请求断开后,无法保证从原位置续传。自动重试时应把新请求当作完整的新响应,并避免直接拼到旧内容后面。

本站为猫咖啡 API 使用文档。请合法、合规使用 AI 服务。