Affected area
Model providers
Version or commit
v1.2.3
Environment
OS: Windows
Deployment: desktop app
Provider: OpenAI-compatible relay, provider type = codex
Base URL: 本地CCH网关
requestFormat: openai-responses
Model: deepseek-v4-flash
Steps to reproduce
- 在供应商设置中添加/使用一个
codex 类型供应商。
- 设置 Base URL ,请求格式选择
Responses API。
- 选择模型
deepseek-v4-flash 并发送消息。
- 在上游请求日志中观察实际请求路径。
Expected behavior
- 配置为
openai-responses 时,实际请求应发送到 POST /v1/responses。
requestFormat 应作为 Codex 供应商的最终协议决定权,不应被模型 ID 静默覆盖。
- DeepSeek 选择
openai-completions 时,继续保留现有 DeepSeek Chat 适配。
- DeepSeek Anthropic 的 DSML 修复保持现状。
Actual behavior
- 配置为
openai-responses,但实际请求发送到 POST /v1/chat/completions。
- 根因:
createModelFromConfig() 中 isDeepSeekCodexTarget() 在模型 ID 或 Base URL 含 deepseek 时,强制把 model.api 设为 openai-completions,覆盖用户显式选择的 requestFormat。
- 当前行为是静默改写协议,用户在设置页看到的是 Responses,实际请求却走了 Chat Completions,难以排查。
Logs / screenshots
POST http://127.0.0.1:23000/v1/chat/completions
Expected: POST http://127.0.0.1:23000/v1/responses
Pre-submit checklist
Affected area
Model providers
Version or commit
v1.2.3
Environment
OS: Windows
Deployment: desktop app
Provider: OpenAI-compatible relay, provider type = codex
Base URL: 本地CCH网关
requestFormat: openai-responses
Model: deepseek-v4-flash
Steps to reproduce
codex类型供应商。Responses API。deepseek-v4-flash并发送消息。Expected behavior
openai-responses时,实际请求应发送到POST /v1/responses。requestFormat应作为 Codex 供应商的最终协议决定权,不应被模型 ID 静默覆盖。openai-completions时,继续保留现有 DeepSeek Chat 适配。Actual behavior
openai-responses,但实际请求发送到POST /v1/chat/completions。createModelFromConfig()中isDeepSeekCodexTarget()在模型 ID 或 Base URL 含deepseek时,强制把model.api设为openai-completions,覆盖用户显式选择的requestFormat。Logs / screenshots
POST http://127.0.0.1:23000/v1/chat/completions
Expected: POST http://127.0.0.1:23000/v1/responses
Pre-submit checklist