速率限制
Routic 对每个 API Key 应用速率限制,确保公平使用和系统稳定性。
默认限制
| 限制 | 默认值 | 最大值(上限) |
|---|---|---|
| RPM(每分钟请求数) | 100 | 1,000 |
| TPM(每分钟 token 数) | 10,000 | 100,000 |
| 最大预算 | 100 USD | 1,000 USD |
| 预算周期 | 30 天 | 90 天 |
限制在密钥生成时设置。你的控制台显示每个密钥的当前限制。
限制如何应用
- 按密钥:限制独立应用于每个 API Key,不是按账户。
- 按分钟:RPM 和 TPM 在滚动 60 秒窗口内计算。
- 不排队:超出限制时,请求立即被 429 拒绝。请求不进入队列。
429 响应
超出速率限制时,收到 429 响应:
{
"error": {
"message": "RPM 限制已超出,请 5 秒后重试。",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
响应可能包含 Retry-After 头,指示等待的秒数。
如何处理速率限制
带指数退避的重试
import time
import random
def call_api_with_retry(messages, model, max_retries=3):
for attempt in range(max_retries):
response = client.chat.completions.create(model=model, messages=messages)
if response.status_code != 429:
return response
delay = min(1 * (2 ** attempt) + random.uniform(0, 0.5), 60)
time.sleep(delay)
raise Exception("超出最大重试次数")
监控使用情况
检查每个响应中的 usage 对象来跟踪 token 消耗:
{
"usage": {
"prompt_tokens": 100,
"completion_tokens": 200,
"total_tokens": 300
}
}
减少 token 消耗
- 使用更短的 prompt
- 在多轮场景中截断旧对话轮次
- 使用
max_tokens限制输出长度
申请更高限制
如需更高速率限制,联系支持并提供:
- 你的 API Key ID
- 当前限制
- 期望的限制值
- 预期使用模式
可申请提高至上限(1,000 RPM / 100,000 TPM)。更高限制需特殊审批。