codexAPP的key注入使用的方法步骤
来源:互联网
时间:2026-06-09 07:17:09
本文档是为了解决一个很具体的场景:你在 ApexAPI 网页端配置好了 Codex CLI,想让本机的 Codex App 或 Codex CLI 也用上相同的设置,省得每次手动重复输入。
说白了,就是要让本机环境「跟网页端对齐」。核心操作是修改两个配置文件:`config.toml` 和 `auth.json`。
---
### 配置截图
先看一眼网页端的界面,方便你对照下文的理解。下图中展示的就是 ApexAPI 网页端的 Codex CLI 配置页。

---
### 文件路径
不同系统的路径略有不同,但这部分不难,找到 `~/.codex/` 目录即可。
**macOS / Linux 用户:**
```
~/.codex/config.toml
~/.codex/auth.json
```
**Windows 用户:**
```
%USERPROFILE%.codexconfig.toml
%USERPROFILE%.codexauth.json
```
注意,`%USERPROFILE%` 是系统变量,会自动指向当前用户的目录。比如我的电脑用户名是 `hh`,那么实际路径就是:
```
C:Usershh.codexconfig.toml
C:Usershh.codexauth.json
```
可别照抄 `C:Usershh`,一定要记得把 `hh` 换成你自己的 Windows 用户名。如果你用户名叫 `zhangsan`,就该是:
```
C:Userszhangsan.codexconfig.toml
C:Userszhangsan.codexauth.json
```
---
### 第一步:修改 config.toml
先打开 `config.toml`,把下面这段配置放到文件的最开头。这能确保与 ApexAPI 网页端保持一致。
```
model_provider = "OpenAI"
model = "gpt-5.4"
review_model = "gpt-5.4"
model_reasoning_effort = "xhigh"
disable_response_storage = true
network_access = "enabled"
windows_wsl_setup_acknowledged = true
model_context_window = 1000000
model_auto_compact_token_limit = 900000
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://apexapi.roixw.com"
wire_api = "responses"
requires_openai_auth = true
```
**这里有个容易踩的坑,必须强调一下:**
`model_provider` 的取值,必须跟下面 `[model_providers.xxx]` 里的名称完全一致。也就是:
```
model_provider = "OpenAI"
[model_providers.OpenAI]
name = "OpenAI"
```
千万别写成 `model_provider = "OpenAI"` 但 `[model_providers.apexapi]` 这种情况,也不要写成 `model_provider = "apexapi"` 但 `[model_providers.OpenAI]`。一旦名称对不上,Codex App 就找不到正确的 provider,表现出的问题就是模型、接口或 Key 都不对,让人头大。
---
### 第二步:修改 auth.json
接下来修改 `auth.json`,写入以下格式的内容:
```json
{
"OPENAI_API_KEY": "sk-替换成你的ApexAPI-Key"
}
```
这里有几个细节要注意:
- **`OPENAI_API_KEY` 这个字段名不能改。**
- Key 只需要填写 ApexAPI 后台生成的 `sk-...`,**不要加 `Bearer ` 前缀**。
- JSON 格式要严格:只用英文双引号,最后一项后面不要加逗号。
- 这个 Key 相当于你的通行证,**千万别发给别人,也别提交到 Git 仓库里。**
---
### 为什么 ApexAPI 也使用 OPENAI_API_KEY
你可能已经注意到了,实际请求地址明明是 ApexAPI 的:
```
base_url = "https://apexapi.域名.com"
```
为什么认证字段还叫 `OPENAI_API_KEY`?原因在于配置里有一行:
```
requires_openai_auth = true
```
这句话告诉 Codex:请按 OpenAI 兼容的方式来读取认证信息。所以它会从 `auth.json` 的 `OPENAI_API_KEY` 字段里取 Key,再拿去请求 ApexAPI 的兼容接口。
这其实是个固定的套路,不用纠结为什么不是 `APEXAPI_KEY` 或 `API_KEY`,认准 `OPENAI_API_KEY` 就对了。
---
### App 注入时的检查顺序
配置完成后,建议按以下顺序走一遍,确保万无一失:
1. 确认 `config.toml` 开头存在 ApexAPI 网页端给出的那一段配置。
2. 确认 `model_provider` 与 `[model_providers.OpenAI]` 的名称完全一致。
3. 确认 `base_url` 是 `https://apexapi.roixw.com`。
4. 确认 `wire_api` 是 `responses`。
5. 确认 `auth.json` 中只有正确的 `OPENAI_API_KEY`。
6. **重启 Codex App**,让 App 重新读取配置文件。
---
### 常见问题
#### 1. 为什么提示 Key 对不上
这个问题常见于以下几种情况:
- `auth.json` 里的 Key 不是 ApexAPI 后台生成的 Key。
- Key 前面多了 `Bearer ` 前缀。
- `auth.json` 格式不合法,比如用了中文引号,或者多了一个尾逗号。
- `config.toml` 里的 `model_provider` 与 `[model_providers.xxx]` 名称不一致。
- 本机存在多个 Codex 配置目录,App 读取的不是你刚修改的那个。
- ApexAPI 网页端配置已更新,但本机还是旧配置。
- ApexAPI 后台的 Key 本身已失效、余额不足、权限不足,或者对应模型未开通。
#### 2. 为什么偏偏用 OpenAI 这个名字
因为 ApexAPI 提供的是 OpenAI 兼容接口。网页端的示例就用的 `model_provider = "OpenAI"` 和 `[model_providers.OpenAI]`。为了让本机配置和网页端完全对齐,直接沿用这个名字是最省事的方案,不容易产生差异。
#### 3. 能不能把 provider 名改成 apexapi
技术上可行,但必须全局一致。举个例子:
```
model_provider = "apexapi"
[model_providers.apexapi]
name = "apexapi"
base_url = "https://apexapi.roixw.com"
wire_api = "responses"
requires_openai_auth = true
```
不过既然目标是“和网页端保持一致”,我的建议是别折腾,直接用网页端给的那个 `OpenAI` 最稳妥。
#### 4. 503 Service Una vailable 是不是 Key 错了?
不一定。
`503 Service Una vailable` 通常是 ApexAPI 服务端、上游模型接口或中转服务暂时不可用。而 Key 错误一般会得到 `401 Unauthorized`、`403 Forbidden` 等具体的认证失败提示。
如果配置都确认无误,仍然出现 `503`,可以等几分钟再试,或者把报错里的 `request id`、`cf-ray` 发给 ApexAPI 服务方排查。
---
### 最终推荐配置
**`config.toml` 推荐保持:**
```
model_provider = "OpenAI"
model = "gpt-5.4"
review_model = "gpt-5.4"
model_reasoning_effort = "xhigh"
disable_response_storage = true
network_access = "enabled"
windows_wsl_setup_acknowledged = true
model_context_window = 1000000
model_auto_compact_token_limit = 900000
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://apexapi.roixw.com"
wire_api = "responses"
requires_openai_auth = true
```
**`auth.json` 推荐保持:**
```json
{
"OPENAI_API_KEY": "sk-替换成你的ApexAPI-Key"
}
```
改完文件后,**重启 Codex App**,再发起一次请求验证,一般就能正常工作了。