状态码是什么意思
HTTP 429(Too Many Requests)表示你超过了限流。服务器是健康的,只是让你慢一点。HTTP 503(Service Unavailable)表示上游供应商暂时过载或宕机——问题在他们那边,不在你这边。
两者都能用对策略恢复。都不等于你的代码写错了。
为什么 AI API 会撞限流
供应商设限流是为了保护基础设施。上限通常基于一项或多项:每分钟请求数(RPM)、每分钟 token(TPM)、每天请求数(RPD),或并发连接。
免费档模型往往限制最紧。付费模型上限更高,但仍会执行。像 AnyRouter 这样的网关会在上游供应商限制之上再加一层限流。
能落地的修法
- 对 429 加指数退避。第一次重试前等 1s,第二次 2s,第三次 4s,以此类推直到合理上限(60s)。
- 如果 API 提供 Retry-After 头,就按它等——它会告诉你该等多久。
- 降低请求频率。批量请求、非关键任务换更快模型,或在允许时把负载摊到多把 API key。
- 分清是 429(你这边)还是 503(上游)。503 通常几分钟内恢复;429 需要你改请求速率。
- 在控制台盯用量,好在撞上限之前看见自己正在接近。
AnyRouter 怎么处理
当一侧返回 429、401 或 5xx 时,AnyRouter 会自动切到备用上游。重试在服务端发生,客户端只看见最终成功的响应——你这边不必写特殊错误处理。
如果走共享 key 池,限流摊在多把供应商 key 上,有效上限比单 key 更高。
监控与可观测性
在 chmonitor.dev 跟踪请求模式、错误率和模型级延迟。看见哪些模型在报错,有助于决定换模型、提限额,还是改请求节奏。
经 AnyRouter 路由并自动故障切换,在 chmonitor.dev 监控一切。
免费注册