Skip to main content

构建 Copilot 技能集

了解构建 Github Copilot skillsets 以及将自定义工具和函数集成到 Copilot 环境中的步骤。

Note

GitHub Copilot Extensions 为 公共预览版,可能随时更改。

简介

Github Copilot skillsets 是一种简化的方式,通过定义 Copilot 可以调用的 API 终结点来扩展 GitHub Copilot 的功能。 当你创建一个技能集时,Copilot 会处理所有的 AI 交互,而你的终结点则提供数据或功能。 本指南将引导你完成在你的 GitHub App 内配置和部署技能集的操作。

先决条件

在开始之前,请确保具有以下各项:

  1. 一个已配置的 GitHub App:你将需要一个 GitHub App 来充当你的技能集的容器。 如果尚未设置,请参阅“为 Copilot 扩展创建 GitHub 应用”和“为 Copilot 扩展配置 GitHub Apps”。
  2. API 终结点:每个技能都需要一个终结点****。 每个终结点必须:
    • 接受具有 application/json MIME 类型的 POST 请求
    • 能够验证来自 GitHub 的请求的签名,以对其来源进行身份验证并防止未经授权的访问
    • 可通过 HTTPS 公开访问

有关签名验证的更多信息,请参阅验证有效负载是否来自 GitHub

配置要求

每个技能集都在 GitHub App 中定义。 单个 GitHub App 最多可以包含五项技能。 每个技能需要:

  • 名称:一个清晰且具有描述性的名称(例如,“获取问题”)****。
  • 推理描述:对技能的功能以及何时使用它的详细说明(例如,“搜索符合特定条件(如状态和标签)的外部问题”)****。
  • API 终结点:接受 JSON 请求的 POST 终结点****。
  • JSON 架构:终结点所需的数据结构****。

示例 JSON 架构

这个示例展示了一个需要两个参数的技能:状态字符串和标签字符串。 如果未提供任何参数,则必须将一个类型为“object”的空对象作为请求体传入。

{
 "type": "object",
 "properties": {
   "status": {
     "type": "string",
     "description": "filter issues by status (open, closed)",
     "enum": ["open", "closed"]
   },
   "label": {
     "type": "string",
     "description": "filter issues by label"
   }
 }
}

这种格式允许用户发出诸如 find open security issues 这样的自然语言请求,并且 将会构建合适的 API 调用。

使用技能集

要使用技能集:

  1. 键入 @ 后跟扩展的名称。

  2. 使用自然语言键入提示。

    例如:

    • @skillset-example generate a lorem ipsum
    • @skillset-example give me sample data with 100 words

Copilot 会解读你的请求,并使用正确的参数调用相应的技能。 无需指定要使用哪个技能 -Copilot 会根据你的自然语言请求以及所提供的推理描述来确定这一点。

设置技能集

  1. 在 GitHub 上任意页的右上角,单击你的个人资料照片。
  2. 导航到你的帐户设置。
    • 对于由个人帐户拥有的应用,请单击“设置”****。
    • 对于组织拥有的应用:
      1. 单击“你的组织”。
      2. 在组织右侧,单击“设置”。
  3. 在左侧边栏中,单击“ 开发人员设置”。
  4. 在左侧边栏中,单击“GitHub Apps”。
  5. 在 GitHub Apps 列表中,单击你想要为技能集进行配置的 GitHub App。
  6. 在左侧的导航菜单中,选择“Copilot”****。
  7. 在“App Type”下,从下拉菜单中选择“Skillset”********。
  8. (可选操作)在“Pre-authorization URL”字段中,输入用户将被重定向到以启动身份验证流程的 URL****。 如果 API 要求用户连接他们的 GitHub 帐户以访问某些功能或数据,那么这一步是必要的。
  9. 对于你想要添加的每项技能(最多 5 项):
    1. 单击“Add new skill”****。
    2. 为技能输入一个清晰的名称(例如“Generate Lorem Ipsum Data”)。****
    3. 编写一个详细的推理描述,以帮助 Copilot 理解何时使用该技能****。
    4. 添加将接收 POST 请求的 API 终结点 URL****。
    5. 在“Parameter”字段中,添加定义预期请求格式的 JSON 架构****。
    6. 单击“Add Definition”以保存技能****。
  10. 单击“Save”以保存技能集****。