速率限制

Routic 对每个 API Key 应用速率限制,确保公平使用和系统稳定性。

默认限制

限制默认值最大值(上限)
RPM(每分钟请求数)1001,000
TPM(每分钟 token 数)10,000100,000
最大预算100 USD1,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 限制输出长度

申请更高限制

如需更高速率限制,联系支持并提供:

  1. 你的 API Key ID
  2. 当前限制
  3. 期望的限制值
  4. 预期使用模式

可申请提高至上限(1,000 RPM / 100,000 TPM)。更高限制需特殊审批。


相关文档