概述
GitHub Copilot Chat in GitHub 是一个聊天界面,可允许在 GitHub 上询问编码相关问题并接收答案。
Copilot Chat 可帮助你完成各种编码相关任务,例如提供代码建议、提供代码片段功能和用途的自然语言说明、为代码生成单元测试,以及为代码中的 bug 建议修复。 有关详细信息,请参阅“在 GitHub 中负责任地使用 GitHub Copilot 聊天”。
在 GitHub 上,可以使用 Copilot Chat 在不同上下文中提问。 例如,可以询问特定仓库、特定议题或特定拉取请求的问题。 还可以询问有关软件开发或特定编程语言的一般问题。
限制
- 在某些情况下,如果将非常大的文件或大量文件用作问题上下文,则 Copilot Chat 的结果质量可能会降级。
查看 Copilot Chat 中生成的文件
Note
此功能目前为 公共预览版,可能会更改。
当你提出问题时,{%data variables.product.prodname_copilot_short%} 可能会生成一个或多个文件作为其响应的一部分。 在 Copilot Chat 面板中,文件以内联方式显示在聊天响应中。 在沉浸式视图中(即在 https://github.com/copilot 中),生成的文件显示在侧面板中。 你可以查看面板中的文件,或将其下载到计算机。
例如,询问 Generate a simple calculator using HTML, CSS, and JavaScript
可能会生成多个文件,例如 index.html
、styles.css
和 script.js
。
由技能提供支持
使用 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 响应
GitHub Copilot 可基于你团队的工作方式、你使用的工具、项目的具体情况或个人偏好(如果提供足够的相关信息来满足此前提)提供量身定制的聊天响应。 你可以创建和保存 Copilot Chat 的说明来自定义收到的响应,而无需在每个提示中重复说明。
可以为 Copilot Chat 添加两种类型的自定义说明:
- 仓库说明:可以为仓库创建自定义说明文件,以便在仓库上下文中询问的所有提示均自动包含定义的说明
- 个人说明:可以添加个人说明,以便你作为用户接收到的所有聊天响应均基于你的偏好
有关详细信息,请参阅 Adding repository custom instructions for GitHub Copilot 和 为 GitHub Copilot 添加个人自定义说明。
Copilot Chat 的 AI 模型
你可以更改 Copilot 用来生成聊天提示响应的大型语言模型。 你可能会发现性能更好的不同模型,或提供更有用响应的模型,具体取决于你提出的问题类型。 有关详细信息,请参阅“正在更改 Copilot Chat 的 AI 模型”。
将问题提交到 Copilot Chat
在 GitHub 上可以从任何页面打开 Copilot Chat。 某些问题可能需要你处于特定的上下文中,例如仓库、议题或拉取请求。 以下过程介绍如何提出与软件相关的一般性问题,并展示了 Copilot Chat 在 GitHub 上的核心功能。 有关其他场景的详细信息,请参阅在不同上下文中向 Copilot Chat 提问。
根据询问的问题和企业及组织设置,Copilot 可能会根据必应搜索结果使用信息做出响应。 使用必应搜索,Copilot 可以根据 Internet 上当前提供的信息,用最新的详细信息回答各种与技术相关的问题。 若要了解如何启用或禁用必应搜索集成,请参阅“以单个订阅者身份管理 Copilot 策略”和“管理企业中 Copilot 的策略和功能”。
Note
必应搜索集成当前处于公共预览版阶段,可能会有变动。
-
在 GitHub 的任何页面上,单击页面右下角的 GitHub Copilot 图标。
此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。
-
如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。
-
如果面板标题为“讨论所有者/存储库”,请单击“所有存储库”****。
-
如果面板中显示“询问 Copilot”页面,请单击“常规用途聊天”****。
-
在面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键。
可以询问的一般问题的部分示例包括:
What are the advantages of the Go programming language?
What is Agile software development?
What is the most popular JavaScript framework?
Give me some examples of regular expressions.
Write a bash script to output today's date.
-
(可选)单击文本框中的“”以阻止 Copilot 继续其响应。
-
如果 Copilot 使用必应搜索来回答问题,则响应上方会显示“来自必应的结果”。 单击此项可查看 Copilot 用于回答问题的搜索结果。
-
在对话主题中,可以提出后续问题。 Copilot 将根据对话上下文回答。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。
可以将初始问题用作后续问题的基础。 详细的基础提示可以帮助 Copilot 提供和后续问题更相关的答案。 有关详细信息,请参阅 GitHub 博客上的提示 GitHub Copilot Chat 成为你的个人 AI 助手以实现辅助功能。
-
要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。
在不同上下文中向 Copilot Chat 提问
你可以根据在 GitHub 上的位置,向 Copilot Chat 询问不同类型的问题。 例如,要提问关于特定仓库的问题,你必须处于该仓库的上下文中。 以下部分介绍了如何访问不同的上下文。
有关可以在不同上下文中提出的问题类型的示例,请参阅“Copilot Chat 提示入门”。
向 Copilot Chat 询问仓库的问题
要询问有关特定仓库的问题,必须正在 GitHub 上查看该仓库。
-
导航到 GitHub 上的存储库。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
面板顶部的标题应显示为“聊天讨论”,后跟当前存储库的名称。
如果显示错误的存储库名称,是因为你之前正在聊天讨论另一个存储库,请单击“所有存储库”,然后选择要聊天讨论的存储库。
-
在面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键。
Note
如果仓库已针对语义代码搜索编制索引,则 Copilot 在仓库上下文中回答自然语言问题的能力将得到提高。 启动具有存储库上下文的对话时,将显示存储库的索引状态。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
向 Copilot Chat 询问有关特定文件或符号的问题
可以向 Copilot 询问有关仓库中特定文件或符号的信息。
Note
“符号”是代码中的命名实体。 这可以是变量、函数、类、模块或属于代码库的任何其他标识符。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
要根据上下文选择仓库,单击聊天面板底部的 ,然后选择“Repositories”。
-
附加仓库后,再次单击 ,然后选择“Files, folders, and symbols”。
-
搜索并选择一个或多个文件、文件夹或符号。
-
在“询问 Copilot”框中,键入问题,然后按 Enter 键。
Copilot 在聊天面板中回复。
Tip
如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
向 Copilot Chat 询问有关知识库的问题
组织所有者(具有 Copilot Enterprise 订阅)可以创建知识库,将一个或多个存储库中的 Markdown 文档归为一组。 可以使用知识库根据上下文的来询问问题。
当你输入查询时,Copilot 会搜索相关文档片段,合成相关文档片段的摘要来回答问题,并提供有关更多上下文的源文档链接。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。
-
选择存储库或单击“常规用途聊天”****,可以开始与 Copilot 对话。
-
单击聊天面板底部的“附加知识”按钮(一个书籍图标),查看有权访问的知识库列表。
-
单击要用作上下文的知识库。
例如,可以选择包含组织内部开发人员文档的知识库。
如果没有看到想要使用的知识库,可以进行搜索。
-
在页面底部的“询问 Copilot”框中,键入问题,然后按 Enter。
-
响应通常包含对 Copilot 用于从所选知识库中生成答案的文件的编号参考。 要列出所使用的源,请单击“编号参考”****。
-
要显示有关来源引用的信息,请单击列表中对应的条目。
或者,要打开完整文件,请单击省略号 (...),然后选择“打开”****。
-
在对话主题中,可以提出后续问题。 后续问题将继续使用所选知识库作为上下文,直到明确分离该知识库或选择其他知识库。
向 Copilot Chat 询问有关特定代码段的问题
可以与 Copilot 聊天,了解存储库中的文件,或文件中的特定代码行。
-
在 GitHub 中,导航到一个存储库并打开一个文件。
-
执行下列操作之一:
-
要询问有关整个文件的问题,请单击文件视图右上角的 Copilot 图标 ()。
-
询问有关文件中特定行的问题:
- 通过单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号来选择多行。
- 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标 ()。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
- 要提出预定义的问题,请单击 Copilot 图标旁的向下按钮,然后选择其中一个选项。
-
-
如果单击 Copilot 图标,请在聊天面板底部的“向 Copilot 询问问题”框中键入问题,然后按 Enter。
Copilot 将响应面板中的请求。
询问有关 GitHub Advanced Security 警报的问题
Copilot 允许在 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts 生成安全警报时,使用自然语言问题询问组织内存储库中的这些警报。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。
-
在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。
例如,可以选择一个存储库,其中包含你想要更好地了解的安全警报。
如果没有看到想要使用的存储库,可以进行搜索。
-
在“询问 Copilot”框中,键入问题,然后按 Enter 键。
Copilot 在聊天面板中回复。
Tip
如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。
询问有关特定拉取请求的问题
可以从拉取请求中的不同视图向 Copilot 询问有关拉取请求的不同问题。 例如,可以要求 Copilot 总结某个拉取请求,或说明拉取请求中特定文件或代码行中的更改。
获取拉取请求摘要
-
在 GitHub 上,导航到存储库中的拉取请求。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot Chat 面板底部的“询问 Copilot”框中,键入问题,然后按 Enter。
询问对拉取请求中特定文件的更改
- 在 GitHub 上,导航到存储库中的拉取请求。
- 单击“已更改的文件”**** 选项卡。
- 单击文件右上角的 ,然后单击询问 Copilot 以了解此差异。
- 在聊天面板底部的“询问 Copilot”框中键入问题,然后按 Enter 键。
询问有关拉取请求中文件内特定行的问题
- 在 GitHub 上,导航到存储库中的拉取请求。
- 单击“已更改的文件”**** 选项卡。
- 单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号。
- 向 Copilot 提问,或从预定义问题列表中选择。
- 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
询问工作流失败的原因
-
在 GitHub 上,导航到存储库中的拉取请求。
-
滚动到页面底部,然后在其中一个失败的检查旁边单击“详细信息”。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot Chat 面板底部的“询问 Copilot”框中,询问 Copilot 拉取请求失败的原因,然后按 Enter。
Copilot 将响应有关拉取请求失败原因的信息。 Copilot 也可能提供如何解决此问题的建议。
- 如果 Copilot 提供了修复该问题的步骤,则可以按照这些步骤解决问题。
询问有关特定议题或讨论的问题
可以让 Copilot 汇总或回答有关特定议题或讨论的问题。
Note
在处理具有很长正文或大量注释的议题或讨论时,Copilot Chat 回复的质量可能会下降。 例如,当你要求 Copilot 总结某个长期运行的讨论时,则可能会出现这种情况。 发生这种情况时,Copilot 将发出警告,以便你仔细查看其输出。
-
导航到 GitHub 上的问题或讨论。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。
-
在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter。
Copilot 将响应面板中的请求。
Tip
可以在消息中包含相关 URL,而不是在浏览器中导航到议题或讨论以进行提问。 例如,
Summarize https://github.com/monalisa/octokit/issues/1
。
询问有关特定提交内容的问题
可以要求 Copilot 解释提交内容中的更改。
-
导航到 GitHub 上的提交。
-
在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。
-
如果面板包含与 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 集成。
共享 Copilot Chat 对话
Note
此功能目前为 公共预览版,可能会更改。 在 公共预览版 期间,此功能仅对没有企业或团队成员资格的用户开放。
可以从沉浸式视图 (https://github.com/copilot) 中共享 Copilot Chat 对话。 共享的对话可以是公开的或专用的(即基于权限的),例如,关于专用仓库的对话。 如果共享专用对话,则收件人必须具有查看内容所需的权限。 共享对话是只读—的,收件人可以查看对话,但无法交互。
-
在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。
-
要查看沉浸式模式下的对话,请单击“ Take conversation to immersive”****。
-
提交第一个提示后,右上角会显示一个共享按钮。 单击 ,打开共享对话框。
-
要复制对话链接,请单击“ Create link”****。 该链接将复制到剪贴板。
共享有关 GitHub Copilot Chat in GitHub 的反馈
Note
向 GitHub 提供有关 Copilot pull request summaries 的反馈的功能取决于企业设置。 有关详细信息,请参阅“管理企业中 Copilot 的策略和功能”。
要提供有关特定 Copilot Chat 响应的反馈,请单击每个聊天响应底部的大拇指向上或向下图标。
要就 Copilot Chat 总体而言提供反馈,单击聊天面板右上角的省略号 (...),然后单击“ 提供反馈”********。