
AI API 速率限制会在规模化时节流你的移动应用
OpenAI、Anthropic 和 Google 的速率限制是为受控使用设计的,而非面向数千并发用户的移动应用。限制在哪里被触发以及触发后会发生什么。
你的应用登上了 App Store 推荐。下载量激增。5,000 个用户在同一小时内打开应用。每个人都触发了一个 AI 功能。你的后端向 OpenAI 发送 了 5,000 个 API 调用。
OpenAI 的 Tier 1 允许每分钟 500 个请求。你刚刚超出了 10 倍。API 返回 HTTP 429(请求过多)。你的用户看到错误消息或永远不会结束的加载动画。
这不是假设。这是将移动应用分发模式与为受控企业使用设计的 API 速率限制结合后的可预见结果。
各供应商的速率限制
OpenAI
| 层级 | 要求 | RPM | TPM |
|---|---|---|---|
| 免费 | API 密钥 | 3 | 40,000 |
| Tier 1 | $5 付款 | 500 | 30,000-200,000 |
| Tier 2 | $50+ 消费, 7+ 天 | 5,000 | 450,000-2,000,000 |
| Tier 3 | $100+ 消费, 7+ 天 | 5,000 | 800,000-4,000,000 |
| Tier 4 | $250+ 消费, 14+ 天 | 10,000 | 2,000,000-10,000,000 |
| Tier 5 | $1,000+ 消费, 30+ 天 | 30,000 | 10,000,000-150,000,000 |
你从 Tier 1(500 RPM)开始。要达到 Tier 5 需要 $1,000 的累计消费和 30 天的账户历史。没有办法跳级。
Anthropic
| 层级 | 要求 | RPM | TPM |
|---|---|---|---|
| Build | 默认 | 1,000 | 80,000 |
| Scale | 审核后 | 4,000 | 400,000 |
Anthropic 需要手动升级层级。你申请,他们审核,他们决定。没有自动扩展。
Google Gemini
| 层级 | RPM | TPM |
|---|---|---|
| 免费 | 15 | 1,000,000 |
| 按量付费 | 2,000 | 4,000,000 |
| 企业版 | 自定义 | 自定义 |
Gemini 的免费层极其有限(15 RPM)。按量付费更好但仍有硬上限。
移动应用如何触发速率限制
并发使用高峰
移动应用有突发性使用模式。App Store 推荐、社交媒体病毒式传播或产品发布可以在同一时间驱动数千新用户。不像 Web SaaS 使用量逐渐增长,移动应用下载量可以在一天内激增 10-100 倍。
高峰时段
移动端使用在当地时间晚上 7-9 点达到峰值。如果你的用户集中在一个时区, 60-70% 的日使用量压缩在 3 小时窗口内。你的日均可能完全在限制范围内,但高峰小时会超出限制。
功能探索爆发
当用户首次打开 AI 功能时,他们通常会快速发起 5-10 个请求来探索它。这种"探索爆发"意味着新用户产生的请求是稳定态用户的 3-5 倍。在下载高峰期间,这会叠加放大。
计算
1,000 MAU,每用户每天 3 个请求 = 每天 3,000 个请求 = 平均每小时约 125 个请求。
但将 60% 的使用量压缩到 3 个高峰小时: 3 小时内 1,800 个请求 = 每小时 600 个请求 = 10 RPM。在 Tier 1 下很舒适。
10,000 MAU 同样模式: 高峰期 100 RPM。在 Tier 1 下仍然没问题。
50,000 MAU: 高峰期 500 RPM。在 Tier 1 限制的边缘。任何突增都会超出。
现在加上一次 App Store 推荐,一小时内带来 5,000 次下载,每次 3 个探索请求: 一小时内额外 15,000 个请求 = 在你的基线之上额外 250 RPM。你至少需要 Tier 2,而这需要 $50 的先前消费和 7 天的账户历史。
触发限制后会发生什么
HTTP 429 响应
API 返回 429 状态码和 retry-after 头。你的应用没有收到 AI 响应。如果没有适当的错误处理,用户会看到崩溃、空白响应或无限加载状态。
指数退避
标准的重试策略是指数退避: 等待 1 秒,重试,等待 2 秒,重试,等待 4 秒,重试。这在本就缓慢的 API 调用之上增加了延迟。
对于等待 1-2 秒等 AI 响应的用户,加上 1-4 秒的退避重试意味着总共 3-6 秒。大多数用户会放弃。
队列拥堵
如果你为限速请求实现了服务端队列,队列在高峰期间会增长。以 2 倍速率限制持续 10 分钟的高峰会产生一个需要 10 分钟才能清除的积压。队列末端的用户等待 10+ 分钟才能得到响应。
所有用户的体验降级
速率限制是按组织的,而非按用户的。当一次使用高峰触发节流时,你应用的每个用户都受影响。使用该功能数月的老用户与刚下载的新用户得到相同的 429 错误。
缓解策略
请求节流
实现客户端速率限制。限制每用户每分钟请求数。这能防止个别滥用但不解决并发用户问题。
服务端队列
将所有 AI 请求通过你自己的服务器路由。服务器管理队列并在速率限制内分发给 AI API。这能平滑突增但增加延迟和服务器基础设施成本。
多个 API 密钥
将请求分布到多个 API 密钥或供应商账户。这会倍增你的有效速率限制,但如果被发现会违反大多数供应商的服务条款。
模型回退链
如果你的主供应商被限速,回退到次要供应商。OpenAI 被限速?路由到 Gemini。这增加了复杂性,需要维护多个集成。
缓存
对于相同或相似的请求,缓存响应。这减少了 API 调用,但只有在用户问的是类似问题时才有帮助。独特的用户输入(大部分聊天交互)无法被缓存。