- 调用OpenAI时发生异常: Error code: 429 - {'error': {'message': '当前分组上游负载已饱和,请稍后再试 (req...

2025年10月14日 11:18 响应: 2.54秒 状态: success

🚨 错误信息

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 # 其他错误则不再重试
        

    预防措施

  • 监控API使用量:关注DMXAPI平台的配额使用情况,避免超出限制。
  • 优化请求策略:评估业务需求,看是否能通过批量处理或异步请求来减少瞬时并发量。