Skip to content

[Bug] DeepSeek 模型选择 Responses API 时仍被强制路由到 Chat Completions #369

Description

@ISO-N

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

  1. 在供应商设置中添加/使用一个 codex 类型供应商。
  2. 设置 Base URL ,请求格式选择 Responses API
  3. 选择模型 deepseek-v4-flash 并发送消息。
  4. 在上游请求日志中观察实际请求路径。

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

  • I searched existing issues and pull requests and found no duplicates.
  • This is not a security vulnerability (report those privately via Security Advisories).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions