【错误记录】Codex 接入 Ollama 本地大模型报错 ( This model requires an Ollama account. Please sign in to Ollama t )

发布时间:2026/10/28 10:12:02
【错误记录】Codex 接入 Ollama 本地大模型报错 ( This model requires an Ollama account. Please sign in to Ollama t )

文章目录

  • 前言
  • 一、报错信息与现象
  • 二、错误原因分析
    • 1、hf.co 命名空间存在强制鉴权
    • 2、为什么容易误判为网络问题
  • 三、解决方案
    • 1、方案一 : 重命名模型 ( 推荐 、 已解决问题 )
    • 2、方案二 : 登录 Ollama 账号 ( 官方路径 )
    • 3、方案三 : 清理旧标签 ( 收尾动作 )
  • 四、验证步骤
  • 五、注意事项与避坑
  • 总结

前言



在本地大模型开发场景中 ,Ollama 搭配 Codex CLI 是一套常见的本地化方案, 但当模型来自hf.co/命名空间时, 会出现一类非常迷惑的报错 :模型权重明明已经完整下载到本地 , 甚至已经加载进显存, Codex 调用时却提示需要 Ollama 账号 , 流式响应中途断开 ;

本文从报错现象入手 , 给出根因分析 , 三种解决方案与验证步骤 , 形成一套可直接落地的排查路径 ;





一、报错信息与现象



使用 Codex CLI 调用本地 Ollama 中已下载的hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M模型时 , 终端输出如下报错 :

■ stream disconnected before completion:Thismodel requires anOllamaaccount.PleasesignintoOllamato usethismodel.




执行ollama ps命令 , 发现该 大模型 已经加载到了 显存中, 且 100% 的层数都在显存中 , 不存在 层卸载 的情况 ;

D:\Ollama>ollama ps NAME ID SIZE PROCESSOR CONTEXT RUNNER UNTIL hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M c5546614c8e09.4GB100%GPU4096llamacpp7minutes from nowD:\Ollama>

执行ollama list命令 , 也可以看到该模型 已经全部下载到了本地 ;

D:\Ollama>ollama list NAME ID SIZE MODIFIED qwen3.5:4b d8b0f5e9760c3.3GB6hours ago qwen3.8-9b-writer-codex:latest da5861532da97.6GB22hours agoQwen3.8-9B-Distill-SLERP-F451-Pro-Writer-Uncensored-i1-GGUF-Q6_K:latest17abddf6926c7.6GB26hours ago hf.co/mradermacher/Qwen3.8-9B-Distill-SLERP-F451-Pro-Writer-Uncensored-i1-GGUF:Q6_K af7aa49d80997.6GB27hours agoReadyArt-Amoral-Fallen-Omega-Gemma3-12B-GGUF-Q5_K_M:latest b39424b496b58.4GB28hours ago hf.co/mradermacher/Cthulhu-8B-v1.4-i1-GGUF:Q6_K8f3669bc92b86.6GB28hours ago hf.co/bartowski/ReadyArt_Amoral-Fallen-Omega-Gemma3-12B-GGUF:Q5_K_M1bcfcfa9bf478.4GB28hours ago hf.co/mradermacher/Qwen3-14B-MechaHitler-i1-GGUF:Q4_K_M98c3f9ad75259.0GB29hours ago qwen3.8-9b-heretic-nothink:latest fa3891096f677.4GB39hours ago qwen3.8-9b-heretic-fixed:latest c67d04400c087.4GB39hours ago hf.co/mradermacher/Qwen3.8-9B-heretic-uncensored-i1-GGUF:Q6_K2098cd0b52c27.4GB40hours ago hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M c5546614c8e09.0GB40hours ago hf.co/mradermacher/Qwen3-14B-NSFW-FDA-i1-GGUF:Q4_K_M e05711fedcd39.0GB41hours ago hf.co/mradermacher/Qwen3-14B-abliterated-GGUF:Q4_K_M bebe6732b2df9.0GB6days ago smollm2:360m297281b699fc725MB6days agoD:\Ollama>


当时本地的实际状态如下 , 这也是这个问题最具迷惑性的地方 :

  • 模型已完整下载 :通过ollama pull拉取的模型权重已全部落盘,ollama list中可以看到该条目 ;
  • 模型已加载显存 :执行ollama ps可以看到模型常驻显存 , 推理服务本身处于就绪状态 ;
  • 调用仍然失败 :Codex 发起对话后 , 流式响应被服务端提前终止, 直接吐出上面的报错 ;
  • 表象误导排查 :stream disconnected before completion字面含义是流断开 , 第一反应容易被带偏到网络 , 代理或系统证书方向 ;




二、错误原因分析



这个报错的根源不是模型没装好 , 也不是显存不足 , 而是模型名字本身触发了 Ollama 的账号鉴权检查 ;


1、hf.co 命名空间存在强制鉴权


从 Ollama 0.12.x 版本开始 ,引入了云模型机制与 Hugging Face 集成, 官方文档对鉴权边界有明确说明 :通过http://localhost:11434访问本地 API 本身不需要鉴权, 但经由 ollama.com 分发与管理的模型需要登录账号 ,hf.co/前缀的模型恰好落在需要鉴权的范围内 ;


关键机制 :这条鉴权是基于模型名前缀的检查, 发生在请求处理阶段 ;

  • 前缀即触发 :服务端只要看到hf.co/开头的模型名 , 就会先走账号校验逻辑, 校验不通过直接拒绝 ;
  • 与本地状态无关 :模型 blob 是否落盘 , 是否已经加载进显存, 都不影响这条校验的执行 ;
  • 错误被二次包装 :Ollama 返回鉴权错误并中断流 , Codex 将其包装成stream disconnected before completion, 表现得像网络问题 ;

2、为什么容易误判为网络问题


Codex 与 Ollama 之间走的是流式 HTTP 长连接 , 服务端在流中途抛出错误并断开连接 , 客户端视角看到的就是流提前结束 ;

区分方法很简单 : 绕过 Codex , 直接用ollama run或curl调用同一个模型名 , 如果同样报出账号相关错误 , 即可确认问题出在 Ollama 侧的鉴权 , 而不是 Codex 或网络 ;

快速定位对照表 :

排查项命令结果判读
模型是否落盘ollama list能看到hf.co/...条目说明下载完整
模型是否加载ollama psPROCESSOR 显示 100% GPU 说明加载正常
直接推理验证ollama run 模型名 hi若报账号错误 , 即确认根因在鉴权而非网络




三、解决方案



三种方案任选其一即可 , 方案一成本最低 , 无需注册账号 , 不占额外磁盘 ;


1、方案一 : 重命名模型 ( 推荐 、 已解决问题 )


原理 :用ollama cp给本地模型打一个不带hf.co/前缀的别名, 绕过该命名空间的鉴权逻辑 ;底层 blob 文件是共享引用, 不会产生额外磁盘占用 ;

操作步骤 :

# 给本地已存在的模型创建一个不带 hf.co 前缀的新别名ollamacp"hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M"amoral-qwen3-14B-i1-GGUF

执行结果 :

D:\Ollama>ollama cp"hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M"amoral-qwen3-14B-i1-GGUF copied'hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M'to'amoral-qwen3-14B-i1-GGUF'successD:\Ollama>ollama list NAME ID SIZE MODIFIED amoral-qwen3-14B-i1-GGUF:latest c5546614c8e09.0GB9seconds ago qwen3.5:4b d8b0f5e9760c3.3GB6hours ago qwen3.8-9b-writer-codex:latest da5861532da97.6GB22hours agoQwen3.8-9B-Distill-SLERP-F451-Pro-Writer-Uncensored-i1-GGUF-Q6_K:latest17abddf6926c7.6GB27hours ago hf.co/mradermacher/Qwen3.8-9B-Distill-SLERP-F451-Pro-Writer-Uncensored-i1-GGUF:Q6_K af7aa49d80997.6GB27hours agoReadyArt-Amoral-Fallen-Omega-Gemma3-12B-GGUF-Q5_K_M:latest b39424b496b58.4GB28hours ago hf.co/mradermacher/Cthulhu-8B-v1.4-i1-GGUF:Q6_K8f3669bc92b86.6GB28hours ago hf.co/bartowski/ReadyArt_Amoral-Fallen-Omega-Gemma3-12B-GGUF:Q5_K_M1bcfcfa9bf478.4GB28hours ago hf.co/mradermacher/Qwen3-14B-MechaHitler-i1-GGUF:Q4_K_M98c3f9ad75259.0GB29hours ago qwen3.8-9b-heretic-nothink:latest fa3891096f677.4GB39hours ago qwen3.8-9b-heretic-fixed:latest c67d04400c087.4GB39hours ago hf.co/mradermacher/Qwen3.8-9B-heretic-uncensored-i1-GGUF:Q6_K2098cd0b52c27.4GB40hours ago hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M c5546614c8e09.0GB40hours ago hf.co/mradermacher/Qwen3-14B-NSFW-FDA-i1-GGUF:Q4_K_M e05711fedcd39.0GB41hours ago hf.co/mradermacher/Qwen3-14B-abliterated-GGUF:Q4_K_M bebe6732b2df9.0GB6days ago smollm2:360m297281b699fc725MB6days agoD:\Ollama>


配置方式 :同步修改 Codex 配置文件~/.codex/config.toml, 将模型指向新名字 :

[model_providers.ollama] name = "Ollama" # 自定义 provider 名称 base_url = "http://localhost:11434/v1" # 指向本地 Ollama 的 OpenAI 兼容接口 wire_api = "responses" # Ollama 新版支持 /v1/responses 接口 [profiles.ollama] model_provider = "ollama" # 使用上面定义的 provider model = "amoral-qwen3:14b" # 改成 ollama cp 之后的新名字 model_context_window = 32768 # 按显存与模型实际情况调整上下文窗口

简单单例 :配置完成后先在命令行验证 , 再进入 Codex :

ollama run amoral-qwen3:14b"你好"# 能正常回复说明别名生效ollamaps# 确认新名字对应的模型加载在显存中

2、方案二 : 登录 Ollama 账号 ( 官方路径 )


操作步骤 :执行登录命令, 按提示在浏览器中完成 ollama.com 账号注册与登录 :

ollama signin# 打开浏览器完成 ollama.com 账号登录

执行上述命令后 , 控制台打印如下内容 :

D:\Ollama>ollama signin You need to be signedinto Ollama to run Cloud models. If your browser did not open, navigate to: https://ollama.com/connect?name=DESKTOP-0EUIENB&key=c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZxT3JMY0hLUnF1ZTlManJBYUcvTi80aVpBdnlzZEZ5QktMNE5zZkQvczA D:\Ollama>

默认浏览器 弹出 , 进入下面的登录页 :

登录成功后 ,hf.co/前缀的模型即可正常调用 ;

适合后续还会持续从 Hugging Face 拉取模型的场景 , 缺点是引入了一个外部账号依赖 , 且相关策略可能随版本演进发生变化 ;


3、方案三 : 清理旧标签 ( 收尾动作 )


操作步骤 :确认新别名跑通之后 , 删除旧的hf.co/标签 , 避免后续误用再次触发鉴权问题 :

# 删除旧标签 , 删除的是标签引用 , 不影响已下载的权重 blobollamarm"hf.co/mradermacher/amoral-qwen3-14B-i1-GGUF:Q4_K_M"




四、验证步骤



全部配置完成后 , 按以下顺序做四步验证 , 全部通过后再回到 Codex :

# 第 1 步 : 确认新别名存在 ( Windows 用 findstr , Linux 用 grep )ollama list|findstr amoral# 第 2 步 : 直接对话验证推理是否正常ollama run amoral-qwen3:14b"用一句话介绍你自己"# 第 3 步 : 确认模型加载在显存中 , PROCESSOR 应显示 100% GPUollamaps# 第 4 步 : 验证 OpenAI 兼容接口返回正常curlhttp://localhost:11434/v1/chat/completions-d"{\"model\":\"amoral-qwen3:14b\",\"messages\": [{\"role\":\"user\",\"content\":\"hi\"}]}"




五、注意事项与避坑



常见踩坑点汇总 :结合社区反馈与实测经验 , 以下几点需要特别留意 ;

  • Codex 走错 provider :环境中若残留OPENAI_API_KEY或OPENAI_BASE_URL环境变量 , Codex 可能仍在请求云端, 需要清理冲突配置后再试 ;
  • wire_api 接口选择 :Ollama 新版支持/v1/responses接口 , 配置wire_api = "responses"即可 ;若请求返回 404 , 说明 Ollama 版本过旧 , 先升级 Ollama ;
  • 模型名必须精确 :Codex 配置里的 model 值要与ollama list显示的 API 标识完全一致, 不能使用展示名或简写 ;
  • 上下文窗口控制 :上下文过大会挤占显存导致掉速甚至 OOM, 可通过OLLAMA_CONTEXT_LENGTH环境变量或配置中的model_context_window控制 ;
  • 版本行为差异 :该鉴权逻辑随 Ollama 版本演进 , 升级后若行为变化 , 优先查阅官方 release notes 与鉴权文档 ;




总结



报错的本质是hf.co/名字前缀触发了 Ollama 的账号鉴权检查 ,与模型是否下载到本地 , 是否加载进显存无关 ;

Codex 端看到的stream disconnected before completion只是这个鉴权错误被流式中断二次包装后的表象 ;

使用ollama cp重命名模型是成本最低的解法 , 配合同步修改 Codex 配置即可恢复使用, 后续持续使用 Hugging Face 模型的场景也可以直接ollama signin一劳永逸 ;