部署大模型或者RAGFlow出现:openaipublic.blob.core.windows.net port=443

大家好,今天我们来聊一个在私有化部署大模型(或 RAGFlow 等工具)时,可能突然跳出来的"拦路虎"。

不少朋友在部署时都遇到过类似这样的报错:

bash 复制代码
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NameResolutionError("HTTPSConnection(host='openaipublic.blob.core.windows.net', port=443): Failed to resolve 'openaipublic.blob.core.windows.net' ([Errno -3] Temporary failure in name resolution)"))

错误提示最终会指向一个文件下载失败:cl100k_base.tiktoken

这到底是怎么回事?又该怎么解决?今天我们就来拆解一下。


错误信息说了啥?

简单来说,错误提示是:程序在尝试从 openaipublic.blob.core.windows.net 这个地址下载一个名叫 cl100k_base.tiktoken 的文件,但是因为网络问题,连不上这个地址,导致下载失败。

所以核心就一点:网络访问不了这个域名


为什么会这样?

这个文件是很多大模型组件在初始化时,自动去下载的词表编码文件。如果你的服务器或部署环境不能访问外网,或者因为某些网络策略无法连接这个微软 Azure 的域名,就会触发这个错误。


怎么解决?

解决思路分两种,看你的部署方式是不是在 Docker 里。

✅ 情况一:非 Docker 部署

如果你是在自己的物理机或虚拟机上直接部署,那很简单:

先在终端里试试,直接访问这个链接能不能通:

bash 复制代码
curl https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken

如果访问不了,那就需要检查你的服务器网络设置,看是否需要配置代理或开通外网访问权限。

总之,核心就是确保你的物理机或虚拟机能下载到这个文件


🐳 情况二:Docker 部署(最常见)

这种情况最常见,也最容易让人困惑:"明明我宿主机能上网,为什么容器里就不行?"

因为 Docker 默认的网络模式(bridge)可能会受到网络策略影响,导致容器内部访问不了某些外网地址。

这时候,我们可以换个思路:既然容器下载不了,那我们就提前下载好,然后"喂"给容器

🛠 解决步骤:

第一步:宿主机下载文件

在你的宿主机(跑 Docker 的那台机器)上,手动下载这个 tiktoken 文件,放到某个目录里,比如:

bash 复制代码
/home/abc/ragflow/tiktoken_cache/

第二步:关键操作------给文件改名

下载下来后,一定要把文件名改成这个

bash 复制代码
9b5ad71b2ce5302211f9c61530b329a4922fc6a4

对,不要保留任何后缀。为什么必须改?后面会解释。

如下图所示:

第三步:修改 Docker 配置

如果你是用 docker-compose.yml 启动的,主要做两处调整:

1.设置环境变量,告诉程序去哪个目录找这个文件:

bash 复制代码
    environment:
      - TIKTOKEN_CACHE_DIR=/tiktoken_cache

2.把宿主机存放文件的目录,挂载到容器里的对应位置:

bash 复制代码
    volumes:
      - /home/abc/ragflow/tiktoken_cache:/tiktoken_cache

我是在部署ragflow时遇到的问题,修改配置如下:

改完配置,重启容器,问题一般就能解决了。


为什么必须改成那一串神秘字符?

这其实是 OpenAI 源码里设计的一个缓存机制。

我们可以在github找到openai的源码,查看load.py文件:

然后再找到read_file_cached方法,如下图所示:

在代码中,程序并不是直接用原始 URL 作为文件名去查找,而是会把 URL 字符串做一次 SHA1 哈希计算,得到的哈希值(hexdigest)作为缓存文件名。

我们遇到的这个 URL:

bash 复制代码
https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken

经过 hashlib.sha1(blobpath.encode()).hexdigest() 计算后,得到的值正是:

bash 复制代码
9b5ad71b2ce5302211f9c61530b329a4922fc6a4

所以,我们必须把下载的文件改成这个名字,程序才能在缓存目录里找到它。


小结一下

这个问题本质是网络访问受限引发的文件下载失败。 非 Docker 环境,解决网络即可;Docker 环境,则可利用"宿主机下载 + 挂载进容器 + 按哈希改名"的方式绕过网络限制。

如果你在私有化部署时也遇到类似错误,希望这篇内容能帮你快速定位、顺利解决。

如果还有其它部署中的"坑"欢迎留言,我们一起讨论解决。


**原创不易,如果觉得有用,欢迎点赞、在看支持一下。**你的支持,是我持续分享技术干货的最大动力。

相关推荐
chenjim1 天前
你的 Agent 是个黑箱:eBPF 如何看见它真正在做什么
llm·agent
Lkstar1 天前
万字长文Query改写与多路召回实战|从HyDE到RRF融合,召回率提升22%的完整方案
数据库·人工智能·llm
AI语宙漫游指南1 天前
从 CV 扩散到 NLP:详解 Google DiffusionGemma 架构、推理机制与优劣
深度学习·llm
程序员cxuan1 天前
瑞幸出 CLI 了,这会是迈向 AGI 的第一步吗?
ai·llm·agi
智泊AI1 天前
为什么现在大家都在扎堆转 Agent 流程架构师?
llm
去伪存真1 天前
如何将没有字幕的英文视频转换成中文视频?
前端·pytorch·llm
qcx231 天前
【AI Daily 2026-06-05】 AI 方向的基础设施化,能力从模型层下沉到工具链和工作流
人工智能·ai·llm·agent·agi
DO_Community1 天前
百亿参数开源模型托管成本账:从按 Token 计费到单卡 GPU 服务器怎么选?
运维·服务器·开源·llm·agent
大佐不会说日语~1 天前
在 Windows 本地用 Docker 部署向量模型(bge-m3)
windows·docker·容器·llm·ollama
啾啾Fun1 天前
【LLM应用可靠性】3-Agent 事故响应:当 AI 系统行为异常时的 SRE Runbook
ai·llm·agent·生产应用