farion1231/cc-switch
Vedi su GitHub[Bug] Codex + DeepSeek 配置下 AppShots 功能不可用 — model catalog 继承了 GPT 模板的视觉能力标记
Open
Aperta il 1 giu 2026
good first issuequestion
Descrizione
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 / 重现步骤
- 在 CC Switch 中为 Codex 配置一个第三方供应商,模型使用 DeepSeek(如
deepseek-chat或deepseek-reasoner),开启本地路由。 - 确保 CC Switch 已接管 Codex Live 配置,
~/.codex/cc-switch-model-catalog.json已生成。 - 在 Codex 桌面端中尝试使用 AppShots 功能(截图 / Computer Use)。
- 观察 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() 函数从模板克隆模型条目。该模板来自以下来源之一:
- Codex 自身的
models_cache.json(GPT 系列模型条目) - 内置的 Codex CLI 模板
- 静态回退模板
gpt5_5_template.json
模板(特别是 gpt5_5_template.json)包含以下视觉相关字段:
"supports_image_detail_original": true,
"input_modalities": ["text", "image"]
在 src-tauri/src/codex_config.rs 的 codex_catalog_model_entry() 函数中,生成新条目时仅覆盖以下字段:
slugdisplay_namedescriptioncontext_window/max_context_windowpriorityadditional_speed_tiersservice_tiersavailability_nuxupgrade
模板中的 supports_image_detail_original、input_modalities 等视觉能力标记 不会被清除或调整,因此 DeepSeek(及其他不支持图片输入的模型)生成出的 catalog 条目会错误地声明支持图片输入。
影响范围
此问题影响所有通过 CC Switch 接入 Codex 且不支持图片/视觉输入的第三方模型(不仅限于 DeepSeek)。Codex 的 AppShots 功能依赖模型支持图片输入,当 catalog 声明支持但实际模型不支持时,功能静默失败或返回 API 错误。
建议修复方向
- 在
codex_catalog_model_entry()或codex_model_catalog_from_specs()中,针对已知不支持图片的模型(或提供一个通用选项),清除或设为false的字段:supports_image_detail_original、从input_modalities中移除"image"。 - 或者在 Codex 供应商表单中新增一个"支持图片输入"的开关,让用户可以自行声明模型是否支持。