Codex 接入本地模型:Ollama 配置教程

浏览:1次阅读
没有评论

Codex 接入本地模型 最省事的方法是:装好 Ollama 后直接运行 ollama launch codex;想手动控制就用 codex --oss,并在 ~/.codex/config.toml 里写 oss_provider = "ollama"。另外记得把 Ollama 上下文调到 64k 以上,否则 Codex 很难正常干活。

Codex 接入本地模型:Ollama 配置教程插图
图片来源:Ollama Docs:Codex CLI

本文按 OpenAI 官方 Advanced Configuration 文档和 Ollama 官方 Codex 集成文档整理,适合想离线跑代码助手、或者不想消耗 ChatGPT / API 额度的读者。Codex 本身的安装可参考 Codex CLI Windows 安装与接入 API 教程。

准备工作

  • Codex CLI:用 npm install -g @openai/codex 安装,装完运行 codex --version 确认。
  • Ollama:到 ollama.com 下载对应系统的版本,建议用最新版。默认监听 http://localhost:11434。
  • 一个支持工具调用的模型:Ollama 文档示例用的是 gpt-oss:120b。显存不够可以换小一点的模型,模型名以 ollama list 显示的为准。
Codex 接入本地模型:Ollama 配置教程插图1
图片来源:Ollama 官网

方法一:ollama launch codex 一键启动

这是 Ollama 官方推荐的快速方式:

ollama launch codex

通过它启动时,Ollama 会刷新模型目录,并给这次会话使用专门的 Codex 配置。进入 Codex 后输入 /model,可以在已安装、支持工具调用的 Ollama 模型之间切换,不用重启。想把更多模型放进列表,先 ollama pull 模型名 再启动。斜杠命令的用法见 Codex CLI 斜杠命令大全。

另外两个相关命令:

# 只写配置、不启动
ollama launch codex --config

# 删除 Ollama 生成的 launch 配置和模型目录
ollama launch codex --restore

方法二:codex --oss 手动接入

第 1 步:拉取模型

ollama pull gpt-oss:120b
ollama list

第 2 步:用 --oss 启动

# 用默认本地模型
codex --oss

# 指定模型
codex --oss -m gpt-oss:120b

# 本次指定用 Ollama(另一个可选值是 lmstudio)codex --oss --local-provider ollama

带 -cloud 后缀的模型(如 gpt-oss:120b-cloud)是 Ollama 的云端模型,不占本机显存。

第 3 步:写进 config.toml,免得每次选

官方文档说明:如果既没传 --local-provider,也没设 oss_provider,交互式 CLI 会让你选,而 codex exec 会直接报错退出。所以建议在 ~/.codex/config.toml 里加一行:

# --oss 默认使用的本地提供方
oss_provider = "ollama"   # 或 "lmstudio"
Codex 接入本地模型:Ollama 配置教程插图2
图片来源:OpenAI:Codex Advanced Configuration

方法三:用 profile 长期保存本地模型配置

不想影响平时用的 OpenAI 模型,可以单独建一个 profile。官方规则是:传 --profile 名字 时,Codex 先读 ~/.codex/config.toml,再叠加 ~/.codex/ 名字.config.toml;profile 文件里直接写顶层键,不要再套 [profiles.xxx]。

新建 ~/.codex/ollama-launch.config.toml(Ollama 文档示例):

model = "gpt-oss:120b"
model_provider = "ollama-launch"

[model_providers.ollama-launch]
name = "Ollama"
base_url = "http://localhost:11434/v1/"
wire_api = "responses"

然后运行:

codex --profile ollama-launch

注意:openai、ollama、lmstudio 等是 Codex 内置提供方的保留 ID,自定义提供方要换个名字。

连接局域网里另一台机器的 Ollama

把 base_url 改成那台机器的地址,例如 http://192.168.1.20:11434/v1。那台机器上的 Ollama 默认只监听本机,需要设置环境变量 OLLAMA_HOST=0.0.0.0:11434 后重启。Linux 用 systemd 安装的,按官方 FAQ 执行 systemctl edit ollama.service,在 [Service] 下加 Environment="OLLAMA_HOST=0.0.0.0:11434",再 systemctl daemon-reload 和 systemctl restart ollama。

关键一步:把上下文调到 64k

Ollama 官方 Codex 页面要求上下文至少 64k tokens,而 Ollama FAQ 写明默认上下文只有 4096。不改的话,Codex 的系统提示和工具说明会被截断,表现为答非所问、不调用工具。启动服务时这样设置:

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

Windows 在“编辑账户的环境变量”里新建 OLLAMA_CONTEXT_LENGTH,退出并重新打开 Ollama 生效。之后用 ollama ps 看 PROCESSOR 列:100% GPU 最快,出现 CPU/GPU 混合说明显存不够,速度会明显下降。

常见报错与解决

codex exec --oss 直接报错退出

没有指定本地提供方。加 --local-provider ollama,或在 config.toml 写 oss_provider = "ollama"。

连接失败,提示连不上 localhost:11434

Ollama 没在运行。先执行 ollama serve 或打开 Ollama 应用,再用 ollama list 确认服务正常。远程机器还要检查 OLLAMA_HOST 和防火墙端口。

模型答非所问、不会改文件

多半是上下文太小,按上一节调到 64k;其次是模型本身不支持工具调用,换一个支持的模型。

/model 列表里看不到刚下载的模型

列表只显示已安装、支持工具调用的模型。确认 ollama pull 完成后,重新运行 ollama launch codex。

写在项目里的 model_provider 不生效

Codex 不读取项目级 .codex/config.toml 里的 model_provider 和 model_providers,要写在用户目录的 ~/.codex/config.toml 或 profile 文件里。更多排查思路见 Codex 配置不生效的 7 个常见原因。

FAQ

问:本地模型能完全替代 GPT 官方模型吗?
答:取决于模型大小和显卡。小模型适合简单改动和离线场景,复杂任务效果会差一些。

问:LM Studio 也能用吗?
答:可以。官方 OSS 模式支持 Ollama 和 LM Studio,把 oss_provider 或 --local-provider 设成 lmstudio 即可。

问:本地模式下还能联网搜索吗?
答:Ollama 文档说明,经 Ollama profile 发出的搜索请求由 Ollama 执行,需要先 ollama signin;不想用可加 -c 'web_search="disabled"'。

信息来源

正文完
 0