Skip to main content

在 GitHub 中向 GitHub Copilot 提问

可以使用 GitHub Copilot Chat in GitHub 回答有关软件开发的一般问题,或有关存储库中的问题或代码的特定问题。

概述

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.htmlstyles.cssscript.js

由技能提供支持

使用 GPT-4o 和 Claude 3.5 Sonnet 模型时,Copilot 可以访问一组技能,从 GitHub 获取数据,这些技能会根据你提问的问题动态进行选择。 可以通过单击 展开聊天窗口中的状态信息,以判断所使用的技能 Copilot。

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

必应搜索集成当前处于公共预览版阶段,可能会有变动。

  1. 在 GitHub 的任何页面上,单击页面右下角的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  2. 如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。

    “新建对话”按钮的屏幕截图,以深橙色边框突出显示。

  3. 如果面板标题为“讨论所有者/存储库”,请单击“所有存储库”****。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  4. 如果面板中显示“询问 Copilot”页面,请单击“常规用途聊天”****。

    Copilot 聊天面板的屏幕截图,其中“常规用途聊天”以深橙色边框突出显示。

  5. 在面板底部的“询问 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.
  6. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  7. 如果 Copilot 使用必应搜索来回答问题,则响应上方会显示“来自必应的结果”。 单击此项可查看 Copilot 用于回答问题的搜索结果。

  8. 在对话主题中,可以提出后续问题。 Copilot 将根据对话上下文回答。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。

    可以将初始问题用作后续问题的基础。 详细的基础提示可以帮助 Copilot 提供和后续问题更相关的答案。 有关详细信息,请参阅 GitHub 博客上的提示 GitHub Copilot Chat 成为你的个人 AI 助手以实现辅助功能

  9. 要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。

在不同上下文中向 Copilot Chat 提问

你可以根据在 GitHub 上的位置,向 Copilot Chat 询问不同类型的问题。 例如,要提问关于特定仓库的问题,你必须处于该仓库的上下文中。 以下部分介绍了如何访问不同的上下文。

有关可以在不同上下文中提出的问题类型的示例,请参阅“Copilot Chat 提示入门”。

向 Copilot Chat 询问仓库的问题

要询问有关特定仓库的问题,必须正在 GitHub 上查看该仓库。

  1. 导航到 GitHub 上的存储库。

  2. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  3. 面板顶部的标题应显示为“聊天讨论”,后跟当前存储库的名称。

    如果显示错误的存储库名称,是因为你之前正在聊天讨论另一个存储库,请单击“所有存储库”,然后选择要聊天讨论的存储库。

    Copilot 聊天面板的屏幕截图,其中“All repositories”以深橙色边框突出显示。

  4. 在面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键

    Note

    如果仓库已针对语义代码搜索编制索引,则 Copilot 在仓库上下文中回答自然语言问题的能力将得到提高。 启动具有存储库上下文的对话时,将显示存储库的索引状态。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

向 Copilot Chat 询问有关特定文件或符号的问题

可以向 Copilot 询问有关仓库中特定文件或符号的信息。

Note

“符号”是代码中的命名实体。 这可以是变量、函数、类、模块或属于代码库的任何其他标识符。

  1. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  2. 要根据上下文选择仓库,单击聊天面板底部的 ,然后选择“Repositories”。

    “附加文件或符号”按钮的屏幕截图,以深橙色边框突出显示。

  3. 附加仓库后,再次单击 ,然后选择“Files, folders, and symbols”。

  4. 搜索并选择一个或多个文件、文件夹或符号。

  5. 在“询问 Copilot”框中,键入问题,然后按 Enter 键

    Copilot 在聊天面板中回复。

    Tip

    如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

向 Copilot Chat 询问有关特定代码段的问题

可以与 Copilot 聊天,了解存储库中的文件,或文件中的特定代码行。

  1. 在 GitHub 中,导航到一个存储库并打开一个文件。

  2. 执行下列操作之一:

    • 要询问有关整个文件的问题,请单击文件视图右上角的 Copilot 图标 ()。

      Copilot 按钮的屏幕截图,在文件视图顶部以深橙色边框突出显示。

    • 询问有关文件中特定行的问题:

      1. 通过单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号来选择多行。
      2. 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标 ()。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
      3. 要提出预定义的问题,请单击 Copilot 图标旁的向下按钮,然后选择其中一个选项。

      屏幕截图显示了用深橙色轮廓突出显示的 Copilot 按钮,位于一些选定代码的右侧。

  3. 如果单击 Copilot 图标,请在聊天面板底部的“向 Copilot 询问问题”框中键入问题,然后按 Enter

    Copilot 将响应面板中的请求。

    对“所选行的函数有什么作用?”问题答复的屏幕截图

询问有关 GitHub Advanced Security 警报的问题

Copilot 允许在 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts 生成安全警报时,使用自然语言问题询问组织内存储库中的这些警报。

  1. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  2. 如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  3. 在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。

    例如,可以选择一个存储库,其中包含你想要更好地了解的安全警报。

    如果没有看到想要使用的存储库,可以进行搜索。

  4. 在“询问 Copilot”框中,键入问题,然后按 Enter 键

    Copilot 在聊天面板中回复。

    Tip

    如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

询问有关特定拉取请求的问题

可以从拉取请求中的不同视图向 Copilot 询问有关拉取请求的不同问题。 例如,可以要求 Copilot 总结某个拉取请求,或说明拉取请求中特定文件或代码行中的更改。

获取拉取请求摘要

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot Chat 面板底部的“询问 Copilot”框中,键入问题,然后按 Enter

询问对拉取请求中特定文件的更改

  1. 在 GitHub 上,导航到存储库中的拉取请求。
  2. 单击“已更改的文件”**** 选项卡。
  3. 单击文件右上角的 ,然后单击询问 Copilot 以了解此差异
  4. 在聊天面板底部的“询问 Copilot”框中键入问题,然后按 Enter 键。

询问有关拉取请求中文件内特定行的问题

  1. 在 GitHub 上,导航到存储库中的拉取请求。
  2. 单击“已更改的文件”**** 选项卡。
  3. 单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号。
  4. 向 Copilot 提问,或从预定义问题列表中选择。
    • 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。

询问工作流失败的原因

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 滚动到页面底部,然后在其中一个失败的检查旁边单击“详细信息”。

  3. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  4. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  5. 在 Copilot Chat 面板底部的“询问 Copilot”框中,询问 Copilot 拉取请求失败的原因,然后按 Enter

Copilot 将响应有关拉取请求失败原因的信息。 Copilot 也可能提供如何解决此问题的建议。

  1. 如果 Copilot 提供了修复该问题的步骤,则可以按照这些步骤解决问题。

询问有关特定议题或讨论的问题

可以让 Copilot 汇总或回答有关特定议题或讨论的问题。

Note

在处理具有很长正文或大量注释的议题或讨论时,Copilot Chat 回复的质量可能会下降。 例如,当你要求 Copilot 总结某个长期运行的讨论时,则可能会出现这种情况。 发生这种情况时,Copilot 将发出警告,以便你仔细查看其输出。

  1. 导航到 GitHub 上的问题或讨论。

  2. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter

    Copilot 将响应面板中的请求。

    Tip

    可以在消息中包含相关 URL,而不是在浏览器中导航到议题或讨论以进行提问。 例如,Summarize https://github.com/monalisa/octokit/issues/1

询问有关特定提交内容的问题

可以要求 Copilot 解释提交内容中的更改。

  1. 导航到 GitHub 上的提交。

  2. 在页面的右上角,单击搜索栏旁的 GitHub Copilot 图标****。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter

    Tip

    如果知道提交的 SHA,可以在消息中包含 SHA,以便从 GitHub 上的存储库中的任何页面向 Copilot 询问提交内容,而不是导航到提交内容。 例如: What changed in commit a778e0eab?

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

从搜索栏中访问 Copilot Chat

在存储库的主搜索框中键入问题,可以询问 Copilot 有关整个存储库的问题。

  1. 导航到 GitHub 上的存储库。

  2. 按 / 或单击页面顶部的主搜索框。

  3. 在搜索框中,在 repo:OWNER/REPO 后键入想要询问 Copilot 的问题。

    例如,可以输入:

    • 此存储库的用途是什么?
    • 在何处实施此代码库中的身份验证?
    • 许可证文件检测在此存储库中如何工作?
  4. 单击“询问 Copilot”****。

    GitHub 上主搜索框的屏幕截图。 下拉列表选项“询问 Copilot”以橙色边框突出显示。

    将显示 GitHub Copilot Chat 面板,Copilot 将响应你的请求。

  5. (可选)单击文本框中的“”以阻止 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 对话。 共享的对话可以是公开的或专用的(即基于权限的),例如,关于专用仓库的对话。 如果共享专用对话,则收件人必须具有查看内容所需的权限。 共享对话是只读—的,收件人可以查看对话,但无法交互。

  1. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

  2. 要查看沉浸式模式下的对话,请单击“ Take conversation to immersive”****。

  3. 提交第一个提示后,右上角会显示一个共享按钮。 单击 ,打开共享对话框。

    GitHub 上主搜索框的屏幕截图。 共享按钮以橙色轮廓突出显示。

  4. 要复制对话链接,请单击“ Create link”****。 该链接将复制到剪贴板。

共享有关 GitHub Copilot Chat in GitHub 的反馈

Note

向 GitHub 提供有关 Copilot pull request summaries 的反馈的功能取决于企业设置。 有关详细信息,请参阅“管理企业中 Copilot 的策略和功能”。

要提供有关特定 Copilot Chat 响应的反馈,请单击每个聊天响应底部的大拇指向上或向下图标。

要就 Copilot Chat 总体而言提供反馈,单击聊天面板右上角的省略号 (...),然后单击“ 提供反馈”********。

其他阅读材料