(msg) httpcore.RemoteProtocolError: Server disconnected without sending a respon...
🚨 错误信息
/opt/miniconda3/envs/Stability_AI/bin/python -X pycache_prefix=/Users/ss/Library/Caches/JetBrains/PyCharm2024.3/cpython-cache /Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client 127.0.0.1 --port 56450 --file /Users/ss/PycharmProjects/Stability AI/main.py
/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pydev/pydevd_plugins/__init__.py:2: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
__import__('pkg_resources').declare_namespace(__name__)
已连接到 pydev 调试器(内部版本号 243.26053.29)Traceback (most recent call last):
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
yield
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_transports/default.py", line 250, in handle_request
resp = self._pool.handle_request(req)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request
raise exc from None
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request
response = connection.handle_request(
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/http_proxy.py", line 343, in handle_request
return self._connection.handle_request(request)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/http11.py", line 136, in handle_request
raise exc
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/http11.py", line 106, in handle_request
) = self._receive_response_headers(**kwargs)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/http11.py", line 177, in _receive_response_headers
event = self._receive_event(timeout=timeout)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpcore/_sync/http11.py", line 231, in _receive_event
raise RemoteProtocolError(msg)
httpcore.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/concurrent/futures/_base.py", line 451, in result
return self.__get_result()
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/tenacity/__init__.py", line 480, in __call__
result = fn(*args, **kwargs)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/google/genai/_api_client.py", line 1194, in _request_once
response = self._httpx_client.request(
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_client.py", line 825, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_client.py", line 914, in send
response = self._send_handling_auth(
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_client.py", line 942, in _send_handling_auth
response = self._send_handling_redirects(
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
response = self._send_single_request(request)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_client.py", line 1014, in _send_single_request
response = transport.handle_request(request)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_transports/default.py", line 249, in handle_request
with map_httpcore_exceptions():
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/miniconda3/envs/Stability_AI/lib/python3.10/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.RemoteProtocolError: Server disconnected without sending a response.
python-BaseException
进程已结束,退出代码为 1
🤖 AI解决方案
错误分析
1. 错误翻译
原文:Server disconnected without sending a response
译文:服务器断开连接且未发送响应
2. 原因分析
这是典型的网络连接问题,具体表现为:- 与Google AI API服务器的HTTP连接意外断开
- 服务器在连接建立后未能返回任何响应就断开了连接
- 可能由于网络不稳定、代理设置、服务器负载过高或防火墙限制
3. 解决方案
方案一:增加重试机制和超时设置
import google.generativeai as genai
import time
from tenacity import retry, stop_after_attempt, wait_exponential
# 配置API密钥
genai.configure(api_key="your-api-key")
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=4, max=10)
)
def safe_api_call():
try:
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content(
"你的请求内容",
request_options={
'timeout': 30.0 # 设置超时时间
}
)
return response
except Exception as e:
print(f"API调用失败: {e}")
raise
# 使用示例
try:
result = safe_api_call()
print(result.text)
except Exception as e:
print(f"最终失败: {e}")
方案二:检查网络连接
import requests
import google.generativeai as genai
def check_network_connection():
"""检查网络连接状态"""
try:
# 测试是否能访问Google AI服务
response = requests.get("https://generativelanguage.googleapis.com", timeout=10)
return response.status_code == 200
except:
return False
if check_network_connection():
genai.configure(api_key="your-api-key")
# 进行API调用
else:
print("网络连接异常,请检查网络设置")
4. ️ 预防措施
最佳实践建议:
tenacity库实现指数退避重试策略️ 工具推荐:
临时解决方案: