Skip to content

[Bug/错误]: 请求头覆盖(Request Header Override)不作用于模型列表探测,导致依赖自定义头的渠道无法获取模型列表 #2445

Description

@lurenyv

渠道配置里设置了「请求头覆盖」(自定义/非标准认证头,例如 x-api-key、X-Subscription-Key 等)用于鉴权或网关约定。

现象:

  • 聊天/补全转发正常(覆盖头生效)。
  • 但在渠道界面点击「获取模型列表 / 同步模型」时,上游 /models 接口返回 401/403,模型列表获取失败。

原因:

  • 聊天/补全路径 internal/server/biz/channel_llm.go:145 会调用 GetHeaderOverrideOperations() 并应用到 outbound 请求;
  • 模型列表探测路径 internal/server/biz/model_fetcher.go FetchModels() 从渠道只读取 Settings.Proxy(约 432-434 行)与凭据,生成请求头时(约 479-511 行)只写入 Authorization / X-Api-Key / X-Goog-Api-Key 等标准头,完全没有读取 Settings.OverrideHeaders 或 Settings.HeaderOverrideOperations。

复现步骤

  1. 新增一个 OpenAI 兼容渠道,其 /v1/models 需要非标准请求头鉴权(如 x-api-key 而非 Authorization)。
  2. 在该渠道设置里配置「请求头覆盖」,添加 key=x-api-key, value=。
  3. 聊天/补全测试通过。
  4. 到渠道界面点击「获取模型列表」,观察返回 401/403,列表为空。

期望:模型列表探测请求也应应用渠道的「请求头覆盖」,与聊天/补全链路行为一致。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions