GitHub Copilot 扩展就是你所需要的
2024年6月24日,作者:Isidor Nikolic,@isidorn
2017年,谷歌研究人员在其开创性论文《Attention is All You Need》中引入了transformers(转换器)的概念。这种优先处理信息的方式类似于人类的注意力,是当今现代语言模型的基础,例如驱动GitHub Copilot的那些模型。
就像transformers对人工智能产生了变革性影响(抱歉)一样,我们相信GitHub Copilot扩展最终将实现人工智能对开发者的全部承诺。
VS Code是历史上使用最广泛的开发者工具之一。这种流行很大程度上归功于社区贡献的庞大的扩展生态系统。如果你是VS Code用户,也许可以立刻列举出几个你离不开的扩展。想象一下,如果这些扩展能够利用人工智能和GitHub Copilot的力量,将会带来怎样的可能性。
人工智能的真正力量在于它了解你的具体上下文。而VS Code拥有这些知识。扩展可以使用VS Code API来利用这种上下文,并在所有开发者已经使用的VS Code中提供最佳、最相关的AI驱动的答案和交互。
在这篇文章中,我们将介绍赋予扩展与语言模型和GitHub Copilot贡献的聊天体验直接交互的新API。我们将介绍如何从今天开始使用这些API,并展示一些早期采用者如何开始利用这些API来丰富他们的扩展。
聊天和语言模型API
今年在Build大会上,我们宣布了VS Code中GitHub Copilot的一组新的API
请务必观看我们的Build会议关于使用GitHub Copilot增强VS Code扩展的讲解,以了解所有这些API。
你可能最熟悉通过聊天界面使用LLM。你的扩展利用GitHub Copilot力量的一种方式是构建一个聊天参与者,用户可以在VS Code中的聊天视图中与之交互。你可以使用聊天API创建聊天参与者,并使用语言模型API处理自然语言并制定对用户查询的响应。详细了解我们的扩展指南中的聊天API,该指南以一个@cat代码导师为例,讲解新的API概念。

有了语言模型API,你现在可以直接访问和利用GitHub Copilot贡献的大型语言模型(或LLM),在自己的扩展中。只需选择要使用的模型,构建提示,然后向所选模型发送请求。并且通过使用VS Code API,你可以将相关的上下文添加到提示中。例如,包含当前文件的内容或正在使用的技术栈。
语言模型API还可以用于增强编辑器各个部分的开发者体验,而不仅仅是聊天视图。你可以为VS Code的所有可贡献表面贡献一个使用语言模型API的操作,例如编辑器上下文菜单。例如,源代码管理视图使用语言模型API允许用户生成提交消息,基于源代码更改。另一个例子是Copilot驱动的重命名功能,其中语言模型根据代码的上下文提供符号重命名建议。

在我们的扩展指南中了解更多关于语言模型API的信息。
我们相信,最令人愉悦的用户体验将源于将聊天和语言模型API与强大的VS Code API套件相结合。扩展作者应创造性地利用这些工具,超越简单的问答机器人,开发在VS Code中集成的丰富交互,使用正确的用户上下文。用户欣赏其工作流程中无缝且强大的交互。这些新的API使扩展能够通过将AI功能直接集成到VS Code中来提高用户的生产力。
GitHub Apps
或者,你可以通过创建一个在聊天视图中贡献聊天参与者的GitHub App来扩展GitHub Copilot。GitHub App由服务支持,并在所有GitHub Copilot表面上工作,例如github.com、Visual Studio或VS Code。GitHub App没有完全访问VS Code API的权限。要通过GitHub App扩展GitHub Copilot,你应该加入Copilot合作伙伴计划。
我们在Microsoft Build大会上通过GitHub Apps宣布了GitHub Copilot扩展,并且我们已经在GitHub Marketplace上看到了一些很棒的扩展。
观看我们的Build会议关于扩展GitHub Copilot的讲解,以了解其运作方式。
VS Code扩展展示
我们很高兴展示VS Code扩展社区使用语言模型和聊天API构建的内容。到目前为止,我们已经看到超过100个扩展构建在GitHub Copilot之上,涵盖了广泛的场景。以下是一些我们认为特别引人入胜的扩展。
Stripe
Stripe使开发者能够接受付款和在线转移资金。新的@stripe聊天参与者将Stripe文档、代码示例和最佳实践的知识带到你的指尖,因此你可以在不离开VS Code的情况下构建和维护你的Stripe集成。
“我们不断努力使开发者集成Stripe变得更容易,这就是为什么我们很高兴通过Stripe特定的上下文和功能来扩展Copilot。新的可扩展性API设计精良且易于构建,因此我们能够快速移动。” - Ian McCrystal (EM,Stripe开发者AI团队)
@stripe参与者可以帮助你
- 生成和调试Stripe API代码并将其插入到你的项目中
- 获取基于Stripe文档的答案
- 逐步构建并最终升级你的API集成

@stripe参与者将于7月中旬向所有Stripe VS Code扩展用户开放。
MongoDB
MongoDB开发者喜欢MongoDB for VS Code扩展,该扩展可以实现无缝数据导航、查询构建、使用playground进行原型设计以及导出到流行的语言。@mongodb聊天参与者与扩展深度集成,使开发者能够利用GitHub Copilot和扩展的强大组合,在VS Code中更快地进行MongoDB应用程序开发。
@mongodb聊天参与者
- 从自然语言生成MongoDB查询
- 从数据库日志中提供查询性能和错误模式的见解
- 提供数据库和集合模式信息
- 直接在VS Code中回答问题,并引用官方文档

如果你有兴趣使用MongoDB聊天参与者,可以注册以获取私人预览的访问权限。
Parallels
Parallels,流行的macOS虚拟化软件,最近推出了一款新的Parallels Desktop VS Code扩展,以提升Parallels Desktop体验。他们通过与GitHub Copilot集成进一步改进了它。
“简单而强大的API以及良好的示例使我们能够快速创建一个强大的copilot参与者,否则需要大量的努力和时间。” – Carlos Lapao (解决方案架构师,Parallels)
通过新的@parallels聊天参与者,你可以使用自然语言毫不费力地执行大多数虚拟机操作。例如,你可以说“@parallels start the Windows 11 VM”,聊天参与者将代表你执行操作。

PostgreSQL
PostgreSQL是一个非常流行的关系数据库平台,你现在可以通过使用PostgreSQL Chat Participant扩展与它直接聊天。@pg聊天参与者将学习你的数据库模式并为你提供答案,这些答案基于数据库模式。你还可以使用它来生成模式、获取SQL查询的帮助,甚至生成与数据库交互的代码。

后续步骤
我们才刚刚开始。与VS Code中的所有产品计划一样,我们将随着时间的推移扩展我们的人工智能可扩展性功能。我们预计以下功能将在今年晚些时候推出
- 意图检测,以便自动调用聊天参与者
- GPT-4o语言模型支持
- 增加模型请求的token限制(当前限制为4K token)
- 编辑器内联聊天、终端和notebook中的聊天参与者
- 变量解析API - 允许扩展贡献聊天变量,这些变量提供来自扩展域的上下文
- 工具API – 将自然语言转换为带有参数的工具调用;允许扩展注册可以被其他参与者调用的工具
今天向所有人开放!
聊天和语言模型API今天在VS Code Insiders中可用,并将于7月初在VS Code Stable中发布。使用我们的文档和示例开始构建强大的AI扩展非常容易。如果你有任何问题或反馈,可以在我们的存储库中打开一个issue。
今天,你就可以将依赖于语言模型和聊天API的扩展发布到VS Marketplace。真正的问题是:你将创建哪些令人难以置信的扩展?可能性是无限的,只有你能将这些创新想法变为现实。因此,深入到我们出色的扩展开发流程中,利用正确的用户上下文发挥人工智能的力量,让你的创造力塑造开发未来!构建部分很有趣 - 去享受吧!
谢谢,
Isidor 和 VS Code 团队