chatgpt 提供商调用的是 ChatGPT 订阅(Plus、Pro、Business 或 Enterprise)所附带的 Codex 后端。用量计入订阅的配额,而不是 OpenAI Platform API 密钥。
可搭配 Codex 指南 实现
Codex -> GoModel -> ChatGPT subscription。
配置
凭据是您登录 Codex 后获得的访问令牌:config.yaml 中:
~/.codex/auth.json 尚不存在,请先运行 codex login。GoModel
会从令牌本身推导出 ChatGPT 账号 ID,因此无需其他配置。
模型
Codex 后端没有模型列表端点,因此 GoModel 内置了 ChatGPT 订阅可调用的模型清单:The '<model>' model is not supported when using Codex with a ChatGPT account。
gpt-5.4 和 gpt-5.4-mini 将于 2026 年 8 月 31 日退出通过 ChatGPT 认证的 Codex;请改用 gpt-5.6-terra 和 gpt-5.6-luna。对于使用 OpenAI API 密钥认证的 Codex 会话,这两个模型仍可通过 openai
提供商使用。
仅支持 Responses API
Codex 后端只提供/responses,因此对于 chatgpt 模型,
/v1/chat/completions 和 /v1/embeddings 会返回 501。
请使用 /v1/responses,这本来也是 Codex 发送的请求。
后端还会按严格的参数允许列表进行校验。GoModel
会适配请求而不是让请求失败,因此调用方可以继续使用标准的 Responses API:
由于后端只支持流式传输,非流式的
POST /v1/responses 会通过向上游发起流式请求、再返回最终响应对象的方式提供服务。客户端看到的是普通的非流式响应。关于网关的 Responses 接口在不同提供商上的行为,参见
Responses 兼容性。
提示词缓存
当每一轮都携带相同的session-id 请求头时,后端会让同一段对话保持在预热的前缀缓存上;仅有 prompt_cache_key 不会产生缓存命中。GoModel 会将检测到的 会话 作为
session-id 发送,在未检测到会话时则发送客户端的 prompt_cache_key,并且像 Codex CLI 一样,也会在请求体中转发该键。当客户端未发送键时,如果会话 ID 符合 64 个字符的键长度限制,则会用它来代替。
如果客户端没有发送键,GoModel 也未检测到会话,后端就不会收到任何一种信号。请发送 prompt_cache_key 以保持缓存命中;X-Session-Id 等会话请求头同样有效,除非设置了 SESSION_KEEPING_ENABLED=false(这会关闭会话检测)。
如需针对真实后端检查命中率,请运行需手动启用的在线测试:
报告的成本并非实际支出
订阅用量是固定费率,但这些模型 ID 在 OpenAI Platform 上同样存在,因此模型目录会为它们附上按 Token 计费的 API 价格。chatgpt 的用量记录和控制台汇总显示的数字并不对应任何实际扣费,同样的冲突也会使 GET /v1/models 宣告
modes: ["chat", "responses"]。
这些模式只是表面上的——它们影响的是控制台中的分组,而不是路由。定价则不然:它会输入到 成本追踪、预算以及 cost
负载均衡中。
限制
订阅配额与 API 额度相互独立。配额耗尽时,网关会转发429: