九关教程全部教程

STREAMING

流式输出

流式模式会在模型生成内容时持续返回片段,首字显示更快,特别适合较长回答和聊天客户端。

如何开启

在聊天请求 JSON 中加入 "stream": true

json
{
  "model": "YOUR_MODEL",
  "messages": [
    {"role": "user", "content": "请详细解释什么是流式输出。"}
  ],
  "stream": true
}

它是如何工作的

服务端通常使用 Server-Sent Events 持续发送以 data: 开头的数据块。客户端应逐块消费,而不是等待整个响应结束再读取。

为什么会中断

现象常见原因处理方式
短回答正常,长回答中断客户端读取超时、网络切换或上游生成中断增大客户端读取超时;记录错误并重试
一直等待,最后一次显示客户端或中间层缓存了数据流确认客户端按流读取,不要把响应转成普通 JSON
出现乱码按字节块错误解码 UTF-8使用流式 UTF-8 解码器,保留跨块字符状态
重复内容重连时从头发起,却直接追加旧内容重试前清空未完成回复,或明确标注重试

九关转发说明

九关 Worker 会直接透传上游的 ReadableStream,不会先把整段回答读入内存,也明确禁用了缓存。这种实现适合流式 API,但最终稳定性仍同时受用户网络、Cloudflare 网络和上游服务影响。

客户端建议

为连接错误设置有限次数的指数退避重试;但不要对已经产生副作用的请求盲目重复。聊天生成重试时,也要避免在界面上重复拼接内容。