功能指南
流式输出
两种协议都支持流式,请求里加 "stream": true 即可。
OpenAI 协议
curl -N https://sichang.xyz/api/v1/chat/completions \
-H "Authorization: Bearer $SICHANG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "<模型 id>", "stream": true, "stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "数到三"}]}'返回标准 SSE:每个 data: 是一个 chat.completion.chunk,文字在 choices[0].delta.content,最后一块带 finish_reason,以 data: [DONE] 结束。
传了 stream_options.include_usage 时,[DONE] 之前会多一块 choices 为空、带 usage 的分块:
data: {"object":"chat.completion.chunk","choices":[],"usage":{"prompt_tokens":8,"completion_tokens":83,"total_tokens":91}}
data: [DONE]OpenAI 官方 SDK 用 stream=True 迭代即可,不需要额外处理。
Anthropic 协议
/v1/messages 加 "stream": true,返回 Anthropic 标准事件序列:message_start → content_block_start → 若干 content_block_delta → content_block_stop → message_delta(含 stop_reason 与输出 token 数)→ message_stop。Anthropic SDK 与 Claude Code 直接可用。
中途断开怎么计费
- 首个 token 之前失败:自动全额退款。
- 已经开始输出后断开(网络中断、客户端取消):按已经产生的 token 结算。
- 流式过程中上游出错,会发一个错误事件后结束,格式见错误码。