跳到主要内容

速率限制 / Rate Limits

图灵平台对每个 API Key 施加多维速率限制,超限返回 HTTP 429 + 业务错误码。本页帮你区分是谁的限流、如何退避、如何避免。

维度

维度错误码触发条件范围
用户 RPM1111 USER_RPM_LIMIT_EXCEEDED每分钟请求数超限单 API Key
用户 TPM1112 USER_TPM_LIMIT_EXCEEDED每分钟 token 数超限单 API Key
Client RPM1114 CLIENT_RPM_LIMIT_EXCEEDED同一 X-Client-Id 的 RPM 超限同客户端聚合
Client TPM1113 CLIENT_TPM_LIMIT_EXCEEDED
通用速率1104 RATE_LIMIT_EXCEEDED平台层聚合限流全局保护
服务限流1115 SERVICE_RATE_LIMIT_EXCEEDED服务级别服务内
供应商限流1122 PROVIDER_RATE_LIMIT_EXCEEDED上游厂商限流(Gemini 尤其常见)厂商侧
预算耗尽1110 USER_EXPENSE_OVER_BUDGET账户余额不足 / 消费上限API Key
剩余 token 不够1102 USER_LEFT_TOKENS_EXCEED免费额度用光免费用户

所有这些都走 HTTP 429(除 1102 为 400),区分靠 业务 code 字段

错误响应示例

{
"code": 1112,
"message": "User TPM limit exceed",
"data": {"limit": 100000, "window": "1m"},
"trace_id": "tur_..."
}

客户端如何反应

基本策略:指数退避

import time
from openai import OpenAI, RateLimitError

client = OpenAI(
api_key="your-api-key",
base_url="https://live-turing.cn.llm.tcljd.com/api/v1",
)

def call_with_backoff(max_retries=4):
delay = 1.0
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="turing/gpt-5.4-mini",
messages=[{"role": "user", "content": "Hi"}],
)
except RateLimitError:
if attempt == max_retries - 1:
raise
time.sleep(delay)
delay *= 2 # 1, 2, 4, 8 ...

优先用平台内置重试 / Fallback

与其在客户端做复杂退避,不如让平台代劳——turing_options 支持 max_retriesfallbacks

client.chat.completions.create(
model="turing/gpt-5.4-mini",
messages=[...],
extra_body={
"turing_options": {
"max_retries": 2,
"fallbacks": ["turing/claude-sonnet-5", "turing/gemini-3.1-pro-latest"]
}
}
)

平台的退避曲线:1s → 2s → 4s … up to 60s。仅对 429/5xx/超时等可重试错误生效,401/400 不重试。详见 超时、重试与 Fallback

区分"谁的限流"

code谁超限最佳应对
1111 / 1112你的 API Key升级额度 / 降请求频率
1113 / 1114同一 Client(聚合多 Key)同上,或换 Client 分组
1104 / 1115平台层短时退避 + 重试
1122上游厂商(Gemini/OpenAI/…)开 fallback 切换供应商,或等待恢复
1110余额 / 预算充值 / 提升消费上限

查看你的当前额度

通过图灵平台 Portal 或 /v1/admin/usage 接口(需额外权限)。日常排查建议在 Portal 上看余额、配额、已用量三栏。

Gemini 专属:Provisioned Throughput

遇到 Gemini 系列长期 1122 供应商限流,可购买 Provisioned Throughput(预配吞吐量)。详见 问题排查 / Gemini 429 限流与 PT


最佳实践

  1. 生产环境务必开 retries + fallbacks,而不是硬失败
  2. 每个请求带 X-Client-Request-Id,429 时还能追溯(见 请求追踪
  3. 大批量任务错峰:1 分钟内发 1 万条不如分 10 分钟每分钟 1 千条
  4. 监控 429 率:日常 >1% 说明额度该提了
  5. 流式请求算 TPM 时按输出 token 计费:响应越长越占额度,控制 max_tokens

常见问题

  • "我才发了 100 条怎么就 429 了" → 查业务码:多半是 Gemini 的 1122(厂商侧),不是你的限额
  • Fallback 也 429 → 两条 fallback 配置成不同厂商的模型(例如 ["turing/claude-sonnet-5", "turing/gpt-5.4-mini"]
  • 流式请求 token 被计算两次? → 不会;但流断后已发送 token 照算
  • 怎么永久避免 1110 → Portal 上把账户升级到后付费 / 开白名单(联系平台)

See also