farion1231/cc-switch

[Bug] Codex + DeepSeek 配置下 AppShots 功能不可用 — model catalog 继承了 GPT 模板的视觉能力标记

Open

#3,481 opened on Jun 1, 2026

View on GitHub
 (4 comments) (3 reactions) (0 assignees)Rust (4,558 forks)batch import
good first issuequestion

Repository metrics

Stars
 (71,012 stars)
PR merge metrics
 (Avg merge 6d 7h) (69 merged PRs in 30d)

Description

Self Checks / 自检

  • I have read the FAQ section in README. / 我已阅读 README 中的常见问题。
  • I have searched for existing issues, including closed ones. / 我已搜索过已有的 Issue。

CC Switch Version / 版本号

3.16.0

Operating System / 操作系统

macOS

Related App / 涉及应用

Codex

Steps to Reproduce / 重现步骤

  1. 在 CC Switch 中为 Codex 配置一个第三方供应商,模型使用 DeepSeek(如 deepseek-chatdeepseek-reasoner),开启本地路由。
  2. 确保 CC Switch 已接管 Codex Live 配置,~/.codex/cc-switch-model-catalog.json 已生成。
  3. 在 Codex 桌面端中尝试使用 AppShots 功能(截图 / Computer Use)。
  4. 观察 AppShots 功能的行为。

Expected Behavior / 期望行为

AppShots 功能应当能正常截取屏幕并传给模型分析,或者如果 DeepSeek 不支持图片输入,Codex 应提示该模型不支持,明确禁用该功能。

Actual Behavior / 实际行为

AppShots 功能无法正常使用。发送截图请求后 API 报错或无响应,因为 DeepSeek 模型实际上不支持 image 输入模态(image input modality),但 Codex 认为它支持并尝试发送图片数据。

技术分析 / Technical Analysis

根因

CC Switch 在生成 Codex model catalog(cc-switch-model-catalog.json)时,通过 codex_catalog_model_entry() 函数从模板克隆模型条目。该模板来自以下来源之一:

  1. Codex 自身的 models_cache.json(GPT 系列模型条目)
  2. 内置的 Codex CLI 模板
  3. 静态回退模板 gpt5_5_template.json

模板(特别是 gpt5_5_template.json)包含以下视觉相关字段:

"supports_image_detail_original": true,
"input_modalities": ["text", "image"]

src-tauri/src/codex_config.rscodex_catalog_model_entry() 函数中,生成新条目时仅覆盖以下字段:

  • slug
  • display_name
  • description
  • context_window / max_context_window
  • priority
  • additional_speed_tiers
  • service_tiers
  • availability_nux
  • upgrade

模板中的 supports_image_detail_originalinput_modalities 等视觉能力标记 不会被清除或调整,因此 DeepSeek(及其他不支持图片输入的模型)生成出的 catalog 条目会错误地声明支持图片输入。

影响范围

此问题影响所有通过 CC Switch 接入 Codex 且不支持图片/视觉输入的第三方模型(不仅限于 DeepSeek)。Codex 的 AppShots 功能依赖模型支持图片输入,当 catalog 声明支持但实际模型不支持时,功能静默失败或返回 API 错误。

建议修复方向

  1. codex_catalog_model_entry()codex_model_catalog_from_specs() 中,针对已知不支持图片的模型(或提供一个通用选项),清除或设为 false 的字段:supports_image_detail_original、从 input_modalities 中移除 "image"
  2. 或者在 Codex 供应商表单中新增一个"支持图片输入"的开关,让用户可以自行声明模型是否支持。

Contributor guide