Skip to content
FunCoding

Search

Search docs, Skills and MCP

模型目录与自定义提供商

用数组定义模型、映射提供商协议,理解去重、热重载和选择保存。

This page has not been translated into English yet. The original Chinese version is shown below.

modelProviders 是可切换模型的目录。每个键是 provider ID,值是模型定义数组;内置名称自动映射协议,自定义名称需配套 providerProtocol。

当前配置形状

{
  "modelProviders": {
    "company": [
      {
        "id": "company-model",
        "name": "Company coding model",
        "envKey": "COMPANY_API_KEY",
        "baseUrl": "https://gateway.example.com/v1"
      }
    ]
  },
  "providerProtocol": {
    "company": "openai"
  }
}

域名与模型是占位示例,Key 由 COMPANY_API_KEY 提供。envKey 填变量名,不能直接填真实 Key。基础凭据设置见凭据配置。

早期预览版本曾用 { protocol, models } 包装对象,目前已改回直接数组。在已经迁移到 $version: 4 的配置里,旧包装可能被静默跳过。模型未出现时,先检查形状和自定义 provider 的协议映射。

协议映射

内置 provider ID 为 openai、anthropic、gemini、vertex-ai;历史 qwen-oauth 是硬编码且已停用的路径,不能在目录覆盖它。

自定义 ID 必须有对应 providerProtocol;未映射或拼错时,整个条目会被跳过并打印警告。协议决定实际传输格式,而不是品牌名称,见协议与云服务。

同名模型与去重

模型由有效 API 协议、模型 id 和配置的 baseUrl 共同识别。同一个模型可以同时有 Chat Completions 与 Responses 路由,也可在不同地址出现。

三者都相同的重复条目只保留第一次出现者,后续条目被跳过并警告。只更换显示 name 不会构成独立路由;需要多个端点时应明确 baseUrl。

热重载

交互会话会监听 settings.json 中 modelProviders 的修改,约 300 毫秒防抖后更新;重新打开 /model 可见新条目,当前选择会保留。

以下情况需要特别处理:

  • 修改活动模型的 wireApi 会创建另一条路由,需显式选取或重启。
  • 无效 API 修改不会破坏之前可用的 registry。
  • providerProtocol 只在启动时读取,修改它需要重启。

保存范围

/model 与 /auth 将模型名及认证类型写入最近的、已定义 modelProviders 的可写配置范围;没有对应目录时回退到用户范围。

官方建议将模型目录放在 ~/.qwen/settings.json。项目中的整个 modelProviders 会替换用户的对应 section,不是逐模型拼接。模型参数的整套覆盖规则见解析与运行时模型。