promptgarten 🌱
🌍 DE
术语●○○3 分钟 · +20 XP

Rate Limit(速率限制)和 Quota(配额):AI 工具为什么有时会让你慢下来

Rate limit 限制你每分钟能发出多少请求。了解这些规则,遇到 429 错误时你也能从容应对。

什么是 rate limit

Rate limit(速率限制)是一个上限:规定你在一段时间内,能给某个 AI API 发送多少请求(或多少 token)。Quota(配额)意思类似,通常针对更长的时间段——比如订阅套餐里的月度额度,或者某个 API 每月的花费上限。

为什么会有这些限制

如果没有限制,单个应用——无论是出于 bug 还是故意为之——都可能发出海量请求,拖累所有其他用户可用的服务器资源。Rate limit 保护基础设施、保证公平分配,同时也限制了意料之外的费用。

错误码 429

一旦超出限制,API 就不会返回结果,而是返回 HTTP 状态码 429(“Too Many Requests”,请求过多)。返回内容里通常还会附带一个 retry-after 提示,告诉你应该等多少秒再重试。

如何应对

  • 等待后重试:遇到 429 时先暂停一下,再重试——最好是等待时间逐渐变长(也就是所谓的“指数退避”,exponential backoff),而不是立刻再发一次。
  • 批处理(batching):把多个小请求合并成一个大请求,而不是一次次单独发送。
  • 换用更小的模型:把简单的子任务交给一个更便宜、有独立配额的模型处理,把昂贵的主力模型留给真正复杂的步骤。

示例

重试与退避的伪代码: für versuch in 1..5: antwort = api_aufruf() wenn antwort.status == 429: warte(antwort.header['retry-after'] Sekunden) weiter sonst: return antwort

🛠️ 练习——自己动手试试

为 API 调用写一个带退避机制的简单重试逻辑,或者在现有 SDK 里找到它。

  1. 查一下你常用的 AI SDK 文档,看它是否已经内置了针对 429 的重试机制。
  2. 如果没有:写一个小循环,在遇到 429 状态码时,用逐渐变长的等待时间重试(最多 3-5 次)。
  3. 检查你的代码是否读取并遵守了响应里的 retry-after 头,而不是使用一个固定的等待时间。
  4. 可选且需谨慎:用几次快速请求测试是否会触发 429——注意在此之前那些成功的请求同样会消耗 token。请不要用生产环境账号或额度紧张的账号做这个测试。

自查清单

  • 遇到 429 错误后,你的代码会等待更长时间,而不是立刻重试吗?
  • 你的代码对重试次数有固定的上限吗?
  • 你的代码有没有读取 retry-after 头,而不是假设一个固定的等待时间?

小测验

AI API 里的 HTTP 状态码 429 是什么意思?

来源

相关主题

AI agent 的成本控制 ●●○什么是 API?(说人话版) ●○○模型路由(Model Routing):为任务选对模型 ●●○Agent loop:思考 → 行动 → 检查 → 重复 ●●○