内容提要
本文介绍如何修复Codex或ChatGPT客户端配置第三方API时,内置imagegen Skills无法生图的问题。方法一是在config.toml中为自定义模型提供商添加http_headers和image_generation配置;方法二是直接修改内置skills脚本。此外,还分享了将生图能力扩展到oh-my-pi(OMP)的安装与使用方法。
延伸解读
配置层级与协议兼容性
修复的关键在于将http_headers和image_generation配置放在[model_providers.<provider>]层级下,而非全局顶层。同时,该方案依赖API中转站支持Responses API的图片生成协议。若配置后仍无法生图或返回空结果,说明中转站仅兼容普通文本Responses请求,需更换支持图片生成的服务商。
内置Skills的降级机制
Codex内置的imagegen Skills本质是一个SKILL.md文件,指导Agent调用生图接口。当接口不支持时,会回落到一个Python脚本。用户可直接指示Codex从本地配置文件(config.toml)读取baseurl,从auth.json读取key,从而绕过配置问题,实现生图功能。
扩展至oh-my-pi的实践
作者将Codex的imagegen Skills改造后用于oh-my-pi(OMP),通过调整参数传入方式和路径,实现了OMP的生图能力。用户可通过git clone命令安装该skills,或直接让OMP自动安装。使用时需设置OPENAI_BASE_URL和OPENAI_API_KEY环境变量,然后调用skills即可。
Q&A
Codex配置第三方API时,内置imagegen Skills无法生图,如何修复?
可以通过修改~/.codex/config.toml文件,在[model_providers.custom]下添加http_headers和image_generation配置,例如:http_headers = { "x-openai-actor-authorization" = "local-image-extension" },image_generation = true。注意配置层级,http_headers应放在具体的provider下。
Codex内置imagegen Skills的工作原理是什么?
内置imagegen Skills实际上是一个SKILL.md文件,它告诉Agent如何调用生图接口,如果不支持,则回落到skills下的一个Python脚本。
如果API中转站不支持图片生成协议,会有什么表现?
如果API中转站不支持图片生成协议,即使配置了image_generation = true,仍会返回协议不支持或图片结果为空,说明该中转站只兼容普通文本Responses请求。
如何将Codex的生图能力扩展到oh-my-pi(OMP)?
可以通过git clone https://github.com/AlliotTech/omp-imagegen.git ~/.omp/agent/skills/imagegen安装,或者直接让OMP安装该skills。使用时,设置环境变量OPENAI_BASE_URL和OPENAI_API_KEY,然后运行omp即可调用skills。
在config.toml中配置http_headers时,需要注意什么?
需要注意配置层级,http_headers应放在具体的[model_providers.<provider>]下,而不是全局顶层。
Codex配置第三方API时,需要满足什么前提才能使用生图功能?
前提是API中转站支持Responses API的图片生成协议。如果不支持,即使配置了相关参数,也无法正常生图。