_from_response(err.response) from None openai.InternalServerError: Error code: 5...
🚨 错误信息
Traceback (most recent call last):
File "e:\个人用程序\AI_NovelGenerator - 副本\ui\generation_handlers.py", line 58, in task
Novel_architecture_generate(
File "e:\个人用程序\AI_NovelGenerator - 副本\novel_generator\architecture.py", line 121, in Novel_architecture_generate
character_dynamics_result = invoke_with_cleaning(llm_adapter, prompt_character)
File "e:\个人用程序\AI_NovelGenerator - 副本\novel_generator\common.py", line 80, in invoke_with_cleaning
raise e
File "e:\个人用程序\AI_NovelGenerator - 副本\novel_generator\common.py", line 64, in invoke_with_cleaning
result = llm_adapter.invoke(prompt)
File "e:\个人用程序\AI_NovelGenerator - 副本\llm_adapters.py", line 93, in invoke
response = self._client.invoke(prompt)
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\langchain_core\language_models\chat_models.py", line 383, in invoke
self.generate_prompt(
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\langchain_core\language_models\chat_models.py", line 1006, in generate_prompt
return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs)
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\langchain_core\language_models\chat_models.py", line 825, in generate
self._generate_with_cache(
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\langchain_core\language_models\chat_models.py", line 1072, in _generate_with_cache
result = self._generate(
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\langchain_openai\chat_models\base.py", line 1180, in _generate
response = self.client.create(**payload)
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\openai\_utils\_utils.py", line 287, in wrapper
return func(*args, **kwargs)
File "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\openai\resources\chat\completions\completions.py", line 1147, in create
return self._post(
File "E:\Program Files\anaconda3\envs\computerSystem\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 "E:\Program Files\anaconda3\envs\computerSystem\lib\site-packages\openai\_base_client.py", line 1047, in request
raise self._make_status_error_from_response(err.response) from None
openai.InternalServerError: Error code: 504 - {'error': {'message': 'bad response status code 504 (request id: 20250923201346730348511ryulWtV2)', 'type': 'openai_error', 'param': '', 'code': 'bad_response_status_code'}}
🤖 AI解决方案
openai.InternalServerError: Error code: 504 - {'error': {'message': 'bad response status code 504 (request id: 20250923201346730348511ryulWtV2)', 'type': 'openai_error', 'param': '', 'code': 'bad_response_status_code'}}
错误翻译:openai.InternalServerError: 错误代码:504 - {'error': {'message': '响应状态码 504 错误 (请求 ID: 20250923201346730348511ryulWtV2)', 'type': 'openai_error', 'param': '', 'code': 'bad_response_status_code'}}
原因分析:
OpenAI API 返回了 HTTP 504 Gateway Timeout 错误,这表示 OpenAI 的服务器在处理你的请求时,由于与上游服务器通信超时而未能及时响应。这通常不是你的代码问题,而是 OpenAI 服务的临时问题。
解决方案:
- 重试请求: 由于是网络超时问题,最直接的方法是稍后重试你的代码。可以实现一个简单的重试机制。
import time
def invoke_with_retry(llm_adapter, prompt, max_retries=3, delay=5):
for attempt in range(max_retries):
try:
result = llm_adapter.invoke(prompt)
return result
except openai.InternalServerError as e:
if "504 Gateway Timeout" in str(e):
print(f"Attempt {attempt + 1} failed: {e}. Retrying in {delay} seconds...")
time.sleep(delay)
else:
raise # Re-raise if it's not a 504 error
except Exception as e:
raise # Re-raise other exceptions
raise Exception(f"All {max_retries} attempts failed due to 504 Gateway Timeout.")
# 在你的代码中调用时替换 invoke_with_cleaning
# character_dynamics_result = invoke_with_cleaning(llm_adapter, prompt_character)
# 替换为:
# character_dynamics_result = invoke_with_retry(llm_adapter, prompt_character)
预防措施: