Chat Completion API Custom OpenAI endpoint failed with status 429: Resource has ...
错误信息
Chat Completion API
Custom OpenAI endpoint failed with status 429: Resource has been exhausted (e.g. check quota).
AI 解决方案
错误翻译
原文:Custom OpenAI endpoint failed with status 429: Resource has been exhausted (e.g. check quota).
译文:自定义OpenAI端点失败,状态码429:资源已耗尽(例如检查配额)。
原因分析
请采取以下一项或多项措施:
- 控制调用频率:
# Python 示例:使用指数退避策略进行重试
import time
import random
from openai import OpenAI, RateLimitError
client = OpenAI() # 假设已配置好端点和密钥
def call_api_with_retry(messages, max_retries=5):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="your-model",
messages=messages
)
return response
except RateLimitError as e:
if attempt == max_retries - 1:
raise e
# 指数退避:等待时间 = (2^尝试次数) + 随机抖动秒
wait_time = (2 ** attempt) + random.uniform(0, 1)
print(f"触发速率限制,等待 {wait_time:.2f} 秒后重试...")
time.sleep(wait_time)
return None
# 使用示例
messages = [{"role": "user", "content": "Hello!"}]
result = call_api_with_retry(messages)
- 实现请求队列:
- 检查并提升配额:
- 监控用量:定期在OpenAI仪表板检查API使用量,设置用量告警。
- 客户端限流:在应用端实现自己的速率限制器,确保单个用户的请求不会拖垮整个应用的API配额。
- 优化设计:优化提示词(Prompt)减少不必要的Token消耗,对缓存友好的查询结果进行缓存,避免重复请求。
使用消息队列(如Redis Queue, Celery)或简单的队列库,确保API请求按序、平稳地发出,避免突发流量。
- 登录您的OpenAI账户后台。
- 在 “Usage” 或 “Rate limits” 页面查看当前用量和限制。
- 如果是免费试用用户,考虑升级为付费账户以获取更高的额度。
- 如果已是付费用户,可以联系OpenAI支持询问是否可能临时或永久提升限额。