不知道叫啥名儿 發表於 2025-12-26 20:19:00

使用自定义API接入OpenAI CodeX配置教程

<h1 data-id="heading-0">🧑‍💻 写在开头</h1>
<p>点赞 + 收藏 === 学会🤣🤣🤣</p>
<blockquote>
<p>Codex 是OpenAI 推出的一系列人工智能编码工具,通过将任务委托给强大的云端和本地编码代理,帮助开发人员提升工作效率。支持原生终端、vscode插件、cursor插件等场景使用。</p>
</blockquote>
<p>官网网站&nbsp;openai.com/codex/</p>
<h2 data-id="heading-0">系统要求</h2>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202512/2149129-20251226201425085-1041224736.png" alt="wechat_2025-12-26_201337_275" loading="lazy"></p>
<h2 data-id="heading-1">步骤一:安装Codex CLI</h2>
<p>选择一种安装方式即可。</p>
<p>npm(通用)</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">npm i -g @openai/codex

# 或在有时需要的原生包名:
# npm i -g @openai/codex@native

codex --version</pre>
</div>
<p>Homebrew(macos系统推荐)</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">brew update
brew install codex
codex --version</pre>
</div>
<div>
<div>
<blockquote>
<p>如遇 codex 无法执行或 Node 版本过旧,请升级 Node(常见需要 Node 22+),或改用 Homebrew 安装。</p>
</blockquote>
<h2 data-id="heading-2">Codex配置</h2>
<blockquote>
<p>安装后,我们开始配置codex才能通过apikey方式接入我们的API。如果你是通过openai plus会员来使用codex,可跳过后续教程,codex中直接登录plus账号即可使用。</p>
</blockquote>
<h3 data-id="heading-3">1.在第三方中转平台注册并充值</h3>
<p>这里我们以一个第三方中转平台作为例子,进入网站 api.v3.cm 进行注册并充值,然后在该网站 “令牌管理”页面,复制apikey,后续我们将该apikey接入到codex中使用。</p>
<h3 data-id="heading-4">2.codex配置文件config.toml</h3>
<p>Codex 启动时会在<code>~/.codex/</code> 读取<code>config.toml</code>文件。若不存在就新建:</p>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">mkdir -p ~/.codex
nano ~/.codex/config.toml</pre>
</div>
在<code>config.toml</code>中加入如下配置,根据需求修改:<br>
<div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">model_provider = "vapi"# 设置API供应商
model = "gpt-5"      # 填写支持codex的模型即可
model_reasoning_effort = "low" # 思考级别 low medium(默认) high minimal,不需要可以#注释掉

# 供应商设置

name = "VAPI"
base_url = "https://api.v3.cm/v1"
env_key = "V_API_KEY"    # 保留这个值,不需要替换为apikey
wire_api = "chat" # 使用 /v1/chat/completions 协议
query_params = {}
request_max_retries = 4            # 失败最大重试次数
stream_max_retries = 10            # 流中断后最大重试次数

# 可选:定义一个 profile,便于命令行快速切换

model_provider = "vapi"
model = "gpt-5"
approval_policy = "on-request"      # 需要时再询问是否执行
sandbox_mode = "workspace-write"    # 允许在当前工程写文件,依旧禁网</pre>
</div>
<h3 data-id="heading-5">3.添加apikey环境变量</h3>
<p>这步很重要,我们需要将我们设置的环境变量<code>V_API_KEY</code>添加到系统配置中。</p>
<blockquote>
<p>key值就是我们从中转网站的 “令牌管理”页面复制的sk-开头的apikey。</p>
</blockquote>
<h4 data-id="heading-6">Window用户设置apikey环境变量:</h4>
</div>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 永久设置(推荐)
setx V_API_KEY "sk-xxxxxx"

# 临时设置,切换窗口后失效
set V_API_KEY=sk-xxxxxx</pre>
</div>
<h4 data-id="heading-7">Mac/Linux用户设置环境变量:</h4>
<h4>方法一:永久设置(推荐)</h4>
<p>1.编辑配置文件(或直接手动打开文件)</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 如果使用 bash
nano ~/.bash_profile
# 或
nano ~/.bashrc

# 如果使用 zsh(Mac默认)
nano ~/.zshrc</pre>
</div>
<p>2.在最后新行,添加以下内容</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">export V_API_KEY="sk-xxxxxx"</pre>
</div>
<p>3.保存并生效</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># bash
source ~/.bash_profile

# zsh
source ~/.zshrc</pre>
</div>
<h4>方法二:临时设置</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">export V_API_KEY="sk-xxxxxx"</pre>
</div>
<h4 data-id="heading-8">验证是否设置成功</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># Windows (CMD)
echo %V_API_KEY%

# Windows (PowerShell)
echo $env:V_API_KEY

# Mac/Linux
echo $V_API_KEY</pre>
</div>
<p>如果显示<code>sk-xxxxxx</code>则说明设置成功!</p>
<h2 data-id="heading-9">启动命令</h2>
<h3 data-id="heading-10">Codex CLI原生命令</h3>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 直接提问
codex "你好"

# 选择提供商并提问(如果有多个提供商的话)
codex --profile vapi "你好"</pre>
</div>
<h3 data-id="heading-11">vscode中使用Codex插件</h3>
<p>如果是在vscode中使用codex插件,我们配置好后需要完全退出vscode重新启动才能生效。</p>
<h2 data-id="heading-12">Codex高级使用技巧指南</h2>
<h3 data-id="heading-13">CLI 参考</h3>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202512/2149129-20251226201737614-2112435695.png" alt="wechat_2025-12-26_201732_882" loading="lazy"></p>
<h3 data-id="heading-14">非交互/CI模式</h3>
<p>在管道中以无头方式运行 Codex。示例 GitHub Action 步骤:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">- name: Update changelog via Codex
run: |
    npm install -g @openai/codex
    export OPENAI_API_KEY="${{ secrets.OPENAI_KEY }}"
    codex exec --full-auto "update CHANGELOG for next release"</pre>
</div>
<div>
<div>
<h3 data-id="heading-15">模型上下文协议(MCP)</h3>
<p>通过在<code>~/.codex/config.toml</code>中定义一个<code>mcp_servers</code>部分,可以将 Codex CLI 配置为使用 MCP 服务器。它旨在反映 Claude 和 Cursor 等工具在其各自的 JSON 配置文件中的 mcpServers 定义方式,尽管 Codex 的格式略有不同,因为它使用的是 TOML 而不是 JSON,例如:</p>
</div>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># IMPORTANT: the top-level key is `mcp_servers` rather than `mcpServers`.

command = "npx"
args = ["-y", "mcp-server"]
env = { "API_KEY" = "value" }</pre>
</div>
<h2 data-id="heading-16">参考资料</h2>
<p>Codex官方详细配置说明文档</p>
<div>
<h3 id="tid-D8HBxE">如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。</h3>
</div>
<p><em><img src="https://img2024.cnblogs.com/blog/2149129/202501/2149129-20250122165814748-630765389.png" alt="" loading="lazy"></em></p><br><br>
来源:https://www.cnblogs.com/smileZAZ/p/19406570
頁: [1]
查看完整版本: 使用自定义API接入OpenAI CodeX配置教程