速率限制
为了保障平台稳定性和公平性,ClawdRouter 对 API 请求实施了速率限制。
限制规则
| 限制类型 | 说明 |
|---|---|
| RPM (Requests Per Minute) | 每分钟请求次数限制 |
| TPM (Tokens Per Minute) | 每分钟 Token 处理量限制 |
信息
具体的速率限制取决于你的账户模型速率限制。请在控制台查看你的账户模型具体限额。
响应头
当你的请求接近或达到速率限制时,API 响应中会包含以下 Header:
| Header | 说明 |
|---|---|
x-ratelimit-limit-requests | 允许的最大请求数 |
x-ratelimit-remaining-requests | 剩余可用请求数 |
x-ratelimit-reset-requests | 请求限制重置时间 |
超限处理
当请求超过速率限制时,API 会返回 429 Too Many Requests 状态码:
{
"error": {
"message": "Rate limit exceeded. Please retry after 2 seconds.",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
最佳实践
1. 实施指数退避
遇到 429 错误时,不要立即重试,而是逐渐增加等待时间:
import time
import random
def exponential_backoff(attempt, base_delay=1, max_delay=60):
delay = min(base_delay * (2 ** attempt) + random.random(), max_delay)
time.sleep(delay)
2. 请求排队
对于高频场景,建议在客户端实施请求队列,控制并发数量:
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.clawdrouter.com/v1",
)
semaphore = asyncio.Semaphore(10) # 最大并发数
async def rate_limited_request(messages):
async with semaphore:
return await client.chat.completions.create(
model="gpt-4o",
messages=messages,
)
3. 使用流式输出
对于长文本生成场景,使用流式输出 (stream: true) 可以更早地获取响应,减少超时风险。
4. 缓存响应
对于相同或相似的请求,考虑在客户端实施缓存策略,避免重复请求。