GitHub Copilot 扩展是你所需要的全部

2024年6月24日,由Isidor Nikolic发布,@isidorn

2017年,谷歌研究人员在他们的开创性论文"Attention is All You Need"中引入了transformers的概念。这些类型的模型,像人类注意力一样优先处理信息,是当今现代语言模型的基础,例如为GitHub Copilot提供动力的模型。

就像变压器对人工智能产生了变革性影响(抱歉),我们相信GitHub Copilot扩展最终将为开发者实现人工智能的全部承诺。

VS Code 是历史上最广泛使用的开发者工具之一。这种流行很大程度上归功于社区贡献的大量扩展生态系统。如果你是 VS Code 用户,你可能马上就能列出几个你离不开的扩展。想象一下,如果这些扩展能够利用 AI 和 GitHub Copilot 的力量,会带来怎样的可能性。

当AI了解您的特定上下文时,其真正的力量才能被释放。而VS Code拥有这些知识。扩展程序可以使用VS Code API来利用这一上下文,并在所有开发者已经使用的VS Code中提供最佳、最相关的AI驱动答案和交互。

在这篇文章中,我们将探讨新的API,这些API使扩展能够直接与语言模型和GitHub Copilot贡献的聊天体验进行交互。我们将看看如何从今天开始使用这些API进行构建,并展示一些已经开始利用这些API来丰富其扩展的早期采用者。

聊天和语言模型API

今年在Build大会上,我们宣布了VS Code中GitHub Copilot的一组新API:

请务必观看我们关于使用GitHub Copilot增强VS Code扩展的Build会话,以了解所有这些API。

你可能最熟悉通过聊天界面使用LLMs。你的扩展利用GitHub Copilot力量的一种方式是构建一个聊天参与者,用户可以在VS Code内的聊天视图中与之互动。你可以使用Chat API创建一个聊天参与者,并使用语言模型API处理自然语言并制定对用户查询的响应。在我们的扩展指南中了解更多关于Chat API的信息,该指南使用@cat代码导师作为新API概念的示例。

VS Code中聊天视图的截图,显示了猫样本参与者。

通过语言模型API,您现在可以直接访问并利用GitHub Copilot贡献的大型语言模型(简称LLMs)在您自己的扩展中。只需选择您想要使用的模型,构建一个提示,并向所选模型发送请求。通过使用VS Code API,您可以将相关上下文添加到提示中。例如,包括当前文件的内容或正在使用的技术栈。

语言模型API也可以用于增强编辑器中所有部分的开发者体验,而不仅仅是聊天视图。您可以贡献一个使用语言模型API的操作到VS Code的所有可贡献表面,例如编辑器上下文菜单。例如,源代码控制视图使用语言模型API允许用户生成提交消息,基于源代码的更改。另一个例子是由Copilot驱动的重命名功能,其中语言模型根据代码的上下文提供符号重命名建议。

VS Code 编辑器中由 Copilot 驱动的重命名功能的截图。

了解更多关于语言模型API的信息,请参阅我们的扩展指南。

我们相信,最令人愉悦的用户体验将来自于将聊天和语言模型API与强大的VS Code API套件相结合。扩展作者应创造性地利用这些工具,超越简单的问答机器人,开发出在VS Code中使用正确用户上下文的丰富、集成的交互。用户在他们的工作流程中欣赏无缝且强大的交互。这些新的API使扩展能够通过将AI功能直接集成到VS Code中来提高用户的生产力。

GitHub 应用程序

或者,您可以通过创建一个GitHub应用程序来扩展GitHub Copilot,该应用程序在聊天视图中贡献一个聊天参与者。GitHub应用程序由服务支持,并在所有GitHub Copilot界面上工作,例如github.com、Visual Studio或VS Code。GitHub应用程序没有完全访问VS Code API的权限。要通过GitHub应用程序扩展GitHub Copilot,您应该加入Copilot合作伙伴计划

我们在微软Build大会上通过GitHub Apps宣布了GitHub Copilot扩展,并且我们已经在GitHub Marketplace上看到了一些很棒的扩展。

观看我们关于扩展GitHub Copilot的Build会话,以查看其实际应用。

VS Code 扩展展示

我们很高兴展示VS Code扩展社区利用语言模型和聊天API构建的内容。到目前为止,我们已经看到超过100个扩展在GitHub Copilot的基础上构建,涵盖了广泛的场景。以下是我们发现特别引人注目的一些扩展。

Stripe

Stripe 使开发者能够在线接受付款和转移资金。新的 @stripe 聊天参与者将 Stripe 的文档、代码示例和最佳实践知识带到您的指尖,因此您可以在不离开 VS Code 的情况下构建和维护您的 Stripe 集成。

“我们一直在努力使开发者更容易集成Stripe,这就是为什么我们很高兴能够扩展Copilot,加入Stripe特定的上下文和功能。新的可扩展性API设计精良且易于构建,因此我们能够非常迅速地推进。” - Ian McCrystal (EM, Stripe开发者AI团队)

@stripe 参与者帮助您:

  • 生成并调试Stripe API代码并将其插入到您的项目中
  • 获取基于Stripe文档的问题解答
  • 逐步构建并最终升级您的API集成

VS Code中聊天视图中的Stripe聊天参与者的截图。

@stripe 参与者将在七月中旬对所有 Stripe VS Code 扩展用户开放。

MongoDB

MongoDB 开发者喜爱 MongoDB for VS Code 扩展,它能够实现无缝数据导航、查询构建、使用 playground 进行原型设计以及导出到流行语言。@mongodb 聊天参与者与该扩展深度集成,使开发者能够利用 GitHub Copilot 和该扩展的强大组合,在 VS Code 中更快地进行 MongoDB 应用开发。

@mongodb 聊天参与者:

  • 从自然语言生成MongoDB查询
  • 提供从数据库日志中查询性能和错误模式的见解
  • 提供数据库和集合的模式信息
  • 直接在VS Code中回答问题,并参考官方文档

VS Code 中聊天视图中的 MongoDB 聊天参与者的截图。

如果您对使用MongoDB聊天参与者感兴趣,您可以注册以获取私人预览的访问权限。

平行线

Parallels,广受欢迎的macOS虚拟化软件,最近推出了一款新的Parallels Desktop VS Code扩展,以提升Parallels Desktop的使用体验。他们通过与GitHub Copilot的集成进一步改进了它。

“易于使用且功能强大的API以及良好的示例使我们能够快速创建一个强大的copilot参与者,否则这将需要相当多的努力和时间。” – Carlos Lapao(解决方案架构师,Parallels)

通过新的@parallels聊天参与者,您可以轻松地使用自然语言执行大多数虚拟机操作。例如,您可以说“@parallels 启动Windows 11虚拟机”,聊天参与者将代表您执行操作。

VS Code 聊天视图中 Parallels 聊天参与者的截图。

PostgreSQL

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

VS Code 聊天视图中 PostgreSQL 聊天参与者的截图。

下一步

我们才刚刚开始。与VS Code中的所有产品计划一样,我们将随着时间的推移扩展我们的AI扩展能力。我们预计以下功能将在今年晚些时候推出:

  • 意图检测,以便聊天参与者自动被调用
  • GPT-4o 语言模型支持
  • 增加了模型请求的令牌限制(当前限制为4K令牌)
  • 编辑器内联聊天、终端和笔记本中的聊天参与者
  • 变量解析API - 允许扩展贡献聊天变量,这些变量提供来自扩展领域的上下文
  • 工具API – 将自然语言转换为带有参数的工具调用;允许扩展注册可以被其他参与者调用的工具

今天对所有人开放!

聊天和语言模型API今天在VS Code Insiders中可用,并将在7月初进入VS Code稳定版。使用我们的文档示例,可以轻松开始构建强大的AI扩展。如果您有任何问题或反馈,可以在我们的仓库中提出问题。

今天,您已经可以将依赖于语言模型和聊天API的扩展发布到VS Marketplace。真正的问题是:您将创造出哪些令人难以置信的扩展?可能性是无限的,只有您才能将这些创新想法变为现实。因此,深入我们优秀的扩展开发流程,利用AI的力量与正确的用户上下文,让您的创造力塑造开发的未来!构建部分很有趣——去享受吧!

谢谢,

伊西多尔和VS Code团队