- 调用OpenAI时发生异常: Error code: 429 - {'error': {'message': '当前分组上游负载已饱和,请稍后再试 (req...
🚨 错误信息
2025-10-14 11:15:34 - httpx - INFO - HTTP Request: POST https://www.dmxapi.cn/v1/chat/completions "HTTP/1.1 429 Too Many Requests"
2025-10-14 11:15:34 - openai._base_client - INFO - Retrying request to /chat/completions in 0.478884 seconds
2025-10-14 11:15:49 - httpx - INFO - HTTP Request: POST https://www.dmxapi.cn/v1/chat/completions "HTTP/1.1 429 Too Many Requests"
2025-10-14 11:15:49 - openai._base_client - INFO - Retrying request to /chat/completions in 0.844693 seconds
2025-10-14 11:16:04 - httpx - INFO - HTTP Request: POST https://www.dmxapi.cn/v1/chat/completions "HTTP/1.1 429 Too Many Requests"
2025-10-14 11:16:04 - llm_test.main - ERROR - 调用OpenAI时发生异常: Error code: 429 - {'error': {'message': '当前分组上游负载已饱和,请稍后再试 (request id: 20251014111457755637339vQi4UOuP)', 'type': 'openai_error', 'param': '', 'code': 'insufficient_quota'}}
Traceback (most recent call last):
File "E:\学习\Python_learning\code\llm_test\controller\controller.py", line 318, in non_stream_response
completion = client.chat.completions.create(
File "D:\Anaconda\envs\bdwd\lib\site-packages\openai\_utils\_utils.py", line 286, in wrapper
return func(*args, **kwargs)
File "D:\Anaconda\envs\bdwd\lib\site-packages\openai\resources\chat\completions\completions.py", line 1147, in create
return self._post(
File "D:\Anaconda\envs\bdwd\lib\site-packages\openai\_base_client.py", line 1259, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
File "D:\Anaconda\envs\bdwd\lib\site-packages\openai\_base_client.py", line 1047, in request
raise self._make_status_error_from_response(err.response) from None
openai.RateLimitError: Error code: 429 - {'error': {'message': '当前分组上游负载已饱和,请稍后再试 (request id: 20251014111457755637339vQi4UOuP)', 'type': 'openai_error', 'param': '', 'code': 'insufficient_quota'}}
🤖 AI解决方案
Error code: 429 - {'error': {'message': '当前分组上游负载已饱和,请稍后再试 (request id: 20251014111457755637339vQi4UOuP)', 'type': 'openai_error', 'param': '', 'code': 'insufficient_quota'}}
原因分析
API请求频率过高,超出了DMXAPI平台的配额限制。解决方案
- 降低请求频率:在代码中增加延迟,例如使用
time.sleep(seconds)。 - 实现指数退避:当遇到 429 错误时,增加等待时间后再重试。
import time
from openai import OpenAI, RateLimitError
# 假设 client 已经初始化
client = OpenAI(api_key="YOUR_API_KEY") # 请替换为您的真实 API Key
max_retries = 3
delay = 1 # 初始延迟秒数
for attempt in range(max_retries):
try:
completion = client.chat.completions.create(
model="gpt-3.5-turbo", # 或您使用的其他模型
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
# 处理成功响应
print(completion.choices[0].message.content)
break # 成功后跳出循环
except RateLimitError as e:
print(f"Rate limit exceeded. Retrying in {delay} seconds... Attempt {attempt + 1}/{max_retries}")
time.sleep(delay)
delay *= 2 # 指数增长延迟
except Exception as e:
print(f"An unexpected error occurred: {e}")
break # 其他错误则不再重试