调用频率限制
一句话
按每分钟限制两件事:**请求次数(RPM)**和 token 消耗量(TPM)。超了返回 429,下一分钟自动恢复。
一、你的额度是多少——自己查
GET https://intertoken.ai/v1/api/v1/rate-limits/me
{ "rpm": 60, "tpm": 100000 }
| 字段 | 含义 |
|---|---|
rpm | 每分钟允许的最大请求数 |
tpm | 每分钟允许消耗的最大 token 数(输入 + 输出都算) |
响应头同时带 x-ratelimit-limit-requests / x-ratelimit-limit-tokens。
系统默认档 60 RPM / 100,000 TPM,但请以接口实际返回为准。
这两个数字是「档位参考值」,不是「一定会被执行到的值」——实际生效的额度可能比这里写的更松(平台可以在运行时调整默认档),也可能更严(你自己主动调低过,或平台把默认档配得更低)。因此:
- 不要照本文写死的数字给自己的客户端做限速;
- 不要写「第 N 次请求必须被拦」这类断言——如果没复现出来,不代表限流失效,可能只是实际额度比这里写的更宽松。
想知道此刻真正对你生效的值,请调用
GET /api/v1/rate-limits/me——它返回的永远是当前实际生效值。唯一无条件可以依赖的两件事:超限时你会收到
429,且带Retry-After;按Retry-After退避后重试是被鼓励的,不会因此被封禁。
二、你可以自己调——在所属档位内
PUT https://intertoken.ai/v1/api/v1/rate-limits/me {"rpm": 30, "tpm": 50000}
DELETE https://intertoken.ai/v1/api/v1/rate-limits/me 恢复系统默认
能调的范围 = 你所属档位的上限(有生效中的套餐则为付费档,否则为免费档)。
- 想调低(自我保护、防止意外烧量):档位内随便调
- 想调高:只能调到档位上限;超了返回
422,错误信息会直接告诉你该档位上限是多少 - 想要更高的档位:请联系我们
调低之后随时可以调回来,不会「一旦调低就再也升不上去」——可调范围看的是你所属档位的上限,不是你当前的生效值。
三、按什么聚合
按账户,不是按 Key。 名下所有 Key 共享同一套额度,多申请几个 Key 不会增加总额度。
四、时间窗口
按自然分钟计算,不是滚动窗口。每分钟第 0 秒计数清零。
- 在
10:00:59用完额度,等 1 秒到10:01:00就完全恢复 - 反过来,如果在分钟边界前后密集发送,可能在很短时间内消耗两个窗口的额度
建议把请求均匀分散,避免集中在整分钟发送。
五、超限时的响应
HTTP 429
Retry-After: 60
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "RPM limit 60 exceeded; retry after 60s"
}
}
message 会写明是哪个限额超了、当前额度是多少。
处理方式:读取 Retry-After,退避后重试。你不会因为收到 429 后重试而被封禁——429 是正常的背压信号,合规重试是被鼓励的。
六、两个容易踩的点
6.1 TPM 是事后结算的
token 数只有请求返回后才知道,所以判定逻辑是:这一分钟已消耗的 token 超了额度,就拦住下一个请求。 单个超大请求本身不会被提前拦下,但它会让你这一分钟剩下的请求全部收到 429。发送很长上下文时,建议主动控制并发。
6.2 两个限额的边界判定不一样
| 判定方式 | |
|---|---|
| RPM | 第 60 次请求能通过,第 61 次才拦(超过才拦) |
| TPM | 已消耗达到上限就拦(含等于) |
由于实际阈值可能与档位参考值不同,「第 61 次一定被拦」不是可以断言的具体行为,可以依赖的只是这两条比较关系本身。
七、关于 IP 封禁
平台不会仅因为调用频率高、并发多或客户端配置错误而封禁 IP。早期曾有过基于 IP 的自动封禁机制,因为容易误伤合规客户(正常重试的客户端被判成异常、企业出口 NAT 下一个人配错连累同出口的所有调用)而下线。
你不会因为重试、并发或误配被拉黑,最坏情况就是收到 429。
八、服务降级时
限流组件本身出现故障时,平台选择放行而不是拒绝——宁可短时间内不限流,也不让你的业务因平台内部故障而中断。
九、常见问题
| 问 | 答 |
|---|---|
| 多发几个 Key 额度会变多吗? | 不会,按账户聚合 |
| 429 之后要等多久? | 最多 60 秒,以响应头 Retry-After 为准 |
| 调用响应里能看到实时用量吗? | 暂不返回,如有需要欢迎反馈 |
| 我的额度被调整过吗? | 调用 GET /api/v1/rate-limits/me,它返回的就是此刻的生效值 |
| 怎么提额? | 档位内可自助 PUT 调整;升档位请联系我们 |