HTTPSConnectionPool(host=‘openaipublic.blob.core.windows.netport=443‘): Max retries exceeded with ur_connection object at 0x7fe7bf444880>: failed to re
Python 对接验证失败问题分析与解决方法
🔍 一、错误信息回顾
验证失败,请检查参数是否正确:HTTPSConnectionPool(host=\'openaipublic.blob.core.windows.netport=443\'):Max retries exceeded with url: /encodings/cl100k base.tiktoken(Caused by NameResolutionError( \"\": Failed to resolve \'openaipublic.blob.core.windows.net\' (Errno -3 Temporary failure in name resolution)))
🧠 二、问题定位分析
✅ 错误关键词提取:
HTTPSConnectionPool
: 使用了urllib3
库发起 HTTPS 请求。host=\'openaipublic.blob.core.windows.netport=443\'
: 端口号未正确分隔。NameResolutionError
: 域名解析失败。Errno -3
: 表示临时性 DNS 解析失败。
🎯 核心问题总结:
你的程序在尝试访问微软 Azure 上托管的资源时,出现以下一种或多种情况:
🛠️ 三、解决步骤详解
✅ 步骤 1:检查代码中请求 URL 是否正确
确保你在调用 urllib3
或相关库时,传递的 host 和 port 是正确的格式。例如:
import urllib3http = urllib3.PoolManager()response = http.request(\'GET\', \'https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken\')
✅ 正确格式应为完整的 URL,或者至少 host 和 port 分开传参:
from urllib3 import HTTPSConnectionPoolpool = HTTPSConnectionPool(host=\'openaipublic.blob.core.windows.net\', port=443)
⚠️ 错误写法(导致 Errno -3):
HTTPSConnectionPool(host=\'openaipublic.blob.core.windows.netport=443\') # ❌ port 没有正确分隔
✅ 步骤 2:测试域名能否解析(DNS)
打开终端或命令行,执行:
ping openaipublic.blob.core.windows.net
如果返回类似:
ping: unknown host openaipublic.blob.core.windows.net
说明当前环境无法解析该域名,可能是 DNS 配置问题。
✔️ 解决方法:
- 更换 DNS 服务器,比如设置为:
- Google DNS:
8.8.8.8
或8.8.4.4
- Cloudflare DNS:
1.1.1.1
- Google DNS:
✅ 步骤 3:检查网络连接是否正常
你可以尝试访问其他网站来确认整体网络是否正常:
curl https://www.google.com
如果失败,可能是本地网络问题,尝试重启路由器或切换网络。
✅ 步骤 4:检查是否有防火墙或代理限制
如果你在公司网络、学校网络或某些特殊环境中,可能会被限制访问某些外部资源。
✔️ 尝试方案:
- 关闭本地防火墙或杀毒软件测试
- 设置系统代理(如有需要)
- 使用
curl
或浏览器直接访问该链接进行测试:
curl -v https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken
✅ 步骤 5:重试或更换下载源(针对 tiktoken 文件)
tiktoken
在首次加载时会从 Azure 下载模型文件,如果你本地能联网但偶尔出错,可以尝试:
方法 A:清除缓存后重试
rm -rf ~/.cache/tiktoken/
然后重新运行代码,让其再次尝试下载。
方法 B:手动下载并缓存
你可以手动下载这个文件到本地:
wget https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken -O cl100k_base.tiktoken
然后将文件放到缓存目录下(路径可能不同):
mkdir -p ~/.cache/tiktoken/cp cl100k_base.tiktoken ~/.cache/tiktoken/
✅ 步骤 6:联系网络管理员或服务商
如果你确定上述方法都无法解决,并且你是:
- 公司内网用户
- 教育网用户
- 使用代理或翻墙工具
请联系网络管理员,确认是否对 Azure 相关域名做了封锁或限制。
🧪 四、附加建议:Python 中使用 requests 替代测试
如果你使用的是底层库(如 urllib3
),也可以改用更易用的 requests
进行测试:
import requestsurl = \"https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken\"response = requests.get(url)if response.status_code == 200: print(\"成功下载\")else: print(\"失败,状态码:\", response.status_code)
这有助于快速判断问题是出在网络层还是业务逻辑层。