限制
ClawdRouter 会根据账户、模型、供应商和接口类型设置不同的限制。限制通常包括请求频率、Token 吞吐、并发数和异步任务数量,用于保障平台稳定性和不同用户之间的公平性。
具体额度会随账户等级、模型能力、供应商策略和业务配额变化。请以控制台展示的账户模型限额为准;如需提升额度,可通过工单联系支持。
常见限制类型
| 类型 | 说明 |
|---|---|
| RPM (Requests Per Minute) | 每分钟请求数限制 |
| TPM (Tokens Per Minute) | 每分钟 Token 处理量限制 |
| 并发限制 | 同一时间正在处理的请求数量 |
| 异步任务限制 | 视频生成、批量任务等异步任务的提交和处理中数量 |
响应头
当请求接近或达到限制时,API 响应中可能会包含以下 Header,便于客户端判断剩余额度和重试时机:
| Header | 说明 |
|---|---|
x-ratelimit-limit-requests | 当前窗口允许的最大请求数 |
x-ratelimit-remaining-requests | 当前窗口剩余可用请求数 |
x-ratelimit-reset-requests | 请求限制重置时间 |
超限响应
请求超过限制时,通常会返回 429 Too Many Requests:
{
"error": {
"message": "Rate limit exceeded. Please retry after 2 seconds.",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
处理建议
- 对
429实施指数退避,不要立即高频重试。 - 控制客户端并发,避免多个服务实例同时打满额度。
- 对视频生成等异步任务使用队列,按业务优先级提交。
- 对相同或相似请求使用缓存,减少不必要的重复调用。
- 对长文本生成使用流式输出,降低等待时间和客户端超时风险。
- 需要更高额度时,通过控制台工单联系支持。
指数退避示例
import random
import time
def exponential_backoff(attempt, base_delay=1, max_delay=60):
delay = min(base_delay * (2 ** attempt) + random.random(), max_delay)
time.sleep(delay)
并发控制示例
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="YOUR_API_KEY",
base_url="__DOCS_API_ORIGIN__/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,
)