Codex
Codex 接入 菜ai 教程
Codex 是一款强大的编码 Agent 工具,支持在终端 (CLI) 或 VS Code 中读取、修改并运行项目代码。
本文将引导你通过自定义 Provider 和兼容 OpenAI Responses 的方式,将 Codex 的底层模型无缝切换为 菜ai。
一、接入前准备(核心 3 要素)
在开始配置前,请先明确以下 3 个核心参数,后续配置将高频使用:
| 配置项 | 推荐填写内容 | 注意事项 |
|---|---|---|
| API Key | sk-xxxxxxxxxxxxxxxx | 请直接填写纯文本密钥 |
| Base URL | https://cloud.ai.liandxu.cn/v1 | 包含 /v1。 |
| 模型名称 | 例如 gpt-5 或 claude-sonnet-4-6 | 填写 菜ai 实际支持且你账号有权限调用的模型。 |
二、快速接入指南
第 1 步:安装 Codex CLI
请确保你的电脑已安装 Node.js。
- 如果环境没有Node.js,点击跳转下载
打开终端,运行以下命令进行全局安装:
npm install -g @openai/codex
第 2 步:创建配置文件 (config.toml)
Codex 官方推荐通过 config.toml 文件来定义自定义 Provider。
-
找到或创建配置目录:
-
Windows: C:\Users\你的用户名.codex
-
macOS / Linux: ~/.codex
-
-
在该目录下新建一个名为 config.toml 的文件。
-
将以下内容完整粘贴进去,并保存:
# 基础配置
model_provider = "dataeyes"
model = "请替换为 菜ai 实际支持的模型名"
preferred_auth_method = "apikey"
disable_response_storage = true
# 菜ai 自定义 Provider 配置
[model_providers.dataeyes]
name = "菜ai"
base_url = "https://cloud.ai.liandxu.cn/v1"
env_key = "CAIAI_API_KEY"
wire_api = "responses"
参数释义: 这套配置直接指定了接口大门 (base_url),并告诉 Codex 去系统的 CAIAI_API_KEY 环境变量里拿密码。
第 3 步:配置 API Key 环境变量
为了安全,请不要把 API Key 直接写在配置文件中。请根据你的操作系统,在终端中运行以下命令注入环境变量:
Windows PowerShell(当前窗口临时生效):
$env:CAIAI_API_KEY="sk-你的菜ai密钥"
Windows PowerShell(永久写入用户变量,需重启终端):
[System.Environment]::SetEnvironmentVariable("CAIAI_API_KEY", "sk-你的菜ai密钥", "User")
macOS / Linux:
export CAIAI_API_KEY="sk-你的菜ai密钥"
第 4 步:启动并测试
配置完成后,使用终端进入你的任意项目代码目录,运行:
codex
启动后,尝试输入一个简单的只读分析指令,例如:请总结一下当前仓库的主要模块结构。如果 Codex 能够正常响应并输出结果,恭喜你,菜ai 接入彻底成功!
三、在 VS Code 中使用扩展
Codex 的 CLI 终端版本与 IDE 扩展共享同一套底层配置。
只要你完成了上述的 config.toml 和环境变量配置,你可以直接在 VS Code 的扩展商店中搜索并安装 Codex 插件,开箱即用,无需在 VS Code 里进行额外的繁琐配置。
四、常见问题排查 (FAQ)
Q1:启动后提示认证失败 (Authentication Failed)?
-
检查你的终端环境变量
CAIAI_API_KEY是否真的设置成功。如果你使用的是 Windows 的永久写入命令,必须完全关闭并重新打开终端才能生效。 -
检查你填写的 Key 是否不小心加上了
Bearer前缀。
Q2:启动后提示模型不存在 (Model not found)?
config.toml文件中的model字段不能随便填。请严格对照 菜ai 控制台提供的可用模型列表,填写一字不差的完整名称。
Q3:连接通了,但体验不稳定、时不时报错?
- Codex 的 Provider 强依赖
responses接口形式。如果在高并发或特殊网络环境下出现不稳定,请确保config.toml中的wire_api = "responses"没有拼写错误,并检查当前所选模型是否完全兼容 OpenAI 的 Responses 规范。