Codex使用自定义 Provider 无法生图解决方法
当Codex使用自定义 Provider 时生成图片没有返回,根本原因是Codex内置的 image_generation 工具在自定义 Provider下被客户端主动禁用。
Codex 的源码中存在一个认证门控逻辑:内置图片生成工具仅对 "auth_mode": "chatgpt"(即OAuth登录)开放。当你使用自定义Provider的API Key认证时,该工具不会被注入请求,因此表现为“静默失败”——没有报错,也没有图片返回。
在Codex的配置文件中,为你当前使用的[model_providers.xxx]段手动写入以下配置,绕过上述认证门控:
[model_providers.custom]
name = "custom"
wire_api = "responses"
base_url = "https://your-api-endpoint.com/v1"
requires_openai_auth = false # 关键:设为false关闭 OpenAI 官方账号鉴权要求;或删除不写
env_key = "OPENAI_API_KEY" # 指定读取哪个环境变量
http_headers = { "x-openai-actor-authorization" = "local-relay" } # 关键:门控占位,值可任意非空
配置文件位置:
- Windows:
%USERPROFILE%\.codex\config.toml - macOS / Linux:
~/.codex/config.toml
关键配置在于 config.toml 文件中的 requires_openai_auth 和 http_headers 两项。
-
requires_openai_auth = false:让 Codex 不要走官方 OpenAI 的认证流程。只要requires_openai_auth被设为 true,Codex 就会认为这是一个需要走官方API Key鉴权流程的 Provider,从而不会为它注册本地的 image_gen工具。 -
http_headers = { "x-openai-actor-authorization" = "任意非空值" } :这是一个关键的“开关”。Codex 会检查这个请求头是否存在且非空,只有满足条件,它才会激活本地的 image_gen 工具,从而让自定义Provider也能触发图片生成工具。这个值本身并不重要,可以填 "local-relay" 或 "local-image-extension"等任意非空字符串。
设置API Key环境变量,Windows(PowerShell):
setx OPENAI_API_KEY "sk-你的ApiKey"
setx 是 Windows 自带的命令行工具,用来永久设置环境变量。它会把变量写入注册表,之后新启动的程序都能读到这个变量,但当前已经打开的窗口和程序不会立即生效。
修改后必须彻底重启 Codex,并新建一个会话进行测试。旧会话不会重新加载配置。
本文来自博客园,作者:星墨,转载请注明原文链接:https://www.cnblogs.com/yada/p/23543777

浙公网安备 33010602011771号