解决 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:
- 打开文件资源管理器并导航到:
- %USERPROFILE%\.vscode\extensions\
复制代码 - 查找雷同以下名称的文件夹:
- github.copilot-chat-<版本号>
复制代码 macOS/Linux:
- 打开终端并导航到:
- 找到雷同以下名称的文件夹:
- github.copilot-chat-<版本号>
复制代码 步骤 2:打开 extension.js 文件
- 进入文件夹 github.copilot-chat-<版本号>
/dist/。
- 使用你喜欢的文本编辑器(如 VS Code)打开文件 extension.js。
步骤 3:定位标头代码
使用编辑器的搜索功能(快捷键通常是 Ctrl+F 或 Cmd+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
- 保存对 extension.js 文件的修改。
- 关闭所有正在运行的 VS Code 实例。
- 重新打开 VS Code,以使更改生效。
步骤 6:验证更改
- 打开你常用的代码文件。
- 启动 Cline、Roo Code并尝试使用 claude-3.7 模型。
- 假如统统正常,你应该可以或许看到模型的相应。
注意事项
- 备份文件:在修改扩展文件之前,请务必备份原始的 extension.js 文件,以免出现问题时无法规复。
- 更新风险:假如你更新了 GitHub Copilot Chat 插件,你的更改大概会被覆盖。
- 安全性:尽管 GitHub 官方确认这些操纵是安全的,但仍旧建议仅在了解风险的情况下举行此类修改。
总结
通过手动移除不须要的头信息,我们可以临时解决 VS Code 中 Cline、Roo Code 对 claude-3.7 模型不支持的问题。希望 Microsoft 能尽快修复此问题,让所有用户都能无缝使用最新模型!
假如你有任何疑问或遇到问题,请随时在批评区留言,我们将努力协助你解决问题。
祝编程舒畅!
.
.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |