Skip to main content

构建 Copilot 技能集

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

简介

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”以保存技能集****。