":{"type":"bad_response_status_code","message":"Model tpm limit exceeded. Please...
🚨 错误信息
🤖 AI解决方案
代码糕手 - 专业报错分析助理
1. 错误翻译
原文:Model tpm limit exceeded. Please try again later.
译文:模型TPM(每分钟令牌数)限制已超出。请稍后重试。
2. 原因分析
这个错误是API调用频率限制错误,不是代码本身的语法或逻辑错误。
根本原因:
发生位置:
3. 解决方案
方案一:添加重试机制(推荐)
python
import time
import requests
from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exceptiondef is_rate_limit_error(exception):
"""检查是否为速率限制错误"""
if hasattr(exception, 'response') and exception.response is not None:
return exception.response.status_code == 429
return False
@retry(
retry=retry_if_exception(is_rate_limit_error),
stop=stop_after_attempt(5),
wait=wait_exponential(multiplier=1, min=4, max=60)
)
def call_api_with_retry():
"""带重试机制的API调用"""
# 您的API调用代码
response = requests.post(
"https://api.your-service.com/v1/chat/completions",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"model": "gpt-4", "messages": [...]}
)
response.raise_for_status()
return response.json()
方案二:手动添加延迟
python
import timedef call_api_with_backoff():
try:
# 您的API调用代码
response = requests.post(
"https://api.your-service.com/v1/chat/completions",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"model": "gpt-4", "messages": [...]}
)
if response.status_code == 429:
# 等待一段时间后重试
wait_time = 60 # 建议等待60秒
print(f"Rate limited. Waiting {wait_time} seconds...")
time.sleep(wait_time)
# 重试逻辑
return call_api_with_backoff()
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as e:
if e.response.status_code == 429:
# 同上处理
pass
4. ️ 预防措施
最佳实践建议:
tenacity这样的库,在遇到429错误时自动重试,并逐渐增加重试间隔开发工具推荐:
配置建议:
python
在您的API客户端配置中
API_CONFIG = {
"max_retries": 3,
"retry_delay": [10, 30, 60], # 秒数
"batch_size": 5, # 分批处理请求
"requests_per_minute": 50 # 自行限制频率,低于服务商限制
}
请求ID: 20260106110333853086578lKoWgQdJ