AI 中转站的 Codex 生不出图?一篇教程搞定
摘要:本文针对使用 AI 中转站接入 Codex 模型时生图失败的常见问题,提供了两种解决方案:推荐使用 Teamo 客户端一键接入,或手动配置config.toml文件。文章深入剖析了失败的根本原因——Codex 生图依赖 Responses API 的image_generation工具和 SSE 流式图像分片聚合,而多数中转站未完整实现此链路。最后,提供了三点关键排查步骤,帮助用户快速定位并解决问题。
在 AI 中转站里用 Codex 模型生图,结果要么甩你一个 502,要么绕一圈只回一段"我建议你这样设计……"的文字,图就是出不来?
先别急着怀疑自己的配置——这大概率不怪你,是中转站没把 Codex 模型的"生图"链路接通。这篇教程先带你把图跑通,再讲清楚为什么大多数中转站会失败。
先把图跑通(跟着做就行)
客户端一键接入(推荐)
不想碰命令行和配置文件,就用这个,最省事:
点击下载Teamo 客户端
登录后,在客户端里找到 Codex,点「下载 & 安装」即可(你也可以自行从 OpenAI 官网安装 Codex);
点「一键接入」,客户端会自动把 Codex 与 Teamo 连接并配置好,Codex 模型直接可用
配置完成后,让 Codex 生成一张图试试,比如"画一个扁平风格的天气 App 图标,蓝色调"——几秒钟,图就该出来了。
整个过程不用手写一行配置,wire_api、生图开关这些最容易踩坑的地方,客户端都替你设好了。
进阶:手动改 config.toml
习惯命令行、想自己掌控配置的,也可以手动接。
第一步,配置 API Key(环境变量):
export TEAMOROUTER_API_KEY="你的-teamorouter-key"第二步,编辑~/.codex/config.toml:
model = "gpt-5-codex" # 具体 codex 模型名以后台为准 model_provider = "teamorouter" [model_providers.teamorouter] name = "TeamoRouter" base_url = "https://api.teamorouter.com/v1" # 具体地址以官网/后台为准 env_key = "TEAMOROUTER_API_KEY" wire_api = "responses" # 关键:生图必须走 responses,不能是 chat [features] image_generation = true # 打开内置生图两个最容易踩的坑:wire_api一定要是responses(走chat就没有image_generation工具),[features].image_generation记得设成true。配好后,同样让 Codex 生成一张图验证即可。
图出来了?顺带搞懂为什么别处不行
如果你之前在别的中转站反复失败,多半是踩了下面的坑。用中转站里 codex 模型的人应该都熟悉这种体验——写代码、聊天、改 bug 全都丝滑,唯独一让它生图就出事,常见三种翻车姿势:
直接报 502,请求根本没落地;
请求通了,但模型退化成纯文本,图变成一段"文字描述";
最玄学的一种:日志里看着像在生成,
partial_image也在动,可最后聚合出来是空的。
表现各不相同,根子却是同一个:codex 模型的生图,走的不是标准的/v1/images/generations接口。
它走的是 Responses API 里内置的image_generation工具,底层调用 gpt-image 系列模型(如 gpt-image-2),图像数据以 SSE 流式返回的partial_image_b64一块块吐出来,最后要把这些分片正确聚合,才能拼出完整的图。这条链路对中转站的要求比纯文本高得多,至少要同时做到三件事:
完整实现
/responses接口,而不只是最常见的/v1/chat/completions;忠实透传
image_generation工具调用,不偷换模型、不降级;正确聚合 SSE 流里的图像分片,不把
partial_image_b64弄丢。
绝大多数中转站就栽在这三步上:有的只代理了文本接口,/responses根本没实现;有的为省成本偷偷把 codex 换成便宜替代品,工具调用直接失效;还有的接口实现了、但流式聚合写得潦草,图在上游生成好了却在中转站这层被丢掉。Teamo 能开箱即用,原因也就在这一点上——它把这条链路完整、忠实地代理了下来,不缩水、不偷换模型,所以 codex 生图不用你自己写脚本去拼分片。
还是生不出来?排查这三点
万一图还是没出来,别急着换服务,按顺序自查一遍,八成能定位:
wire_api是不是responses。最高频的坑。很多人从旧配置复制过来,wire_api还停在chat,那条链路上根本没有image_generation工具,codex 自然生不了图。(用客户端一键接入的可以跳过这条。)Key 有没有生图权限。有些中转站的 Key 默认只开文本模型,图像要单独申请或在后台勾选。用 Teamo 默认就是通的,手里是别家老 Key 的,值得确认一下。
codex 是不是被偷换了。前两步都对、文本也正常、唯独生图静默失败,基本可以怀疑上游把 codex 换成了不支持工具调用的便宜替代品——这也是"模型是不是真货"为什么重要:它不只关系到生图,也关系到你每次调用拿到的到底是不是真模型。
最后
被中转站的 codex"生不了图"折腾过,大概率不是你的锅,是中转站没把活干完。跟着上面的步骤把图跑通就行,省心。