Note
GitHub Copilot Extensions 为 公共预览版,可能随时更改。
简介
Github Copilot skillsets 是一种简化的方式,通过定义 Copilot 可以调用的 API 终结点来扩展 GitHub Copilot 的功能。 当你创建一个技能集时,Copilot 会处理所有的 AI 交互,而你的终结点则提供数据或功能。 本指南将引导你完成在你的 GitHub App 内配置和部署技能集的操作。
先决条件
在开始之前,请确保具有以下各项:
- 一个已配置的 GitHub App:你将需要一个 GitHub App 来充当你的技能集的容器。 如果尚未设置,请参阅“为 Copilot 扩展创建 GitHub 应用”和“为 Copilot 扩展配置 GitHub Apps”。
- 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 调用。
使用技能集
要使用技能集:
-
键入
@
后跟扩展的名称。 -
使用自然语言键入提示。
例如:
@skillset-example generate a lorem ipsum
@skillset-example give me sample data with 100 words
Copilot 会解读你的请求,并使用正确的参数调用相应的技能。 无需指定要使用哪个技能 -Copilot 会根据你的自然语言请求以及所提供的推理描述来确定这一点。
设置技能集
- 在 GitHub 上任意页的右上角,单击你的个人资料照片。
- 导航到你的帐户设置。
- 对于由个人帐户拥有的应用,请单击“设置”****。
- 对于组织拥有的应用:
- 单击“你的组织”。
- 在组织右侧,单击“设置”。
- 在左侧边栏中,单击“ 开发人员设置”。
- 在左侧边栏中,单击“GitHub Apps”。
- 在 GitHub Apps 列表中,单击你想要为技能集进行配置的 GitHub App。
- 在左侧的导航菜单中,选择“Copilot”****。
- 在“App Type”下,从下拉菜单中选择“Skillset”********。
- (可选操作)在“Pre-authorization URL”字段中,输入用户将被重定向到以启动身份验证流程的 URL****。 如果 API 要求用户连接他们的 GitHub 帐户以访问某些功能或数据,那么这一步是必要的。
- 对于你想要添加的每项技能(最多 5 项):
- 单击“Add new skill”****。
- 为技能输入一个清晰的名称(例如“Generate Lorem Ipsum Data”)。****
- 编写一个详细的推理描述,以帮助 Copilot 理解何时使用该技能****。
- 添加将接收 POST 请求的 API 终结点 URL****。
- 在“Parameter”字段中,添加定义预期请求格式的 JSON 架构****。
- 单击“Add Definition”以保存技能****。
- 单击“Save”以保存技能集****。