注意
GitHub 中的 GitHub Copilot Chat 目前处于公开预览阶段,可能会发生变化。
概述
GitHub 中的 GitHub Copilot Chat 是一款聊天界面,可让您在 GitHub 网站上询问并获得与编码相关的答案。
Copilot Chat 可以帮助您完成各种与编码相关的任务,例如为您提供代码建议、提供代码功能和用途的自然语言描述、为您的代码生成单元测试以及提出修复代码中错误的建议。有关更多信息,请参阅“在 GitHub 中负责任地使用 GitHub Copilot Chat”。
在 GitHub 上,您可以使用 Copilot Chat 询问
- 一般软件相关问题,无需特定上下文。有关更多信息,请参阅“询问有关软件开发的一般问题”。
- 在特定存储库上下文中提出的探索性问题。有关更多信息,请参阅“询问有关存储库的探索性问题”。
- 在特定存储库、文件或符号上下文中提出的问题。有关更多信息,请参阅“询问有关特定文件或符号的问题”。
- 有关特定文件或文件中指定代码行的问题。有关更多信息,请参阅“询问有关特定代码片段的问题”。
- 有关拉取请求差异的问题。有关更多信息,请参阅“了解拉取请求中的更改”。
- 有关特定问题的问题。有关更多信息,请参阅“询问有关特定问题或讨论的问题”。
局限性
- 如果您询问有关您选择作为上下文的特定存储库的问题,并且该存储库尚未编入语义代码搜索索引,则聊天回复可能不是最佳的。任何拥有 GitHub Copilot 订阅并对存储库具有写入权限的用户都可以为该存储库编制索引。有关更多信息,请参阅“为 Copilot Chat 编制存储库索引”。
- 在某些情况下,如果使用非常大的文件或大量文件作为问题的上下文,Copilot Chat 的结果质量可能会降低。
由技能提供支持
Copilot 由一组技能提供支持,这些技能会根据您提出的问题动态选择。您可以通过单击以下内容来了解 Copilot 使用了哪种技能以展开聊天窗口中的状态信息。
您可以明确要求 GitHub 中的 GitHub Copilot Chat 使用特定技能 - 例如,使用 Bing 技能从 OpenAI 查找最新的 GPT4 模型
。
当前可用的技能
您可以通过询问 Copilot 来生成当前可用技能的列表:有哪些技能可用?
您可以在 GitHub 中的 Copilot Chat 中使用的技能包括下表中显示的技能。
技能 | 描述 | 默认启用? | 示例问题 |
---|---|---|---|
提交详细信息 | 检索提交列表或特定提交的内容,以提供与提交相关的答案。 | 是 | 解释此提交中代码的更改 |
讨论详细信息 | 检索特定的 GitHub 讨论。这对于快速了解讨论中的对话要点很有用。 | 是 | 总结此讨论 |
文件详细信息 | 检索 Git 存储库默认分支中的特定文件,允许您询问有关该文件及其最近更改的问题。当您提供存储库中文件的精确路径时,此技能非常有用。 | 是 | user_auth.js 封装了什么逻辑? user_auth.js 的文件历史记录是什么? |
GitHub 高级安全 | 从 GitHub 高级安全功能(代码扫描、密钥扫描和 Dependabot 警报)检索有关组织内安全警报的信息。 | 是 | 我该如何修复此代码扫描警报? |
问题详细信息 | 检索特定的 GitHub 问题,包括问题的标题、编号、作者、状态、正文、链接的拉取请求、评论和时间戳。 | 是 | 总结此问题的对话并建议后续步骤 |
词汇代码搜索 | Git 存储库默认分支中的关键字代码搜索。当您想知道代码中是否存在特定函数、方法或关键字时,此技能非常有用。此技能利用了GitHub 搜索(如symbol 和path )的大部分可用功能。 | 是 | 为我查找 GitService 类的测试 |
拉取请求详细信息 | 检索特定的拉取请求。这使您可以询问有关拉取请求的问题,包括获取拉取请求的摘要、其评论或其更改的代码。 | 是 | 为我总结此 PR 总结此 PR 中的更改 |
发布详细信息 | 检索最新或指定的发布。这使您可以了解谁创建了发布、何时发生以及发布说明中包含的信息。 | 是 | 最新的发布是什么时候? |
存储库详细信息 | 检索特定的 GitHub 存储库。这对于查找存储库所有者和使用的主要语言等详细信息很有用。 | 是 | 告诉我有关此存储库的信息 |
语义代码搜索 | Git 存储库默认分支中的自然语言语义代码搜索。当您想知道代码中某些功能的实现位置或方式时,此技能非常有用。注意:这需要为存储库启用索引(请参阅“为 Copilot Chat 编制存储库索引”)。 | 是 适用于所有拥有 Copilot Enterprise 订阅的存储库,以及适用于拥有 Copilot Individual 或 Copilot Business 订阅的公共存储库。 | 此存储库如何管理 HTTP 请求和响应? |
支持搜索 | 从GitHub 支持门户检索信息。此技能对于询问 Copilot Chat 有关 GitHub 产品和支持相关问题很有用。 | 是 | 我可以在 Copilot Individual 中使用 Copilot 知识库吗? |
网络搜索 | 使用必应搜索引擎搜索网络。此技能对于向 Copilot 教授近期事件、新发展、趋势、技术或极其具体、详细或利基主题很有用。 | 否 对于 Copilot Individual 在您的用户设置中启用。 对于 Copilot Business 在组织设置中启用。 | 关于 SAT 令牌保护 Node 中漏洞的一些最新文章是什么? |
Copilot Chat 的 AI 模型
注意
Copilot Chat 中的多模型支持处于公开预览阶段,可能会发生变化。
以下模型目前可通过多模型 Copilot Chat 获得
- GPT 4o:这是默认的 Copilot Chat 模型。它是一个用途广泛的多模态模型,在文本和图像处理方面表现出色,旨在提供快速、可靠的响应。它在非英语语言方面也具有卓越的性能。详细了解模型的功能并查看模型卡片。Gpt-4o 托管在 Azure 上。
- Claude 3.5 Sonnet:该模型在整个软件开发生命周期中的编码任务中表现出色,从初始设计到错误修复,从维护到优化。详细了解模型的功能或阅读模型卡片。GitHub Copilot 使用托管在 Amazon Web Services 上的 Claude 3.5 Sonnet。
- o1-preview:此模型专注于高级推理和解决复杂问题,尤其是在数学和科学领域。它的响应速度比
gpt-4o
模型慢。您每天可以向此模型发出 10 个请求。详细了解模型的功能并查看模型卡片。o1-preview 托管在 Azure 上。 - o1-mini:这是
o1-preview
模型的更快版本,在使用复杂推理和需要更快响应之间取得平衡。它最适合代码生成和小型上下文操作。您每天可以向此模型发出 50 个请求。详细了解模型的功能并查看模型卡片。o1-mini 托管在 Azure 上。
有关 o1 模型的更多信息,请参阅 OpenAI 平台文档中的模型。
有关 Anthropic 的 Claude 3.5 Sonnet 模型的更多信息,请参阅“在 GitHub Copilot 中使用 Claude 3.5 Sonnet”。
Copilot Chat 中 AI 模型的限制
- 如果您想在 GitHub 网站上使用上表中列出的技能,则必须使用
gpt-4o
模型。 - 模型的实验性预发布版本可能无法与所有过滤器正确交互,包括重复检测过滤器。
更改您的 AI 模型
注意
如果您使用 Copilot 扩展,它们可能会覆盖您选择的模型。
-
如果您通过 Copilot Business 订阅访问 Copilot Chat,则您的组织必须授予成员切换到不同模型的权限。请参阅“在您的组织中管理 Copilot 策略”。
-
在 GitHub 上任何页面的右下方,点击.
-
如果该面板包含您之前与 Copilot 进行的对话,请在面板的右上方点击.
-
在面板的右上方,选择下拉菜单,然后点击 进入沉浸式体验。多模型 Copilot Chat 目前仅在沉浸式视图中可用。
-
在沉浸式视图的左上方,选择CURRENT-MODEL下拉菜单,然后点击您选择的 AI 模型。
提出关于软件开发的一般性问题
您可以提出关于软件开发的一般性问题,这些问题不侧重于特定上下文,例如存储库。
根据您提出的问题以及您的企业和组织设置,Copilot 可能会使用基于必应搜索结果的信息进行响应。通过使用必应搜索,Copilot 可以根据当前互联网上可用的信息,回答各种与技术相关的问题,并提供最新的详细信息。有关如何启用或禁用必应搜索集成的信息,请参阅“管理 Copilot 策略(个人订阅者)”和“管理 Copilot 策略和功能(企业)”。
注意
GitHub 中 Copilot Chat 的必应搜索集成目前处于公开预览阶段,可能会发生变化。
-
在 GitHub 上的任何页面上,点击 GitHub Copilot 图标(位于页面右下方)。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果该面板包含您之前与 Copilot 进行的对话,请点击面板右上方的“新建对话”图标(加号)。
-
如果面板标题为“正在讨论 OWNER/REPOSITORY”,请点击所有存储库。
-
如果面板中显示“询问 Copilot”页面,请点击通用聊天。
-
在面板底部,在“询问 Copilot”框中,键入问题并按Enter。
您可以提出的一些一般性问题示例包括
- Go 编程语言有哪些优势?
- 什么是敏捷软件开发?
- 最流行的 JavaScript 框架是什么?
- 请提供一些正则表达式的示例。
- 编写一个 bash 脚本以输出今天的日期。
-
可选,点击在文本框中停止 Copilot 继续其响应。
-
如果 Copilot 使用必应搜索来回答您的问题,则响应上方会显示“必应搜索结果”。点击此链接查看 Copilot 用于回答您问题的搜索结果。
-
在对话线程中,您可以提出后续问题。Copilot 将在对话的上下文中进行回答。例如,您可以键入“告诉我更多”以让 Copilot 扩展其上一个评论。
您可以使用您的初始问题作为后续问题的基础。详细的基础提示可以帮助 Copilot 为您的后续问题提供更相关的答案。有关更多信息,请参阅 GitHub 博客上的“提示 GitHub Copilot Chat 成为您的个人 AI 辅助工具以实现可访问性”。
-
要返回到您之前与 Copilot 进行的对话,请点击面板右上方的“查看对话”图标(时钟表盘周围环绕着一个圆形箭头)。
询问有关存储库的探索性问题
Copilot 允许您使用自然语言问题来探索 GitHub 上的存储库。这可以帮助您更好地了解代码库中特定方面的实现位置。
-
在 GitHub 网站上,转到您要聊天的存储库。
-
点击 GitHub Copilot 图标(位于页面右下方)。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
面板顶部的标题应为“正在讨论”,后跟当前存储库的名称。
如果显示了错误的存储库名称,因为您之前正在讨论另一个存储库,请点击所有存储库,然后选择您要聊天的存储库。
-
在聊天面板底部的“询问 Copilot”框中,键入问题并按Enter。
例如,您可以询问
- 最近的版本是什么时候发布的?
- 在我们的 API 中,速率限制是在哪里实现的?
- WidgetFactory 类是如何工作的?
- 更新电话号码的代码在哪里?
- SAT 令牌是在哪里生成的?
- 显示分配给 USERNAME 的最近更新的问题
- 列出有关 SUBJECT 的未解决问题
- USERNAME 最后合并的 PR 是什么?
- USERNAME 对主分支的最新提交是什么?
Copilot 在聊天面板中回复。
注意
当存储库已为语义代码搜索建立索引时,Copilot 回答存储库上下文中此类自然语言问题的能力会得到提升。当您开始具有存储库上下文的对话时,会显示存储库的索引状态。有关更多信息,请参阅“为 Copilot Chat 建立存储库索引”。
-
可选,点击在文本框中停止 Copilot 继续其响应。
-
要返回到您之前与 Copilot 进行的对话,请点击面板右上方的“查看对话”图标(时钟表盘周围环绕着一个圆形箭头)。
询问有关特定文件或符号的问题
您可以向 Copilot 询问存储库中的特定文件或符号。
注意
“符号”是代码中的命名实体。这可以是变量、函数、类、模块或代码库中任何其他标识符。
-
在 GitHub 上的任何页面上,点击 GitHub Copilot 图标(位于页面右下方)。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果该面板包含您之前与 Copilot 进行的对话,请点击面板右上方的“新建对话”图标(加号)。
-
如果面板中未显示“询问 Copilot”页面,请点击所有存储库。
-
在“询问 Copilot”页面上,选择一个代码仓库来为您的问题提供上下文。
例如,您可以选择一个您希望更好地理解其代码的代码仓库。
如果您没有看到要使用的代码仓库,可以搜索代码仓库。
-
单击聊天面板底部的“附加文件或符号”按钮(一个回形针图标),然后搜索并选择一个或多个文件和符号。
-
在“询问 Copilot”框中,键入问题并按Enter。
Copilot 在聊天面板中回复。
注意
当代码仓库已编制索引以进行语义代码搜索时,Copilot 回答代码仓库上下文中的自然语言问题的能力会得到提高。当您开始具有代码仓库上下文的对话时,会显示代码仓库的索引状态。有关更多信息,请参阅“为 Copilot Chat 编制代码仓库索引”。
-
可选,点击在文本框中停止 Copilot 继续其响应。
-
要返回到您之前与 Copilot 进行的对话,请点击面板右上方的“查看对话”图标(时钟表盘周围环绕着一个圆形箭头)。
询问有关特定代码段的问题
您可以与 Copilot 聊天,讨论代码仓库中的文件,或讨论文件内特定代码行。
-
在 GitHub 上,导航到代码仓库并打开文件。
-
执行以下操作之一
-
要询问有关整个文件的问题,请单击文件视图右上方的 Copilot 图标()。
-
要询问有关文件内特定代码行的问题
- 通过单击要选择的第一个代码行的行号,按住Shift并单击要选择的最后一个代码行的行号来选择这些代码行。
- 要询问您自己有关所选代码行的问题,请单击选择右侧的 Copilot 图标()。这将显示 GitHub Copilot 聊天面板,其中所选代码行被指示为问题上下文。
- 要询问预定义的问题,请单击 Copilot 图标旁边的向下箭头按钮,然后选择其中一个选项。
-
-
如果单击了 Copilot 图标,请在聊天面板底部的“询问 Copilot”框中键入问题并按Enter。
例如,如果您要询问有关整个文件的问题,则可以输入
- 解释此文件。
- 我如何改进此代码?
- 如何测试此脚本?
如果您要询问有关特定代码行的问题,则可以输入
- 解释所选代码行处的函数。
- 我如何改进此类?
- 在此代码中添加错误处理。
- 为此方法编写单元测试。
Copilot 在面板中响应您的请求。
-
可选,点击在文本框中停止 Copilot 继续其响应。
-
您可以通过询问后续问题来继续对话。例如,您可以键入“告诉我更多”以让 Copilot 扩展其上一个评论。
-
要清除、删除或重命名当前对话线程,或启动新线程,请在“询问 Copilot”框中键入
/
,从显示的选项中选择,然后按Enter。 -
要以沉浸模式查看对话(仅显示对话线程),请单击对话线程右上方的,然后单击 将对话切换到沉浸模式.
询问有关 GitHub 高级安全警报的问题
当这些警报由 GitHub 高级安全功能(代码扫描、密钥扫描和 Dependabot 警报)生成时,Copilot 允许您使用自然语言问题来询问组织中代码仓库的安全警报。
-
在 GitHub 上的任何页面上,点击 GitHub Copilot 图标(位于页面右下方)。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果该面板包含您之前与 Copilot 进行的对话,请点击面板右上方的“新建对话”图标(加号)。
-
如果面板中未显示“询问 Copilot”页面,请点击所有存储库。
-
在“询问 Copilot”页面上,选择一个代码仓库来为您的问题提供上下文。
例如,您可以选择一个您希望更好地理解其安全警报的代码仓库。
如果您没有看到要使用的代码仓库,可以搜索代码仓库。
-
在“询问 Copilot”框中,键入问题并按Enter。
例如,您可以询问
- 我将如何修复此警报?
- 此拉取请求有多少个警报?
- 此代码扫描警报引用的是哪一行代码?
- 此 Dependabot 警报影响的是哪个库?
Copilot 在聊天面板中回复。
-
可选,点击在文本框中停止 Copilot 继续其响应。
-
要返回到您之前与 Copilot 进行的对话,请点击面板右上方的“查看对话”图标(时钟表盘周围环绕着一个圆形箭头)。
询问有关特定拉取请求的问题
您可以要求 Copilot 总结拉取请求,或解释拉取请求中特定文件或代码行发生了哪些更改。
获取拉取请求的摘要
-
在 GitHub 上,导航到代码仓库中的拉取请求。
-
在页面右下方,单击 GitHub Copilot 图标。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果面板包含您之前与 Copilot 进行的对话,请单击Copilot 面板右上方的加号图标以开始新的对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框中,键入问题并按Enter。
例如,您可以询问
- 为我总结此 PR。
- 总结此 PR 中的评论。
- 总结此 PR 中的更改。
-
可选,点击在文本框中停止 Copilot 继续其响应。
询问有关拉取请求中特定文件的更改
-
在 GitHub 上,导航到代码仓库中的拉取请求。
-
单击已更改的文件选项卡。
-
单击文件右上方的,然后单击询问 Copilot 有关此差异。
-
在聊天面板底部的“询问 Copilot”框中键入问题并按Enter。
例如,您可以询问
- 此文件的目的是什么?
- 为什么包含此模块?
-
可选,点击在文本框中停止 Copilot 继续其响应。
询问有关拉取请求中文件内特定代码行的问题
-
在 GitHub 上,导航到代码仓库中的拉取请求。
-
单击已更改的文件选项卡。
-
单击要选择的第一个代码行的行号,然后按住Shift并单击要选择的最后一个代码行的行号。
-
询问 Copilot 问题,或从预定义问题列表中选择。
-
要询问您自己有关所选代码行的问题,在选择右侧,单击Copilot 图标。这将显示 GitHub Copilot 聊天面板,其中所选代码行被指示为问题上下文。
例如,您可以询问
- 此行中的
actorData
是什么? - 解释此
do..end
块。
- 此行中的
-
要询问预定义的问题,在选择右侧,在Copilot 图标旁边,单击,然后单击解释。
-
-
可选,点击在文本框中停止 Copilot 继续其响应。
询问工作流失败的原因
注意
此功能目前处于公开预览阶段,可能会发生更改。
-
在 GitHub 上,导航到代码仓库中的拉取请求。
-
滚动到页面底部,然后在其中一个失败的检查旁边,单击详细信息。
-
在页面右下方,单击 GitHub Copilot 图标。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果面板包含您之前与 Copilot 进行的对话,请单击Copilot 面板右上方的加号图标以开始新的对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框中,询问 Copilot 拉取请求失败的原因,然后按Enter。
例如,您可以询问
- 告诉我此作业失败的原因
- 建议修复此错误
Copilot 将回复有关拉取请求失败原因的信息。Copilot 还可以提供有关如何解决问题的建议。
- 如果 Copilot 提供了解决问题的步骤,您可以按照这些步骤解决问题。
- 可选,点击在文本框中停止 Copilot 继续其响应。
询问有关特定问题或讨论的问题
您可以要求 Copilot 总结或回答有关特定问题或讨论的问题。
注意
在处理正文非常长或评论数量非常多的问题或讨论时,Copilot Chat 的响应质量可能会下降。例如,如果您要求 Copilot 总结长时间运行的讨论,可能会发生这种情况。如果发生这种情况,Copilot 将会警告您,以便您可以仔细检查其输出。
-
导航到 GitHub 上的问题或讨论。
-
在页面右下方,单击 GitHub Copilot 图标。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果面板包含您之前与 Copilot 进行的对话,请单击Copilot 面板右上方的加号图标以开始新的对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框中,键入问题并按Enter。例如,您可以输入
-
解释此问题
-
总结此讨论
-
建议此问题的后续步骤
-
此问题的验收标准是什么?
-
PERSON 在此讨论中提出的要点是什么?
提示
无需在浏览器中导航到问题或讨论以询问问题,您可以在消息中包含相关 URL。例如,
Summarize https://github.com/monalisa/octokit/issues/1
。Copilot 在面板中响应您的请求。
-
-
可选,点击在文本框中停止 Copilot 继续其响应。
询问有关特定提交的问题
您可以要求 Copilot 解释提交中的更改。
-
导航到 GitHub 上的提交。
-
在页面右下方,单击 GitHub Copilot 图标。
GitHub Copilot Chat 面板将显示。要调整面板大小,请点击并拖动顶部或左边缘。
-
如果面板包含您之前与 Copilot 进行的对话,请单击Copilot 面板右上方的加号图标以开始新的对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框中,键入问题并按Enter。例如,您可以输入
-
总结此提交中的更改
-
谁提交了这些更改?
-
此提交是在何时进行的?
提示
如果您知道提交的 SHA,则无需导航到提交,而是可以通过在消息中包含 SHA 来从 GitHub 上代码仓库的任何页面询问 Copilot 有关提交的信息。例如,
What changed in commit a778e0eab?
-
-
可选,点击在文本框中停止 Copilot 继续其响应。
从搜索栏访问 Copilot Chat
您可以通过在代码仓库的主搜索框中键入您的问题来询问 Copilot 有关整个代码仓库的问题。
-
导航到 GitHub 上的代码仓库。
-
按/,或单击页面顶部的主要搜索框。
-
在搜索框中,在
repo:OWNER/REPO
之后,键入您要询问 Copilot 的问题。例如,您可以输入
- 此代码仓库的功能是什么?
- 在此代码库中,身份验证是在哪里实现的?
- 此代码仓库中的许可证文件检测是如何工作的?
-
单击询问 Copilot。
GitHub Copilot 聊天面板将显示,Copilot 将响应您的请求。
-
可选,点击在文本框中停止 Copilot 继续其响应。
扩展 GitHub 中的 Copilot Chat
注意
GitHub Copilot 扩展程序处于公开预览阶段,可能会发生更改。
GitHub Copilot 扩展程序将外部工具的功能集成到 Copilot Chat 中,帮助您减少上下文切换并接收具有特定领域上下文的响应。您可以从 GitHub Marketplace 安装 Copilot 扩展程序,或在您的组织内构建私有扩展程序,然后在聊天窗口中键入@
以查看可用扩展程序的列表。要使用扩展程序,请从列表中选择扩展程序或键入完整的小写蛇形命名法名称,然后键入您的提示。
要了解更多信息,请参阅“使用扩展程序将外部工具与 Copilot Chat 集成”。
在 GitHub 中分享有关 GitHub Copilot Chat 的反馈
注意
提供有关 Copilot 拉取请求摘要的反馈的功能取决于企业设置。有关更多信息,请参阅“管理企业中 Copilot 的策略和功能”。
要提供有关特定 Copilot Chat 响应的反馈,请单击每个聊天响应底部的竖起大拇指或向下的大拇指图标。
要提供有关 Copilot Chat 的一般反馈,请单击聊天面板右上方的省略号(...),然后单击提供反馈。