feat: separate image profiles from text routing

This commit is contained in:
2026-07-10 07:05:22 +08:00
parent 2ff38c71bb
commit 0d244e596c
7 changed files with 2633 additions and 185 deletions
+32 -5
View File
@@ -142,12 +142,20 @@ bash ./scripts/install-for-current-provider.sh
在 Linux 上需要常驻运行时,推荐用 `scripts/run-profile.mjs` 作为 systemd 的 ExecStart。它会读取 profile env,生成运行时 `config.json`,并把当前 Codex provider 的 `base_url` 指向本机 gateway。
profile env 默认放在:
文本 profile env 默认放在:
```text
~/.config/codex-retry-gateway/profiles/<profile>.env
```
图片 profile env 独立放在:
```text
~/.config/codex-retry-gateway/image-profiles/<profile>.env
```
当前文本 profile 与当前图片 profile 分别由 state 中的 `profile_name``image_profile_name` 记录;切换其中任意一方不会改写另一方。首次升级时,当前文本 profile 中已有的 `CODEX_RETRY_GATEWAY_IMAGE_*` 字段会复制到同名图片 profile,旧文本文件会保留作为兼容回退,但后续 UI/TUI 保存文本 profile 不再写入图片字段。
常用字段:
- `CODEX_RETRY_GATEWAY_LISTEN_HOST`
@@ -170,12 +178,31 @@ profile env 默认放在:
- `fixed_bearer`:从环境变量或文件读取 token,并覆盖上游 `Authorization: Bearer ...`
- `auth_json`:从 Codex `auth.json` 的指定 key 读取 token,并覆盖上游 `Authorization: Bearer ...`
图片 profile 常用字段:
- `CODEX_RETRY_GATEWAY_IMAGE_BASE_URL`
- `CODEX_RETRY_GATEWAY_IMAGE_AUTH_MODE`
- `CODEX_RETRY_GATEWAY_IMAGE_AUTH_ENV`
- `CODEX_RETRY_GATEWAY_IMAGE_AUTH_FILE`
- `CODEX_RETRY_GATEWAY_IMAGE_AUTH_JSON_PATH`
- `CODEX_RETRY_GATEWAY_IMAGE_AUTH_JSON_KEY`
- 配置 `CODEX_RETRY_GATEWAY_IMAGE_BASE_URL` 后,`/images/*``/v1/images/*` 会改用该地址;root 图片路径会在上游规范化为 `/v1/images/*`,其他请求仍使用 `CODEX_RETRY_GATEWAY_UPSTREAM_BASE_URL`
- 图片认证字段与普通上游同义,使用 `CODEX_RETRY_GATEWAY_IMAGE_AUTH_*`;默认 `fixed_bearer``CODEX_RETRY_GATEWAY_IMAGE_API_KEY` 读取 key。
- 不要把 key 直接写进 profile env;优先通过 `IMAGE_AUTH_FILE` 或管理页的 `manual_bearer` 写入用户级受限 secret 文件。
示例:
```bash
node ./scripts/run-profile.mjs default
```
指定图片 profile
```bash
node ./scripts/run-profile.mjs default --image-profile images
```
如果已经由 state 记录了当前活跃 profile,也可以直接不传 profile 参数:
```bash
@@ -269,10 +296,10 @@ gateway 运行时只负责 API 与静态文件服务,不再把复杂 UI 硬写
- 请求时间戳、首字耗时、总耗时、请求体大小、路径、模型、状态码
- 相同重发请求会带相同的 `request_id`
- `usage` 中的 input / output / total / reasoning tokens
- 管理 profiles
- 新建 / 编辑 profile env
- 切换 provider `base_url`
- 切换 `passthrough` / `manual_bearer` / `fixed_bearer` / `auth_json` 认证模式
- 分别管理文本 profiles 与图片 profiles
- 各自新建 / 编辑 / 探测 / 切换 / 删除 profile env
- 文本切换 provider `base_url` 不会改写图片分流,图片切换只影响 `/images/*``/v1/images/*`
- 各自切换 `passthrough` / `manual_bearer` / `fixed_bearer` / `auth_json` 认证模式
-`reasoning_equals`
- 改 capacity error 的匹配状态码和错误文案
-`endpoints`