跳到主要内容

速率限制

为了保障平台稳定性和公平性,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. 缓存响应

对于相同或相似的请求,考虑在客户端实施缓存策略,避免重复请求。