处理限流和重试

本页说明客户端应如何处理已经收到的限流或临时服务错误。具体的并发、速率、额度和等待时间必须以当前密钥策略、响应头和控制台配置为准;本文不把客户端建议写成产品默认值。

收到 429 时

  1. 降低同一 Key 的并发请求数。

  2. 如果响应提供 Retry-After 或等价等待信息,优先按该值等待。

  3. 没有等待信息时,采用有限次、带随机抖动的退避策略。

  4. 将批量任务排队,避免多个工作进程同时重试。

  5. 在 Genesis 控制台检查该 Key 的限流和额度设置。

设计客户端重试

只有在你的业务可以安全重试时,才重试。至少区分:

情况

客户端处理

429 或明确的临时服务错误

有上限地退避重试

认证、权限、模型不可用或请求参数错误

不自动重试;修正配置或请求

网络中断

根据操作是否幂等决定是否重试

已开始的流式输出

先处理客户端状态;不要假设可从任意位置恢复

退避次数、最大等待时间、超时和并发上限由你的应用容量与产品当前限制共同决定。没有产品证据时,不要在文档、代码或配置中把某个数值标为 Genesis 默认值。

记录排障信息

重试耗尽后,记录:

  • 时间范围和时区;

  • 请求的接口和模型 ID;

  • HTTP 状态和脱敏错误正文;

  • 脱敏凭证标识;

  • 是否收到等待信息;

  • 已执行的重试次数。

最后更新于