COPILOT是一个基于AI的编程辅助工具,它可以帮助程序员自动编写代码,提高开发效率。COPILOT的插件主要是为了将其功能集成到不同的编程环境中,方便程序员使用。
目前,COPILOT支持多种编程环境,包括Visual Studio Code、Visual Studio、Neovim和JetBrains IDE等。针对这些编程环境,COPILOT提供了相应的插件,如GitHub Copilot插件、VS Code Copilot插件等。这些插件的安装方法可能因编程环境和版本而异,但通常可以通过插件市场或官方文档进行安装。
需要注意的是,COPILOT插件的使用需要申请,并且需要支付一定的费用。此外,使用COPILOT插件时需要遵守相应的使用协议和规定,以确保合法性和安全性。
总的来说,COPILOT插件是一个非常实用的工具,它可以帮助程序员更高效地编写代码,减少重复劳动,提高开发效率。
插件的架构
插件由三部分组成:
-
在您自己的服务器上运行并执行任务的 API。
-
以 YAML 或 JSON 文件形式提供的 API 规范,使用 OpenAPI 架构描述 API。例如。
openapi.yaml
-
插件清单,作为名为 的 JSON 文件,Microsoft Copilot 使用它来了解何时以及如何使用插件。
ai-plugin.json
API、API 规范和插件清单都托管在您自己的服务器上:
应用程序接口
插件中处理用户操作的部分是您的 API。您的 API 公开了端点,使用户能够使用您的插件实现他们需要完成的任务 - 例如,定义端点的房地产插件。/get-listings
您可以使用首选的服务器端编程语言以任何方式实现此 API。确保将 API 托管在可通过 HTTPS 访问 Internet 的服务器上。
API 规范
您必须使用 YAML 或遵循 OpenAPI 架构的 JSON 文件(例如 .Microsoft Copilot 需要您的 API 规范才能知道您的 API 公开了哪些端点、如何向它们发送请求以及如何读取响应。openapi.yaml
插件不会直接向用户显示其 API 调用的结果。安装插件的 Microsoft Copilot 体验使用 API 规范读取 API 响应,然后根据 API 返回的数据生成用户响应:
插件清单
插件清单是一个名为 的 JSON 文件,其中包含有关插件的元数据。Microsoft Copilot 使用此清单来了解何时以及如何使用您的插件。ai-plugin.json
根据插件描述和用户提出的问题,Microsoft Copilot 可以决定调用您的插件来响应用户。
清单文件不包含代码,而是包含插件的自然语言描述。支持 Microsoft Copilot 的大型语言模型会读取您的插件描述,并可以决定您的插件是否可用于帮助用户解决他们的问题。
下面是一个房地产插件的示例清单文件,可在 :contoso.com
{
"schema_version": "v1",
"name_for_model": "contosorealestate",
"description_for_model": "Plugin for finding properties for sale on the market in a particular city, and with a given number of bedrooms, bathrooms, and amenities",
"name_for_human": "Contoso Real Estate",
"description_for_human": "Find up to date and detailed real estate properties for sale on the market",
"api": {
"type": "openapi",
"url": "https://contoso.com/openapi.yaml",
"is_user_authenticated": false
},
"auth": {
"type": "none"
},
"logo_url": "https://contoso.com/logo.png",
"contact_email": "contact@contoso.com",
"legal_info_url": "https://contoso.com/legal/"
}
插件使用流程
概括地说,以下是插件在 Microsoft Copilot 中的使用方式。以下步骤给出了一个基于虚构插件的示例,该插件可以根据搜索条件(例如城市)查找房地产列表。若要了解如何自行构建此房地产插件示例,请参阅开始构建 Microsoft Copilot 插件。
# | 步骤 | 例子 |
---|---|---|
1 | 用户在 Microsoft Copilot 体验的聊天 UI 中提问。 | “在纽约寻找 4 居室待售房产” |
2 | Microsoft Copilot 根据插件描述和 API 规范评估问题,并决定是否使用插件来帮助回答问题。 | 该插件的描述是“用于查找特定城市市场上待售物业的插件,并具有给定数量的卧室、浴室和便利设施”。该插件的 API 公开了一个名为 的端点,该端点被描述为“获取与指定条件匹配的属性列表”。get-listings |
3 | Microsoft Copilot 通过使用插件的 OpenAPI 规范来调用插件 API,以生成正确的 API 请求。 | Microsoft Copilot 向 发送 API 请求。https://contoso.com/get-listings?city=New+York&bedrooms=4 |
4 | 插件 API 接收请求并返回响应。 | API 返回的数据,例如 .[{"title": "Luminous apartment in the heart of the city", "city": "New York", "bedrooms": 4, "description": "..."}] |
5 | Microsoft Copilot 使用插件的 OpenAPI 规范从响应中提取信息。 | |
6 | Microsoft Copilot 通过使用其训练数据、自然语言生成能力和 API 响应中的信息来制定对用户的最终响应。 | “以下是纽约一些待售的公寓,有 4 间卧室:......” |