本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

GitHub Copilot 扩展就是你所需的一切

2024年6月24日 由 Isidor Nikolic 撰写, @isidorn

2017年,谷歌研究人员在他们的开创性论文《注意力就是你需要的》中引入了“变压器”的概念。这些模型在信息处理上类似于人类的注意力,是当今现代语言模型的基础,例如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 扩展,以了解这些 API 的所有内容。

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

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

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

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

使用 Copilot 功能的 VS Code 编辑器重命名功能的截图。

在我们的扩展指南中了解更多关于语言模型API的信息。

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

GitHub 应用

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

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

观看我们的构建会议关于扩展 GitHub Copilot,以了解其实际应用。

VS Code 扩展展示

我们很高兴展示VS Code扩展社区使用语言模型和聊天API所构建的成果。到目前为止,我们已经看到超过100个扩展在各种场景上基于GitHub Copilot进行构建。以下是一些我们特别认为有说服力的扩展。

Stripe

Stripe 使开发人员能够在线接受付款和转移资金。新的@条纹聊天参与者将 Stripe 文档、代码示例和最佳实践的知识带到你指尖,这样你就可以在 VS Code 中构建和维护你的 Stripe 集成而无需离开 VS Code。

“我们一直在努力让开发者更轻松地集成 Stripe,这就是为什么我们很高兴能够扩展 Copilot,增加与 Stripe 相关的上下文和功能。新的可扩展性 API 设计精良且易于构建,因此我们能够快速推进。” - Ian McCrystal(Stripe 开发者 AI 团队的工程经理)

@条纹参与者帮助你:

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

VS Code 聊天视图中 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 @启动 Windows 11 虚拟机",让聊天参与者代表您采取行动。

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

PostgreSQL

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

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

下一步

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

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

今天对所有人开放!

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

今天,你就可以将依赖语言模型和聊天API的扩展发布到VS Marketplace。真正的问题是:你会创造哪些令人惊叹的扩展?可能性是无穷的,只有你能将这些创新的想法变为现实。所以,沉浸在我们出色的扩展开发流程中,利用正确的用户上下文来发挥AI的力量,并让你的创造力塑造开发的未来!构建的部分很有趣——去享受吧!

谢谢,

伊西多尔和VS Code团队