Skip to main content
ByteSpike 按 API key 强制三条滚动窗口的花费上限,加一条并发上限。这四条彼此独立 —— 最紧的那条说了算。

四条上限

任一花费上限填 0 = 不限。

它们如何相互作用

每个请求网关计算:
响应携带三者中 最紧 的:
Remaining 归零,下一次请求返回 429
/v1/messages 用 Anthropic 形状;/chat/completions + /responses 用 OpenAI 形状。)

怎么取值

quota(终身上限)和 expires_in_days 与速率限制桶分开 —— 互不影响。见 鉴权

并发

并发是你账号下任意时刻 in-flight 的请求数(跨所有 key)。按订阅档设: 触上限时,新请求立即返回 429,附 type: "rate_limit_error", code: "concurrency_limit"。推荐响应跟常规 429 一样 —— 退避 + 重试。 如果你在 Free / Pro 上撞到并发墙、花费上限还远,升级档位而不是多开 key。这条上限是账号级,不是 key 级。

退避策略

网关给的重置时间戳是精确的 —— 用它,而不是用指数退避去猜:
对并发 429(没有 X-RateLimit-Reset),用短的抖动退避(例如 1 + random()*2 秒)—— 上限随 in-flight 请求完成而清,可能不到一秒。

受速率限制

  • GET /api/v1/me/* 管理类调用 —— 免费,从不限流
  • GET /api/v1/me/usage —— 免费
  • GET /api/v1/me/account —— 免费
  • POST /v1/tasks/query —— 免费,不计入并发
  • POST /v1/tasks/cancel —— 免费,不计入并发
  • Console 的 dial-test —— 用 cookie 鉴权,不是 key,从不扣费
任何对 /v1/messages/v1/chat/completions/v1/responses/v1beta/.../v1/images/*/v1/tasks/submit 的请求都计入。

读 usage 日志

要 debug 429 —— 看哪儿在花钱:
把对应窗口里的 credits 加起来。响应头里最紧的那条桶告诉你看哪个窗口。

抬上限

相关