GitHub Copilot 扩展是你所需要的一切
2024 年 6 月 24 日,作者:Isidor Nikolic,@isidorn
2017 年,Google 研究人员在其开创性论文 “Attention is All You Need” 中引入了 transformer 的概念。这类模型优先处理信息的方式类似于人类的注意力,它们是当今现代语言模型的基础,例如驱动 GitHub Copilot 的模型。
就像 transformer 对 AI 具有变革性(抱歉,双关语)一样,我们相信 GitHub Copilot 扩展最终将完全兑现 AI 对开发者的承诺。
VS Code 是历史上使用最广泛的开发者工具之一。它的流行很大程度上归功于社区贡献的庞大扩展生态系统。如果你是 VS Code 用户,你可能立即就能说出几个你离不开的扩展。想象一下,如果这些扩展能够利用 AI 和 GitHub Copilot 的力量,那将带来无限的可能性。
AI 的真正力量在了解你的特定上下文时才能释放。而 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 的详细信息。
您可能最熟悉通过聊天界面使用大型语言模型 (LLMs)。您的扩展利用 GitHub Copilot 力量的一种方式是构建一个聊天参与者,用户可以在 VS Code 内部的聊天视图中与其互动。您可以使用聊天 API 创建一个聊天参与者,并使用语言模型 API 来处理自然语言并针对用户查询制定响应。在我们使用 @cat
代码导师作为新 API 概念示例的扩展指南中,了解更多关于聊天 API 的信息。
通过语言模型 API,您现在可以直接访问并利用 GitHub Copilot 在您自己的扩展中贡献的大型语言模型(简称 LLMs)。只需选择您想使用的模型,构建一个提示,然后向选定的模型发送请求。通过使用 VS Code API,您可以将相关上下文添加到提示中。例如,可以包含当前文件的内容或正在使用的技术栈。
语言模型 API 也可用于增强编辑器各个部分的开发者体验,而不仅仅是聊天视图。您可以贡献一个使用语言模型 API 的操作,添加到 VS Code 的所有可贡献界面,例如编辑器上下文菜单。例如,源代码管理视图使用语言模型 API 允许用户根据源代码更改生成提交消息。另一个例子是 Copilot 驱动的重命名功能,语言模型根据代码上下文提供符号重命名建议。
在我们的扩展指南中了解更多关于语言模型 API 的信息。
我们相信,最愉悦的用户体验将来自于将聊天和语言模型 API 与功能强大的 VS Code API 套件结合使用。扩展作者应创造性地利用这些工具,超越简单的问答机器人,在 VS Code 中开发利用正确用户上下文的丰富、集成的交互。用户喜欢在其工作流程中获得无缝且强大的交互。这些新 API 使扩展能够通过将 AI 功能直接集成到 VS Code 中来提高用户的生产力。
GitHub 应用
或者,您可以通过创建一个 GitHub App 来扩展 GitHub Copilot,该 App 在聊天视图中贡献一个聊天参与者。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(Stripe 开发者 AI 团队 EM)
@stripe
参与者帮助您
- 生成和调试 Stripe API 代码并将其插入到您的项目中
- 根据 Stripe 文档回答您的问题
- 逐步引导您构建并最终升级您的 API 集成
@stripe
参与者将于 7 月中旬向所有 Stripe VS Code 扩展用户提供。
MongoDB
MongoDB 开发者喜爱 适用于 VS Code 的 MongoDB 扩展,该扩展支持无缝数据导航、查询构建、使用 Playground 进行原型设计以及导出到常用语言。@mongodb
聊天参与者与该扩展深度集成,使开发者能够利用 GitHub Copilot 和该扩展的强大组合,在 VS Code 中更快地进行 MongoDB 应用开发。
@mongodb
聊天参与者
- 从自然语言生成 MongoDB 查询
- 从数据库日志提供查询性能和错误模式洞察
- 提供数据库和集合模式信息
- 在 VS Code 中直接回答问题,并引用官方文档
如果您有兴趣使用 MongoDB 聊天参与者,可以注册以获取私人预览版访问权限。
Parallels
流行的 macOS 虚拟化软件 Parallels 最近发布了一款新的 Parallels Desktop VS Code 扩展,以提升 Parallels Desktop 体验。他们通过与 GitHub Copilot 集成进一步改进了它。
“简单强大的 API 以及良好的示例使我们能够快速创建一个强大的 Copilot 参与者,否则将需要大量精力和时间。”—— Carlos Lapao(Parallels 解决方案架构师)
通过新的 @parallels
聊天参与者,您可以使用自然语言轻松执行大多数虚拟机操作。例如,您可以说“@parallels start the Windows 11 VM”,聊天参与者将代表您执行操作。
PostgreSQL
PostgreSQL 是一个非常流行的关系型数据库平台,您现在可以使用 PostgreSQL 聊天参与者扩展直接与其聊天。@pg
聊天参与者将学习您的数据库模式并根据数据库模式为您提供答案。您还可以使用它生成模式、获取 SQL 查询帮助,甚至生成与数据库交互的代码。
后续步骤
我们才刚刚开始。与 VS Code 中的所有产品计划一样,我们将随着时间的推移扩展我们的 AI 可扩展性能力。我们预计以下功能将在今年晚些时候推出
- 意图检测,以便自动调用聊天参与者
- 支持 GPT-4o 语言模型
- 增加模型请求的 token 限制(当前限制为 4K token)
- 编辑器内联聊天、终端和笔记本中的聊天参与者
- 变量解析 API - 允许扩展贡献聊天变量,这些变量提供来自扩展领域上下文
- 工具 API – 将自然语言转换为带参数的工具调用;允许扩展注册可由其他参与者调用的工具
今天向所有人开放!
聊天和语言模型 API 今天已在 VS Code Insiders 中提供,并将于 7 月初在 VS Code Stable 中提供。通过我们的文档和示例,可以轻松开始构建强大的 AI 扩展。如果您有问题或反馈,可以在我们的仓库中提交一个问题。
今天您就可以将依赖于语言模型和聊天 API 的扩展发布到 VS Marketplace。真正的问题是:您将创造出哪些令人惊叹的扩展?可能性是无限的,只有您才能将这些创新想法变为现实。所以,投入到我们出色的扩展开发流程中,利用正确的用户上下文发挥 AI 的力量,让您的创造力塑造开发的未来!构建本身就是乐趣所在——去享受它吧!
谢谢,
Isidor 和 VS Code 团队