详细解释
速率限制(Rate Limit,简称限流) 是所有大模型 API 都在执行的一套”闸门”机制。它不是 bug,而是服务商主动设计的:既要防止刷接口、恶意消耗 GPU,又要保证所有租户的请求不会互相挤占导致排队崩溃。
常见的限速维度
每家厂商的”闸门形状”不同,常见组合如下:
| 维度 | 缩写 | 统计窗口 | 谁容易撞 |
|---|---|---|---|
| 每分钟请求数 | RPM | 60s 滑动 | 大量小请求业务 |
| 每分钟 Token 数 | TPM | 60s 滑动 | 长上下文 / RAG |
| 每日请求数 | RPD | 24h 滚动 / 日切 | 超大量批处理 |
| 每日 Token 数 | TPD | 24h 滚动 / 日切 | 持续高吞吐业务 |
| 在飞并发数 | Concurrency | 实时 | 突发并行 Agent |
| 10 分钟消费额 | Spend Rate | 10m 滚动 | 大模型长输出 |
参考 Google 官方文档:Gemini API 速率限制说明。
实现算法
主流 API 都使用 令牌桶算法(Token Bucket) 来做限流(不是每分钟清零的固定窗口):
- 桶有一个最大容量(即你的 RPM / TPM 上限)
- 令牌按速率匀速回补(比如 RPM=60 就每秒补 1 个)
- 请求过来要”取走”对应数量的令牌,取得到就放行,取不到就 429
令牌桶算法比固定窗口更”公平”,允许短时间内的流量突发。唯元智创(Weimeta)聚合网关在客户端也额外加了一层分布式令牌桶,帮助你在上游触发 429 之前就做客户端排队,降低无效请求占比。
常见问题
限速了是不是就只能等?
除了等待,可以做四件事:1. 指数退避重试;2. 多密钥/多厂商聚合;3. 合并小请求为批量(Batch API);4. 业务降级(比如先返回部分结果)。