添加自定义端点模型
自定义端点提供程序允许您将任何兼容的 API 端点连接到 VS Code 中的聊天。它支持三种 API 类型,您可以为每个模型选择:聊天补全、响应和消息。
通过自定义端点提供程序添加模型:
- 从语言模型选择器中选择"管理语言模型"(齿轮图标),或通过命令面板运行"Chat: Manage Language Models"命令,打开语言模型编辑器。
- 选择"添加模型",然后从列表中选择"Custom Endpoint"。
- 输入模型组名称。这是在模型选择器和语言模型编辑器中显示的分组标签。
如果需要,您稍后可以在语言模型编辑器中更改组名称。 - 输入端点的显示名称和 API 密钥。
- 选择 API 类型:Chat Completions、Responses 或 Messages。确保模型支持此 API 类型。
- VS Code 打开一个
chatLanguageModels.json文件,您可以在其中配置模型详情。更新模型属性并保存文件。有关配置属性的详细信息,请参阅模型配置参考。
以下示例展示了针对 Anthropic 端点的消息 API 配置:
json
[
{
"name": "Anthropic",
"vendor": "customendpoint",
"apiKey": "YOUR_API_KEY",
"apiType": "messages",
"models": [
{
"id": "claude-sonnet-4-6",
"name": "Claude Sonnet 4.6",
"url": "https://api.anthropic.com/v1/messages",
"toolCalling": true,
"vision": true,
"maxInputTokens": 200000,
"maxOutputTokens": 64000
}
]
}
]
配置模型后,从聊天的模型选择器中选择它。
注意:如果添加的模型没有立即出现在模型选择器中,请重启 VS Code。
添加模型提供程序扩展
您可以从 Visual Studio Marketplace 安装扩展,这些扩展会向 VS Code 添加语言模型提供程序。这些扩展可以提供对其他云托管或本地运行模型的访问。例如,Foundry Toolkit for VS Code 扩展提供了对 Foundry 本地和云托管模型的访问。
添加模型提供程序扩展:
- 打开扩展视图,搜索
@tag:language-models。 - 选择"安装"以安装扩展,例如 Foundry Toolkit for VS Code。
- 按照扩展的设置说明配置模型访问权限。
- 该扩展的模型会出现在聊天的模型选择器和语言模型编辑器中。如果模型没有出现,请重新加载 VS Code。
更新模型提供程序详情
要更新之前配置的模型提供程序的详情:
- 从"聊天"视图的模型选择器中选择"管理语言模型"(齿轮图标),或从命令面板运行"Chat: Manage Language Models"命令。
- 在语言模型编辑器中,选择要更新的模型提供程序旁边的齿轮图标。
- 更新提供程序详情,例如 API 密钥或端点 URL。
为其他功能配置模型
除了主要的聊天模型外,您还可以配置用于行内聊天、行内建议和后台辅助任务的模型。
更改行内聊天所用的模型
您可以为编辑器行内聊天配置默认语言模型。这使您能够为行内聊天使用与聊天对话不同的模型。
要为行内聊天配置默认模型,请使用 inlineChat.defaultModel 设置。该设置列出了模型选择器中的所有可用模型。
如果您在行内聊天会话期间更改模型,该选择将在会话的剩余时间内持续。重新加载 VS Code 后,模型将重置为 inlineChat.defaultModel 设置中指定的值。
更改行内建议所用的模型
要更改编辑器中用于生成行内建议的语言模型:
- 从 VS Code 标题栏的"聊天"菜单中选择"Configure Inline Suggestions..."。
- 选择"Change Completions Model...",然后从列表中选择一个模型。
注意:可用模型列表可能因时而异。如果没有替代模型可用,则更改模型的选项不可用。
如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要在 GitHub.com 上的 Copilot 策略设置中通过加入"编辑器预览功能"来为您的组织启用某些模型。
更改辅助任务所用的模型
除了主要聊天模型外,VS Code 还在后台使用轻量级模型执行辅助任务,例如生成标题、创建提交消息和检测意图。默认情况下,这些任务使用 GitHub Copilot 提供的内置辅助模型。您可以使用任何可用模型(包括 BYOK 和扩展提供的模型)覆盖这些任务所使用的模型。
根据任务类型,有两个用于辅助模型的设置:
chat.utilityModel:覆盖用于通用辅助流程的模型,例如生成标题和摘要、设置搜索和 Git 审查。chat.utilitySmallModel:覆盖用于快速、轻量级辅助流程的模型,例如提交消息、重命名建议、分支名称生成、提示分类和意图检测。建议为此设置使用快速且经济的模型。
两个设置默认均为"Default",即使用 GitHub Copilot 的内置辅助模型。
如果您在未登录 GitHub 帐户的情况下使用 BYOK 模型,则内置辅助模型不可用。VS Code 会在"聊天"视图中显示一条通知,提示您配置辅助模型。将 chat.utilityModel 和 chat.utilitySmallModel 设置为 BYOK 模型,即可启用诸如标题生成和提交消息创建等辅助功能。
模型配置参考
当您添加 BYOK 模型时,可以在 chatLanguageModels.json 文件中配置模型属性。配置分为两个级别:提供程序级别和模型级别。
根据提供程序的不同,某些提供程序和模型属性可能是必需的,而其他则是可选的。例如,某些提供程序只需要 API 密钥和端点 URL,并自动发现可用模型,而其他提供程序则要求您为每个模型指定详细信息。
提供程序级别的属性包括:
| 属性 | 描述 |
|---|---|
| vendor | 模型的提供程序,例如 azure、openai、customendpoint |
| name | 在 UI 中显示的提供程序的显示名称(组名称) |
| models | (可选)此提供程序提供的模型配置数组 |
models 数组中的每个模型支持以下属性:
| 属性 | 描述 |
|---|---|
| id | 发送到 API 的模型标识符。例如,对于 Foundry 来说是部署名称。 |
| name | 在模型选择器中显示的显示名称。 |
| url | 模型的完整端点 URL。 |
| apiType | (可选)按模型覆盖 API 类型(chat-completions、responses 或 messages)。默认为提供程序级别的 apiType。 |
| toolCalling | 如果模型支持工具调用,则设置为 true。 |
| vision | 如果模型支持图像输入,则设置为 true。 |
| maxInputTokens | 模型接受的最大输入 token 数量。 |
| maxOutputTokens | 模型生成的最大输出 token 数量。 |
| editTools | (可选)模型支持的编辑工具数组。如果未配置,编辑器会尝试多种编辑工具并选择最佳工具。可能的值:find-replace、multi-find-replace、apply-patch、code-rewrite。 |
| thinking | (可选)如果模型支持思考能力,则设置为 true。默认为 false。 |
| streaming | (可选)如果模型支持流式响应,则设置为 true。默认为 true。 |
| zeroDataRetentionEnabled | (可选)如果此端点启用了零数据保留(ZDR),则设置为 true。启用后,通过响应 API 发送请求时将不会发送 previous_response_id。默认为 false。 |
| supportsReasoningEffort | (可选)模型接受的推理强度级别数组(例如 ["low", "medium", "high"])。设置后,模型选择器中会显示"思考强度"选择器。常见级别有 minimal、low、medium、high。 |
| reasoningEffortFormat | (可选)用于将推理强度转发给模型的请求体形状。chat-completions 发送顶层的 reasoning_effort 字符串。responses 发送嵌套的 reasoning.effort 对象。如果未设置,格式遵循 URL。 |
| requestHeaders | (可选)一个对象,包含要与此模型的请求一起发送的额外 HTTP 头。某些保留头(禁止头、转发头和内部头)不允许使用,如果存在会被忽略。 |
以下是复制直接使用的配置
python
[
{
"name": "DeepSeek",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.-114035be}",
"apiType": "chat-completions",
"models": [
{
"id": "deepseek-v4-pro",
"name": "deepseek-v4-pro",
"url": "https://api.deepseek.com",
"toolCalling": true,
"vision": false,
"maxInputTokens": 184000,
"maxOutputTokens": 16000,
"thinking": true,
"supportsReasoningEffort": [
"high",
"max"
]
},
{
"id": "deepseek-v4-flash",
"name": "deepseek-v4-flash",
"url": "https://api.deepseek.com",
"toolCalling": true,
"vision": false,
"maxInputTokens": 184000,
"maxOutputTokens": 16000,
"thinking": true,
"supportsReasoningEffort": [
"high",
"max"
]
}
],
"settings": {
"deepseek-v4-flash": {
"reasoningEffort": "high"
},
"deepseek-v4-pro": {
"reasoningEffort": "high"
}
}
}
]
对于 DeepSeek
- 默认思考开关为 enabled
- 思考模式下,对普通请求,默认 effort 为 high;对一些复杂 Agent 类请求(如 Claude Code、OpenCode),effort 自动设置为 max
- 思考模式下,"supportsReasoningEffort"字段出于兼容考虑 low、medium 会映射为 high, xhigh 会映射为 max
- 不支持图像模态