【Python】Custom Image API Skill,让Codex支持第三方GPT-IMAGE-2模型调用

共计 2893 个字符,预计需要花费 8 分钟才能阅读完成。

【Python】Custom Image API Skill,让 Codex 支持第三方 GPT-IMAGE- 2 模型调用

Custom Image API Skill:CodeX 调用 skill,让只有 Chat 接口的工具间接调用图片模型,该工具由 AI 生成,在 CodeX 做过测试完整可用。其他工具需要做一定的配置,根据相关工具的 skill 扩展来针对处理。最后有下载链接
一、背景:Chat 接口和图片接口不在同一条调用链上


很多 AI 工具的模型调用链默认面向对话模型,通常只会调用兼容 OpenAI 风格的:

POST /chat/completions

例如:中转平台提供了当前顶流图片生成模型,gpt-image-2 模型。但 CodeX 等工具无法直接使用。因为 gpt-image-2 往往提供的是另一组 OpenAI 兼容接口:

POST /images/generations
POST /images/edits

这就导致:即使底层 provider 支持图片模型,上层工具也可能没有原生的图片请求入口,不能直接把一次对话调用转换为图片生成调用,更不能稳定地处理图片 URL、Base64 或图片二进制响应。
custom-image-api 的核心作用,就是在这两套协议之间提供一个轻量的桥接层:

 上层工具的自然语言请求
        -> 工具识别到图片生成指令
        -> Skill 或本地脚本
        -> OpenAI 兼容的 /images/generations 或 /images/edits
        -> 图片 URL/Base64/ 二进制响应
        -> 本地图片文件
        -> 返回给上层工具展示或继续处理 

因此,它不是把图片模型“伪装成 Chat 模型”,而是让原本只有 Chat 调用能力的工具,通过 Skill/ 插件或本地脚本间接调用图片专用接口。
二、它解决了什么问题
图片接口接入时,除了请求路径不同,还存在一组重复工作:
根据 Codex profile 找到模型和 provider;
拼接 /images/generations 或 /images/edits 接口地址;
从环境变量或 Codex 的 auth.json 读取认证信息;
生成请求使用 JSON,图片编辑请求使用 multipart/form-data;
兼容 URL、Base64、Data URI 和直接图片响应;
把返回的图片下载、解码、识别格式并保存到本地;
避免 API Key 出现在命令输出、错误信息和共享技能目录中。
custom-image-api 集中处理了这些协议细节。它是一套可被工具调用的适配 Skill。对于 Codex,它表现为 custom-image-api Skill;对于其他工具,也可以直接复用其中的 Python 脚本和配置约定。
从能力边界看,它把“上层只支持 Chat”与“底层支持图片接口”解耦了:

 上层工具:负责理解用户意图、触发 Skill、展示结果
                         |
                         v
桥接层:负责配置、认证、请求编码、响应解析、文件保存
                         |
                         v
图片 provider:负责真正的 image2 或其他图片模型推理 

这里的 image2 可以理解为图片模型的具体名称,例如某个 provider 上配置的 gpt-image-2;真正决定能否使用的,是 provider 是否暴露兼容的图片接口。

custom-image-api/
├── SKILL.md                    # Skill 的行为说明和调用约定
├── agents/
│   └── openai.yaml             # 在 Codex 中显示的名称、描述和默认提示词
├── references/
│   └── setup.md                # 可移植安装和配置说明
└── scripts/
    ├── generate_image.py       # 实际执行生成、编辑、下载和保存
    └── self_test.py             # 不访问网络的协议和兼容性测试 

其中最重要的是 generate_image.py。它使用 Python 标准库完成 HTTP 请求、TOML 配置读取、multipart 编码、Base64 解码和图片文件保存,因此没有额外的第三方 Python 依赖。
四、运行前提
需要满足以下条件:
已安装并启用支持个人 Skill 的 Codex。
Python 3.11 或更高版本。脚本使用标准库 tomllib 读取 config.toml。
一个支持以下接口的 OpenAI 兼容图片服务:
POST /images/generations
POST /images/edits

图片服务返回 URL、Base64、Data URI,或直接返回 image/* 响应。
五、CodeX 安装 Skill
将完整的 custom-image-api 目录复制到个人 Skill 目录:
Windows:

%USERPROFILE%\\.codex\\skills\\custom-image-api\\

macOS/Linux:

~/.codex/skills/custom-image-api/

复制完成后,重新启动一个 Codex task,使 Skill 元数据重新加载。不要把 API Key、auth.json、个人 config.toml、生成图片或机器相关的绝对路径复制到 Skill 目录中。
六、配置 Codex
在 Codex 的 config.toml 中配置一个图片 provider 和 custom-image profile。示例:

[model_providers.team-image]
name = "team-image"
base_url = "https://image-api.example.com/v1"
env_key = "TEAM_IMAGE_API_KEY"

[profiles.custom-image]
model_provider = "team-image"
model = "gpt-image-2"

然后在本机设置 TEAM_IMAGE_API_KEY 环境变量。密钥不应写入 Skill、提示词或团队共享配置。
如果 provider 使用 Codex 已有的 OpenAI 认证,也可以配置:

[model_providers.openai-image]
name = "openai-image"
base_url = "https://api.openai.com/v1"
requires_openai_auth = true

[profiles.custom-image]
model_provider = "openai-image"
model = "gpt-image-2"

此时脚本会从 Codex 的 auth.json 读取已经保存的 OPENAI_API_KEY。脚本还兼容 experimental_bearer_token,但不建议在共享模板中使用,因为它会把凭据直接放进 config.toml。
Endpoint 地址如何解析
脚本会根据 base_url 自动得到最终接口:
base_url
生成接口
编辑接口

https://hosthttps://host/v1/images/generationshttps://host/v1/images/edits
https://host/v1https://host/v1/images/generationshttps://host/v1/images/edits
已包含 /images/generations 或 /images/edits 按资源替换按资源替换
因此 provider 的 URL 可以配置在 host 根路径,也可以配置在 /v1 路径。
七、安装验证
先运行离线自测:

正文完
 0
suyan
版权声明:本站原创文章,由 suyan 于2026-08-16发表,共计2893字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件QQ邮箱:suyanw520@163.com 与我们联系处理。敬请谅解!
评论(没有评论)
验证码