Skip to main content
每个文本端点都支持流式。格式是 Server-Sent Events (SSE) —— 网关把模型的原生流 1:1 透传,所以你 SDK 现有的 parser 不用改就能用。

各协议形状

在请求体里传 "stream": true。事件名匹配 Anthropic 的原生协议:

响应头在第一帧 SSE 之前发出

配额 + 速率限制响应头在 HTTP 响应头里发出,早于 第一个事件。你可以在读到响应头之后关闭连接,短路一次太贵的流:
流中关闭连接是硬中止 —— 模型看到客户端断开,按目前已产出的部分输出结算。对 Anthropic / OpenAI 文本流而言,就是到中止点为止消费掉的 output_tokens

干净地终止

如果你有一个长流想要切断(用户点了 stop),直接关 HTTP 连接 —— 没有单独的 “abort” 接口。网关把断连传播到模型,按部分输出结算。 视频 生成(异步走 /v1/tasks/submit),用 POST /v1/tasks/cancel 来取消 —— 关掉 submit 响应并不会取消正在渲染的任务。

流中错误

如果模型中途失败,网关发一个最终的 event: error(Anthropic)或带 error 字段的最终帧(OpenAI),然后关闭连接。你已经收到的部分输出归你 —— 但流中错误的情况下,请求 不计费。失败从不计费,没有例外。

重连

SSE 支持 Last-Event-ID 头做重连,但 ByteSpike 在服务端暂存流 —— 没有可重放的内容。流中断开就只能从头重发请求。 对担心断网的长 completion,更建议用非流式 + 充足的客户端超时,或者用 Anthropic prompt caching 让重试变便宜。

SDK 行为

三个官方 SDK 都自动处理流式:
各 SDK 的 base URL 覆盖(在 配置你的客户端 里有介绍)能把三家透明路由到 ByteSpike。

常见坑

相关