跳到主要内容

限制

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,
)

下一步