为什么你的 Codex 只有 GPT 模型?DeepSeek 用户看过来
事情是这样的。
你按照教程,在 config.toml 里配置了 model_provider = “deepseek”,填好了 base_url,设置了 API Key。代理跑起来了,codex doctor 检查一切正常——reachable、authenticated、全部绿灯。
然后你打开 Codex 桌面端,点开模型切换器,你期待看到 “DeepSeek V4 Pro”。
但你看到的只有:GPT-5.1、GPT-5、GPT-5-codex……
你翻了三遍下拉框,没有,就是没有。
这不是你的配置有问题。这是 Codex Desktop 的 UI 层没做自定义 provider 的模型渲染。
Codex 的 Electron 桌面端,模型切换器的数据源分两部分:一是内置的 OpenAI 模型列表(硬编码在程序里),二是
cc-switch-model-catalog.json 这个外部模型目录文件。你自定义的 provider 模型的确 会被注册到这个目录里,文件里也看得到——但 UI 不会渲染它们。
这是 Codex 目前版本的已知限制,社区讨论了许多次,等官方更新不知道要多久。
解决方案:透明路由
思路是这样的:不在 UI 层面纠结,而是在代理层面做模型映射。
你在界面选 “GPT-5.1″,代理收到请求后,把 “gpt-5.1” 替换成 “deepseek-v4-pro”,再发给 DeepSeek 的 API。DeepSeek 返回的结果,代理原封不动还给 Codex。
你在界面选 “Claude Sonnet 4.6″,代理同样转成 “deepseek-v4-pro”。选什么都一样。界面上的模型名称变成了纯粹的装饰品,背后真正干活的是 DeepSeek V4 Pro。
这个方案的好处是:
- 保留原版 Codex Desktop 的全部功能和体验
- 不需要等官方更新
- 切换模型零成本,代理帮你统一调度
- API 花费降低 95% 以上
评论区发”模型“,我把路由配置脚本发你。三分钟部署,重启代理即可。
技术小记:模型路由规则会保留 deepseek 前缀的模型名,只对非 deepseek 模型做强制映射。如果你用的是其他国产供应商,改一行代码就能适配。