解决 VS Code 中 GitHub Copilot Chat 遇到的 `claude-3.7` 模型不支持问题

解决 VS Code 中 GitHub Copilot Chat 遇到的 claude-3.7 模型不支持问题

最近在 VS Code 中使用 Cline、Roo Code 插件的时候,尝试切换到 claude-3.7 模型时遇到了如下错误:

API 请求失败
请求失败: 400 {"error":{"message":"此请求不支持模型","param":"model","code":"model_not_supported","type":"invalid_request_error"}}

然而,当选择 claude-3.5 模型时,功能正常。本文将介绍问题的原因以及如何手动解决该问题。


问题描述

Cline、Roo Code 等插件可以使用 VS Code LM API 来工作, VS Code LM API 提供了多种语言模型选项,但我发现,虽然插件中启用了 claude-3.7 模型,但在实际使用时却提示模型不被支持。而其他模型(如 claude-3.5)则可以正常使用。

在这里插入图片描述


原因分析

经过进一步调查,这一问题是由 Microsoft 引发的,具体表现为 GitHub Copilot Chat 在发送 API 请求时包含了特定的头信息(x-onbehalf-extension-id),导致 API 服务器拒绝了对 claude-3.7 模型的支持。简单来说,Microsoft 的服务尚未完全准备好支持 claude-3.7 模型。


解决方案

尽管这是由 Microsoft 引发的问题,但我们可以采取一些手动措施来绕过限制,从而启用 claude-3.7 模型。

以下是详细步骤:

步骤 1:找到扩展文件夹

Windows:
  1. 打开文件资源管理器并导航到:
    %USERPROFILE%\.vscode\extensions\
    
  2. 查找类似以下名称的文件夹:
    github.copilot-chat-<版本号>
    
macOS/Linux:
  1. 打开终端并导航到:
    ~/.vscode/extensions/
    
  2. 找到类似以下名称的文件夹:
    github.copilot-chat-<版本号>
    

步骤 2:打开 extension.js 文件

  1. 进入文件夹 github.copilot-chat-<版本号>/dist/
  2. 使用你喜欢的文本编辑器(如 VS Code)打开文件 extension.js

步骤 3:定位标头代码

使用编辑器的搜索功能(快捷键通常是 Ctrl+FCmd+F)搜索以下内容:

"x-onbehalf-extension-id"

步骤 4:移除或注释掉标头代码

找到包含以下内容的代码段:

S === "getExtraHeaders" ? function () {
    return {
        ...f.getExtraHeaders?.() ?? {},
        "x-onbehalf-extension-id": `${A}/${c}`
    };
} : S === "acquireTokenizer" ? f.acquireTokenizer.bind(f) : Reflect.get(f, S, D);
解决方法 :直接删除标头代码

完全删除以下部分:

"x-onbehalf-extension-id": `${A}/${c}`

并确保删除逗号以保持语法正确。


步骤 5:保存并重启 VS Code

  1. 保存对 extension.js 文件的修改。
  2. 关闭所有正在运行的 VS Code 实例。
  3. 重新打开 VS Code,以使更改生效。

步骤 6:验证更改

  1. 打开你常用的代码文件。
  2. 启动 Cline、Roo Code并尝试使用 claude-3.7 模型。
  3. 如果一切正常,你应该能够看到模型的响应。

在这里插入图片描述


注意事项

  1. 备份文件:在修改扩展文件之前,请务必备份原始的 extension.js 文件,以免出现问题时无法恢复。
  2. 更新风险:如果你更新了 GitHub Copilot Chat 插件,你的更改可能会被覆盖。
  3. 安全性:尽管 GitHub 官方确认这些操作是安全的,但仍然建议仅在了解风险的情况下进行此类修改。

总结

通过手动移除不必要的头信息,我们可以暂时解决 VS Code 中 Cline、Roo Code 对 claude-3.7 模型不支持的问题。希望 Microsoft 能尽快修复此问题,让所有用户都能无缝使用最新模型!

如果你有任何疑问或遇到问题,请随时在评论区留言,我们将尽力协助你解决问题。


祝编程愉快!

.

.

### 如何在 Visual Studio 中使用 GitHub Copilot Chat 为了充分利用 GitHub Copilot Chat,在 Visual Studio 中工作时可以通过特定方式与其交互,从而提高生产力并获得更好的编码支持。 #### 启用 GitHub Copilot Chat 支持 确保已安装最新版本的 GitHub Copilot 扩展程序。这一步骤对于激活 Copilot 的全部功能至关重要[^2]。一旦扩展被正确配置,就可以通过多种方法访问 Copilot Chat 功能: - **聊天界面中的上下文共享**:可以在聊天界面中使用 `#editor` 命令向 GitHub Copilot 提供关于当前在 Visual Studio 中打开文件的额外背景信息[^1]。 - **自然语言指令处理**:当面对复杂的重构需求时,比如将基于 Angular 的前端组件转换成 React 组件的情况,只需简单询问:“Can you show me how to rewrite the Angular components #file:settings.component.html using React?” 这样的请求能够触发 Copilot 自动生成相应的代码片段或指导建议[^3]。 #### 实际操作示范 下面是一个具体的例子展示如何利用这些特性完成日常编程任务: ```csharp // 当你在 C# 文件里编写逻辑时遇到难题, // 可以尝试这样提问获取帮助: "How can I optimize this loop structure for better performance?" ``` 此外,如果想要探索最新的 OpenAI o1 预览版和 mini 版本所提供的能力,则可以前往 GitHub Models Playground 测试环境先行体验再决定是否引入到个人项目当中[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值