配额控制数量,限流控制速度
API 配额限制较长周期内的总消耗,例如每月 10 万次请求;速率限制控制用量发生的速度,例如每分钟 120 次。客户即使没有用完月配额,也可能因短时高峰触发限流。
配额保护套餐经济和长期容量,限流保护可用性、延迟与上游吞吐。多数付费 API 都需要两者。
| 控制项 | 常见窗口 | 主要用途 |
|---|---|---|
| 配额 | 日或月 | 限制包含用量或总消耗 |
| 速率限制 | 秒或分钟 | 控制请求速度与突发 |
| 并发限制 | 进行中请求 | 保护工作进程和延迟 |
| 支出上限 | 账期 | 限制金额风险 |
一次请求可能同时消耗多个限制
一条 AI 请求可能同时占用一次 RPM、数千 TPM、一个并发槽位和部分月度支出上限。通过某一项检查并不代表一定通过其他检查。
结构化错误应说明触发了哪项限制、当前值、最大值、重置时间以及是否可以安全重试。
硬限制与软限制带来不同体验
硬限制会拒绝额外用量,提供成本确定性但可能中断生产;软限制会发送警告或产生超额费用,保持服务连续但需要清晰条款和客户支出控制。
- 用量耗尽前发送阈值通知。
- 允许客户设置更低的项目或 Key 限额。
- 说明限额按 UTC 还是其他时区重置。
- 说明失败和重试请求是否计数。
根据容量和成本计算限额
从上游容量、内部工作进程容量和月度预算开始,先扣除运行缓冲,再分配给不同套餐和预期活跃用户。还应测试整点任务等同步突发场景。
可分配容量 = 上游容量 ×(1 - 运行缓冲);每用户速率 = 可分配容量 / 预计同时活跃用户数。
把限额作为 API 合同的一部分
公开各套餐默认限制,通过响应头或用量接口返回剩余容量和重置时间。限制变化可能影响客户程序,应像其他合同变更一样进行版本管理和通知。