概述
GitHub Copilot Chat in GitHub 是一个聊天界面,可允许在 GitHub 上询问编码相关问题并接收答案。
Copilot Chat 可帮助你完成各种编码相关任务,例如提供代码建议、提供代码片段功能和用途的自然语言说明、为代码生成单元测试,以及为代码中的 bug 建议修复。 有关详细信息,请参阅“在 GitHub 中负责任地使用 GitHub Copilot 聊天”。
在 GitHub 上,可以使用 Copilot Chat 询问以下问题:
- 与软件相关的一般问题,没有特定的上下文。 有关详细信息,请参阅询问有关软件开发的一般问题。
- 在特定存储库上下文中提出的探索性问题。 有关更多信息,请参阅询问有关存储库的探索性问题。
- 在特定存储库、文件或符号上下文中提出的问题。 有关更多信息,请参阅询问有关特定文件或符号的问题。
- 有关特定文件或文件中指定代码行的问题。 有关详细信息,请参阅询问有关特定代码段的问题。
- 有关拉取请求差异的问题。 有关更多信息,请参阅了解拉取请求中的更改。
- 有关特定问题的问题。 有关详细信息,请参阅询问有关特定议题或讨论的问题。
限制
- 在某些情况下,如果将非常大的文件或大量文件用作问题上下文,则 Copilot Chat 的结果质量可能会降级。
由技能提供支持
使用 GPT-4o 和 Claude 3.5 Sonnet 模型时,Copilot 可以访问一组技能,从 GitHub 获取数据,这些技能会根据你提问的问题动态进行选择。 可以通过单击 展开聊天窗口中的状态信息,以判断所使用的技能 Copilot。
可以明确要求 GitHub Copilot Chat in GitHub 使用某个特定技能,例如 Use the Bing skill to find the latest GPT4 model from OpenAI
。
当前可用的技能
可以通过询问 Copilot 来生成当前可用的技能列表:What skills are available?
可在 Copilot Chat in GitHub 中使用的技能包括下表中显示的技能。
技能 | 说明 | 默认情况下是否启用? | 示例问题 |
---|---|---|---|
提交详细信息 | 检索一组提交内容或特定提交内容,以提供与提交内容相关的问题的答案。 | 是 | Explain the changes in the code of this commit |
讨论详细信息 | 检索特定的 GitHub 讨论。 这对于快速获取讨论中的对话 Gist 非常有用。 | 是 | Summarize this discussion |
文件详细信息 | 检索 Git 存储库中默认分支的特定文件,以方便你询问有关该文件以及最近更改的问题。 当你在存储库中提供文件的确切路径时,此技能非常有用。 | 是 | What logic does user_auth.js encapsulate? What is the file history of user_auth.js? |
GitHub Advanced Security | 从 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts)检索有关组织内安全警报的信息。 | 是 | How would I fix this code scanning alert? |
问题详细信息 | 检索特定 GitHub 问题,包括问题的标题、编号、作者、状态、正文、链接的拉取请求、注释和时间戳。 | 是 | Summarize the conversation on this issue and suggest next steps |
词法代码搜索 | Git 存储库默认分支中的关键字代码搜索。 当想要了解代码中存在的特定函数、方法或关键字时,此技能很有用。 此技能利用 GitHub 搜索的大多数功能,例如 symbol 和 path 。 | 是 | Find me the tests for the GitService class |
拉取请求详细信息 | 检索特定的拉取请求。 这有利于你询问有关该拉取请求的问题,包括获取拉取请求的摘要、其注释或更改的代码。 | 是 | Summarize this PR for me Summarize the changes in this PR |
版本详细信息 | 检索最新版本或指定版本。 这样即可了解谁创建了发布、何时创建的发布以及发行说明中包含的信息。 | 是 | When was the latest release? |
存储库详细信息 | 检索特定的 GitHub 存储库。 这对于查找详细信息(例如存储库所有者和使用的主要语言)非常有用。 | 是 | Tell me about this repo |
语义代码搜索 | Git 存储库默认分支中的自然语言语义代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 | 是 适用于具有任何订阅的所有公共和专用存储库。 | How does this repo manage HTTP requests and responses? |
支持搜索 | 从 GitHub 支持门户 检索信息。 此技能可用于向 Copilot Chat 询问有关 GitHub 产品和支持相关问题。 | 是 | Can I use Copilot knowledge bases with Copilot Individual? |
Web 搜索 | 使用必应搜索引擎搜索网页。 此技能允许 Copilot 访问有关近期事件、新发展、趋势、技术或极为具体、详细或小众的主题的信息。 | 否 对于 Copilot Individual: 在用户设置中启用。 对于 Copilot Business: 在组织设置中启用。 | What are some recent articles about SAT tokens securing against vulnerabilities in Node? |
Copilot Chat 的 AI 模型
Note
Copilot Chat 中的多模型支持为 公共预览版,可能会更改。
Copilot Chat 的 AI 模型的限制
- 如果希望在 GitHub 网站上使用上表中列出的技能,则仅支持 GPT-4o 和 Claude 3.5 Sonnet 模型。
- 试验性预发布版本的模型可能无法与所有筛选器进行正确地交互,包括重复检测筛选器。
更改 AI 模型
Note
如果使用 Copilot Extensions,它们可能会替代所选的模型。
如果通过 订阅访问 Copilot Chat,则组织必须赋予成员切换到不同模型的能力。 请参阅“管理组织中的 Copilot 策略””。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
-
如果面板包含与 Copilot 的前一次对话,请单击面板右上角的。
-
在面板的右上角,单击“ 进入沉浸式对话”****。 多模型 Copilot Chat 目前仅支持沉浸式视图。
-
在沉浸式视图左上角,选择当前模型 下拉菜单,然后单击所选的 AI 模型。
询问有关软件开发的一般问题
可以询问与软件开发有关,但非侧重于特定上下文的一般问题,例如存储库。
根据询问的问题和企业及组织设置,Copilot 可能会根据必应搜索结果使用信息做出响应。 使用必应搜索,Copilot 可以根据 Internet 上当前提供的信息,用最新的详细信息回答各种与技术相关的问题。 若要了解如何启用或禁用必应搜索集成,请参阅“以单个订阅者身份管理 Copilot 策略”和“管理企业中 Copilot 的策略和功能”。
Note
必应搜索集成到 Copilot Chat in GitHub 目前为 公共预览版,可能会更改。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。
-
如果面板标题为“讨论所有者/存储库”,请单击“所有存储库”****。
-
如果面板中显示“询问 Copilot”页面,请单击“常规用途聊天”****。
-
在面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键。
可以询问的一般问题的部分示例包括:
- Go 编程语言的优点是什么?
- 什么是敏捷软件开发?
- 最热门的 JavaScript 框架是什么?
- 给我一些正则表达式的示例。
- 编写 bash 脚本以输出今天的日期。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
如果 Copilot 使用必应搜索来回答问题,则响应上方会显示“来自必应的结果”。 单击此项可查看 Copilot 用于回答问题的搜索结果。
-
在对话主题中,可以提出后续问题。 Copilot 将根据对话上下文回答。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。
可以将初始问题用作后续问题的基础。 详细的基础提示可以帮助 Copilot 提供和后续问题更相关的答案。 有关详细信息,请参阅 GitHub 博客上的提示 GitHub Copilot Chat 成为你的个人 AI 助手以实现辅助功能。
-
要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。
询问有关存储库的探索性问题
Copilot 允许你使用自然语言问题来浏览 GitHub 上的存储库。 这有助于更好地了解在何处实现代码库的特定方面。
-
在 GitHub 网站上,转到想要聊天讨论的存储库。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
面板顶部的标题应显示为“聊天讨论”,后跟当前存储库的名称。
如果显示错误的存储库名称,是因为你之前正在聊天讨论另一个存储库,请单击“所有存储库”****,然后选择要聊天讨论的存储库。
-
在聊天面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键。
例如,可以询问:
- 最新版本是什么时候发布的?
- 我们 API 中的速率限制在哪里实现?
- WidgetFactory 类如何工作?
- 更新电话号码的代码在哪里?
- 在何处生成 SAT 令牌?
- 显示分配给 USERNAME 的最近更新的问题
- 列出有关 SUBJECT 的未解决问题
- 上次按 USERNAME 合并的 PR 是什么
- 按 USERNAME 向主分支提交了哪些最新内容
Copilot 在聊天面板中回复。
Tip
如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。
询问有关特定文件或符号的问题
可以向 Copilot 询问有关存储库中特定文件或符号的信息。
Note
“符号”是代码中的命名实体。 这可以是变量、函数、类、模块或属于代码库的任何其他标识符。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。
-
如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。
-
在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。
例如,可以一个选择想要更好地了解其代码的存储库。
如果没有看到想要使用的存储库,可以进行搜索。
-
单击聊天面板底部的“附加文件或符号”按钮(一个回形针图标),然后搜索并选择一个或多个文件和符号。
-
在“询问 Copilot”框中,键入问题,然后按 Enter 键。
Copilot 在聊天面板中回复。
Tip
如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。
询问有关特定代码块的问题
可以与 Copilot 聊天,了解存储库中的文件,或文件中的特定代码行。
-
在 GitHub 中,导航到一个存储库并打开一个文件。
-
执行下列操作之一:
-
要询问有关整个文件的问题,请单击文件视图右上角的 Copilot 图标 ()。
-
询问有关文件中特定行的问题:
- 通过单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号来选择多行。
- 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标 ()。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
- 要提出预定义的问题,请单击 Copilot 图标旁的向下按钮,然后选择其中一个选项。
-
-
如果单击 Copilot 图标,请在聊天面板底部的“向 Copilot 询问问题”框中键入问题,然后按 Enter。
例如,如果要询问整个文件,可以输入:
- 说明此文件。
- 如何改进此代码?
- 如何测试此脚本?
如果要询问特定行,则可以输入:
- 说明所选行中的函数。
- 如何改进此类?
- 向此代码添加错误处理。
- 编写此方法的单元测试。
Copilot 将响应面板中的请求。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
可以通过提出后续问题来继续对话。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。
-
要清除、删除或重命名当前对话主题或启动新主题, 请在“询问 Copilot”框中键入
/
,从显示的选项中进行选择,然后按 Enter。 -
要查看沉浸式模式下的对话,仅显示对话会话,单击“ 进入沉浸式对话”****。
询问有关 GitHub Advanced Security 警报的问题
Copilot 允许在 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts 生成安全警报时,使用自然语言问题询问组织内存储库中的这些警报。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。
-
如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。
-
在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。
例如,可以选择一个存储库,其中包含你想要更好地了解的安全警报。
如果没有看到想要使用的存储库,可以进行搜索。
-
在“询问 Copilot”框中,键入问题,然后按 Enter 键。
例如,可以询问:
- 如何修复此警报?
- 此拉取请求有多少个警报?
- 此 code scanning 警报引用的是哪一行代码?
- 此 Dependabot 警报会影响哪个库?
Copilot 在聊天面板中回复。
Tip
如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。
询问有关特定拉取请求的问题
可以要求 Copilot 总结某个拉取请求,或说明拉取请求中特定文件或代码行中的更改。
获取拉取请求摘要
-
在 GitHub 上,导航到存储库中的拉取请求。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot Chat 面板底部的“询问 Copilot”框中,键入问题,然后按 Enter。
例如,可以询问:
- 请为我总结此 PR。
- 总结此 PR 中的注释。
- 汇总此 PR 中的更改。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
询问对拉取请求中特定文件的更改
-
在 GitHub 上,导航到存储库中的拉取请求。
-
单击“已更改的文件”**** 选项卡。
-
单击文件右上角的 ,然后单击询问 Copilot 以了解此差异。
-
在聊天面板底部的“询问 Copilot”框中键入问题,然后按 Enter 键。
例如,可以询问:
- 此文件的用途是什么?
- 为什么包含此模块?
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
询问有关拉取请求中文件内特定行的问题
-
在 GitHub 上,导航到存储库中的拉取请求。
-
单击“已更改的文件”**** 选项卡。
-
单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号。
-
向 Copilot 提问,或从预定义问题列表中选择。
-
要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
例如,可以询问:
- 此行中的
actorData
是什么? - 说明此
do..end
块。
- 此行中的
-
要询问预定义的问题,请在所选内容右侧的 Copilot 图标旁,单击 ,然后单击解释。
-
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
询问工作流失败的原因
-
在 GitHub 上,导航到存储库中的拉取请求。
-
滚动到页面底部,然后在其中一个失败的检查旁边单击“详细信息”。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot Chat 面板底部的“询问 Copilot”框中,询问 Copilot 拉取请求失败的原因,然后按 Enter。
例如,可以询问:
- 告诉我此作业失败的原因
- 建议此错误的修复
Copilot 将响应有关拉取请求失败原因的信息。 Copilot 也可能提供如何解决此问题的建议。
- 如果 Copilot 提供了修复该问题的步骤,则可以按照这些步骤解决问题。
- (可选)单击文本框中的“”以阻止 Copilot 继续其响应。
询问有关特定议题或讨论的问题
可以让 Copilot 汇总或回答有关特定议题或讨论的问题。
Note
在处理具有很长正文或大量注释的议题或讨论时,Copilot Chat 回复的质量可能会下降。 例如,当你要求 Copilot 总结某个长期运行的讨论时,则可能会出现这种情况。 发生这种情况时,Copilot 将发出警告,以便你仔细查看其输出。
-
导航到 GitHub 上的问题或讨论。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter。 例如,可以输入:
-
解释此问题
-
总结此讨论
-
针对此问题建议后续步骤
-
此问题的验收条件是什么?
-
PERSON 在此讨论中提出的的主要要点是什么?
Tip
可以在消息中包含相关 URL,而不是在浏览器中导航到议题或讨论以进行提问。 例如,
Summarize https://github.com/monalisa/octokit/issues/1
。Copilot 将响应面板中的请求。
-
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
询问有关特定提交内容的问题
可以要求 Copilot 解释提交内容中的更改。
-
导航到 GitHub 上的提交。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter。 例如,可以输入:
-
汇总此提交内容中的更改
-
这些更改是谁提交的?
-
此提交内容是什么时候发布的?
Tip
如果知道提交的 SHA,可以在消息中包含 SHA,以便从 GitHub 上的存储库中的任何页面向 Copilot 询问提交内容,而不是导航到提交内容。 例如:
What changed in commit a778e0eab?
-
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
从搜索栏中访问 Copilot Chat
在存储库的主搜索框中键入问题,可以询问 Copilot 有关整个存储库的问题。
-
导航到 GitHub 上的存储库。
-
按 / 或单击页面顶部的主搜索框。
-
在搜索框中,在
repo:OWNER/REPO
后键入想要询问 Copilot 的问题。例如,可以输入:
- 此存储库的用途是什么?
- 在何处实施此代码库中的身份验证?
- 许可证文件检测在此存储库中如何工作?
-
单击“询问 Copilot”****。
将显示 GitHub Copilot Chat 面板,Copilot 将响应你的请求。
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
扩展 Copilot Chat in GitHub
Note
GitHub Copilot Extensions 为 公共预览版,可能随时更改。
GitHub Copilot Extensions 将外部工具的强大功能集成到 Copilot Chat 中,帮助减少上下文切换并接收具有特定域上下文的响应。 可以从 GitHub Marketplace 安装 Copilot Extensions,或在组织中构建私有的 Copilot Extensions,然后在聊天窗口中键入 @
即可查看可用扩展的列表。 若要使用扩展,请从列表中选择该扩展或键入完整的 slug 名称,然后键入提示。
若要了解详细信息,请参阅 使用扩展将外部工具与 Copilot Chat 集成。
共享有关 GitHub Copilot Chat in GitHub 的反馈
Note
向 GitHub 提供有关 Copilot pull request summaries 的反馈的功能取决于企业设置。 有关详细信息,请参阅“管理企业中 Copilot 的策略和功能”。
要提供有关特定 Copilot Chat 响应的反馈,请单击每个聊天响应底部的大拇指向上或向下图标。
要就 Copilot Chat 总体而言提供反馈,单击聊天面板右上角的省略号 (...),然后单击“ 提供反馈”********。