一份 config.toml 让本地 Codex CLI 直接调 apimodels 的 GPT-5.4 / GPT-5.5。这里给出完整配置、推理努力等级、定价、以及一条 curl 自检命令。
用 wire_api = "responses"(不是 chat),base_url = "https://api.apimodels.app/v1",model = "gpt-5.4"(或 "gpt-5.5"),推理强度用 model_reasoning_effort,环境变量里放你的 API key。
到 控制台 控制台新建一个 sk_… 字符串。
把下面这段贴到 ~/.codex/config.toml(没文件就新建)。
export 一下 key,直接 codex 起。
~/.codex/config.toml
# ~/.codex/config.toml — drop-in, paste as-is
model_provider = "apimodels"
model = "gpt-5.4" # or "gpt-5.5"
review_model = "gpt-5.5" # model used by /review
model_reasoning_effort = "medium" # low | medium | high | xhigh
disable_response_storage = true
[model_providers.apimodels]
name = "apimodels"
base_url = "https://api.apimodels.app/v1"
wire_api = "responses"
env_key = "APIMODELS_API_KEY"终端
# put your apimodels key in the env var the config points at,
# then launch codex (add this line to ~/.zshrc to make it stick):
export APIMODELS_API_KEY="sk_…your_key…"
codex| 字段 | 值 | 为什么这么填 |
|---|---|---|
| wire_api | responses | Codex 的原生模式,推荐。gpt-5-4 / 5-5 现在 chat 与 responses 都能调,但 Codex 用 responses 体验最佳(原生推理与多轮工具状态)。 |
| base_url | https://api.apimodels.app/v1 | 我们 /v1 端点统一前缀。 |
| model | gpt-5.4 / gpt-5.5 | 用 Codex 的点号命名(gpt-5.4 / gpt-5.5);横杠 gpt-5-4 / gpt-5-5 我们也认。 |
| review_model | gpt-5.5 | /review 命令用的模型。可选,不填就用上面的 model。 |
| model_reasoning_effort | low / medium / high / xhigh | Codex 把它转成请求体里的 reasoning.effort,见下表。 |
| env_key | APIMODELS_API_KEY | 随便起名,只要 export 那个变量等于你的 API key。 |
| model_provider | apimodels | 与下面 [model_providers.apimodels] 段名一致即可。 |
推理强度是请求体里的 reasoning.effort 参数(Codex 用 model_reasoning_effort 设置),不再是模型名后缀。所有等级单价相同;等级越高,reasoning tokens 越多(算进 output_tokens 一起计费)。直接调 API 时传 "reasoning": { "effort": "high" }。
| reasoning.effort | 适用 |
|---|---|
| low | 快速、单步任务、简单补全(默认) |
| medium | 多步骤重构、设计权衡 |
| high | 复杂调试、跨文件分析 |
| xhigh | 最难的题——把时间留给模型 |
输出 token 含 reasoning tokens。每次调用实算后扣到你的 apimodels 账户余额。其他模型价格见 /docs/llm。
装 Codex 之前先用 curl 确认端点和 key 都能通:
curl -s https://api.apimodels.app/v1/responses \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"input": "Reply with exactly: ok",
"reasoning": { "effort": "low" },
"max_output_tokens": 16
}'期望响应(节选):
{
"id": "resp_...",
"object": "response",
"model": "gpt-5.4",
"status": "completed",
"output": [{
"type": "message",
"role": "assistant",
"content": [{ "type": "output_text", "text": "ok" }]
}],
"usage": {
"input_tokens": 22,
"output_tokens": 5,
"total_tokens": 27
}
}看到 HTTP 200 + output[].content[0].text = "ok" 就稳了。
gpt-5-4 / gpt-5-5 现在两种都能调。Codex 用 wire_api = "responses"(它的原生模式,对推理和多轮工具调用处理得最干净),所以给 Codex 就选 responses。如果你的客户端只会发 OpenAI chat 格式,wire_api = "chat" 配 /v1/chat/completions 也能调到这两个模型。普通聊天模型(MiniMax-M2.5、Claude、Gemini 等)用 chat 即可。
| 症状 | 原因 / 修法 |
|---|---|
| HTTP 401 Invalid or missing API key | 环境变量没 export,或 key 已被禁用。重新 export APIMODELS_API_KEY=…,或去控制台新建一个。 |
| HTTP 400 Unknown model | 模型名拼错了。用 gpt-5.4 / gpt-5.5(点号,Codex 默认),横杠 gpt-5-4 / gpt-5-5 也行。 |
| 404 / 端点找不到 | base_url 写错了——必须是 https://api.apimodels.app/v1(含 /api/v1,结尾不带斜杠)。Codex 会自动接上 /responses。 |
| 回复是空或只有 reasoning,没正文 | max_output_tokens 太小,推理 token 把预算吃光了。给 high/xhigh 至少留几百 tokens。 |
| 出账多了 | output_tokens 包含 reasoning_tokens。effort=high / xhigh 推理 token 可能数倍于可见输出——按需选等级。 |