功能指南

流式输出

两种协议都支持流式,请求里加 "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 结算。
  • 流式过程中上游出错,会发一个错误事件后结束,格式见错误码。