前言
Codex CLI / Desktop 是 OpenAI 推出的编程助手,能力很强,但有个问题——它只支持 OpenAI 自家的模型。Codex 底层走的是 OpenAI 的 Responses API,而市面上大多数第三方 API 只支持 Chat Completions API,两者协议不兼容,导致无法直接接入。
那有没有办法绕过这个限制?有!
本文将详细介绍如何通过一个本地代理,把 Codex 的 Responses API 请求"翻译"成 NVIDIA 支持的 Chat Completions API,从而在 Codex Desktop 上使用 DeepSeek-V4 Pro / Flash、Llama、Nemotron 等 NVIDIA 平台上的模型。
原理概述
NVIDIA API 只支持 Chat Completions API(/v1/chat/completions),而 Codex 只支持 Responses API(/v1/responses)。两者协议完全不同——消息格式、流式事件、工具调用规范都不一样。
解决方案是跑一个本地代理服务器,做格式转换:
Codex Desktop → 本地代理 (http://127.0.0.1:5000) → NVIDIA API
Responses API → 格式转换 → Chat Completions API
前置准备
- Windows / macOS / Linux 均可
- Python 3.9+
- NVIDIA 开发者账号 —— 前往 build.nvidia.com 注册
- 已安装 Codex Desktop
第一步:获取 NVIDIA API Key
- 打开 build.nvidia.com,登录或注册
- 点击右上角头像 → API Keys
- 点击 Generate API Key,设置有效时间(建议选 Never Expire 永不过期)
- 复制生成的 Key,格式类似
nvapi-xxxxxxxxxxxx
第二步:下载代理脚本
新建一个文件夹,把以下代码保存为 codex_nvidia_proxy.py:
第三步:安装依赖
pip install flask requests waitress openai
第四步:启动代理
# 设置 API Key
export NVIDIA_API_KEY=nvapi-你的key
# 启动代理
python codex_nvidia_proxy.py
看到以下输出说明启动成功:
codex_nvidia_proxy starting ...
Endpoint: http://127.0.0.1:5000
Model: deepseek-ai/deepseek-v4-pro
Routes: /v1/responses, /v1/chat/completions
Windows 用户注意: 使用 set 而不是 export:
set NVIDIA_API_KEY=nvapi-你的key
python codex_nvidia_proxy.py
第五步:配置 Codex Desktop
编辑 Codex 配置文件,位置:
- Windows:
C:\Users\你的用户名.codex\config.toml - macOS / Linux:
~/.codex/config.toml
添加以下内容:
model = "deepseek-ai/deepseek-v4-pro"
model_provider = "api"
[model_providers.api]
name = "NVIDIA Proxy"
base_url = "http://127.0.0.1:5000/v1"
wire_api = "responses"
requires_openai_auth = false
重启 Codex Desktop,即可在模型选择器中看到 deepseek-ai/deepseek-v4-pro。
验证是否生效
在终端中测试代理连通性:
curl -X POST http://127.0.0.1:5000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-ai/deepseek-v4-pro","messages":[{"role":"user","content":"hi"}],"stream":true}'
如果看到 SSE 流式返回 response.created → response.in_progress → response.completed,说明配置成功。
换模型
NVIDIA 平台上有大量免费模型可供选择,常见的包括:
| 模型 ID | 特点 |
|---|---|
deepseek-ai/deepseek-v4-pro | DeepSeek V4 Pro,推理能力强 |
deepseek-ai/deepseek-v4-flash | V4 Flash,响应更快 |
meta/llama-4-maverick-17b-128e-instruct | Llama 4 最新版 |
nvidia/llama-3.1-nemotron-70b-instruct | NVIDIA 自有模型 |
mistralai/mistral-small-4-119b-2603 | Mistral Small 4 |
切换模型只需设置环境变量:
export NVIDIA_MODEL=meta/llama-4-maverick-17b-128e-instruct
或修改 .nvidia_env 文件中的 NVIDIA_MODEL 值。
注意事项
⚠️ 速度问题
经过实际测试,通过代理转发后,响应速度会比直接使用 OpenAI 模型慢。主要原因:
- 多了一层格式转换
- NVIDIA 自身延迟
优化建议: 可以将代理改为非流式模式(stream=False),让 NVIDIA 一次性返回完整结果再转发给 Codex,整体等待时间反而更短。
⚠️ 网络环境
某些地区或公司网络可能无法直接访问 integrate.api.nvidia.com,如果遇到连接超时,可以配置代理:
export HTTPS_PROXY=http://127.0.0.1:7890
⚠️ API Key 安全
- 不要将 API Key 发到聊天、GitHub 等公网环境
- 如果怀疑 Key 泄露,请立即去 build.nvidia.com → API Keys 中 revoke 重生成
- 建议写入
.nvidia_env文件,不要硬编码在脚本中
总结
通过本文的思路,我们成功让 Codex Desktop 用上了 NVIDIA API 托管的 AI 模型,这得益于一个简单的本地代理将 Responses API 翻译为 Chat Completions API。
这套方案的实际价值在于:
- 突破模型限制:不再被 OpenAI 绑定,可以自由选择 NVIDIA 上的上百种模型
- 零成本入门:NVIDIA 提供免费额度,足以用于日常轻量使用
- 扩展性强:同样的思路也适用于其他只支持 Chat API 的提供商(如 DeepSeek、OpenRouter 等)
如果你在配置过程中遇到问题,欢迎留言交流~