模型目录与自定义提供商
用数组定义模型、映射提供商协议,理解去重、热重载和选择保存。
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,不是逐模型拼接。模型参数的整套覆盖规则见解析与运行时模型。