跳至主要内容

在您的 IDE 中向 GitHub Copilot 提问

使用编辑器中的 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

先决条件

如果您通过您的组织访问 GitHub Copilot,则如果您的组织所有者禁用了聊天,您将无法使用 GitHub Copilot Chat。请参阅“在您的组织中管理 Copilot 的策略”。

提交提示

您可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 要打开聊天视图,请单击活动栏中的聊天图标或按 Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux)。

    Screenshot of the Copilot Chat icon in the Activity Bar.

    提示

    有关访问 Copilot Chat 的其他方法(包括在您的代码中内联),请参阅下面 访问 Copilot Chat 的其他方法

  2. 在提示框中输入提示,或单击建议的提示之一。有关示例提示,请参阅“Copilot Chat 的示例提示”。

  3. 评估 Copilot 的响应,并在需要时提出后续请求。

    响应可能包含文本、代码块、按钮、图像、URI 和文件树。响应通常包含交互式元素。例如,响应可能包含一个菜单来插入代码块,或一个按钮来调用 Visual Studio Code 命令。

    要查看 Copilot Chat 用于生成响应的文件,请在响应顶部选择“已使用 n 个引用”下拉菜单。引用可能包含指向自定义说明文件的链接。此文件包含自动添加到所有聊天问题中的其他信息,以提高响应质量。有关更多信息,请参阅“为 GitHub Copilot 添加自定义说明”。

在提示中使用关键词

您可以使用特殊关键词来帮助 Copilot 理解您的提示。例如,请参阅“Copilot Chat 的示例提示”。

聊天参与者

聊天参与者是 AI 领域专家,可以执行特定领域的 task 或回答问题。

Copilot Chat 可以根据您的自然语言提示推断相关的聊天参与者,从而提高高级功能的发现能力,而无需您在提示中明确指定要使用的参与者。但是,如果您愿意,您仍然可以手动指定聊天参与者以将您的提示范围限定到特定领域。为此,请在聊天提示框中键入 @,后跟聊天参与者名称。

注意

聊天参与者的自动推断目前处于公开预览阶段,可能会发生变化。

聊天参与者包括

  • @workspace:具有关于工作区中代码的上下文。当您希望 Copilot 考虑项目的结构、代码的不同部分如何交互或项目中的设计模式时,请使用 @workspace
  • @vscode:具有关于 Visual Studio Code 命令和功能的上下文。当您需要 Visual Studio Code 的帮助时,请使用 @vscode
  • @terminal:具有关于 Visual Studio Code 终端 shell 及其内容的上下文。当您需要创建或调试终端命令的帮助时,请使用 @terminal
  • @azure:具有关于 Azure 服务以及如何使用、部署和管理它们的上下文。当您需要 Azure 的帮助时,请使用 @azure@azure 聊天参与者目前处于公开预览阶段,可能会发生变化。

除了内置的 Visual Studio Code 聊天参与者之外,您还可以安装提供聊天参与者的 Copilot 扩展。您可以从 GitHub MarketplaceVisual Studio Code Marketplace 安装这些扩展。有关 GitHub Marketplace 中提供聊天参与者的扩展的信息,请参阅“使用扩展将外部工具与 Copilot Chat 集成”。

注意

GitHub Copilot 扩展处于公开预览阶段,可能会发生变化。

要查看所有可用的聊天参与者,请在聊天提示框中键入 @

另请参阅 Visual Studio Code 文档中的 聊天参与者

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。要使用斜杠命令,请在聊天提示框中键入 /,后跟一个命令。斜杠命令包括

  • /tests:为选定的代码生成单元测试
  • /fix:为选定代码中的问题提出修复建议
  • /explain:解释选定的代码
  • /clear:开始新的聊天

要查看所有可用的斜杠命令,请在聊天提示框中键入 /。另请参阅 Visual Studio Code 文档中的 斜杠命令

聊天变量

使用聊天变量在提示中包含特定上下文。要使用聊天变量,请在聊天提示框中键入 #,后跟一个聊天变量。聊天变量包括

  • #file:将特定文件作为上下文包含在聊天中。
  • #git:包含有关当前 Git 存储库的信息。
  • #terminalLastCommand:包含活动 Visual Studio Code 终端中最后运行的命令。

要查看所有可用的聊天变量,请在聊天提示框中键入 #。另请参阅 Visual Studio Code 文档中的 聊天变量

为 Copilot 使用 GitHub 技能

注意

此功能适用于 Copilot Chat 扩展 v0.20.3 或更高版本以及 VS Code 或 VS Code Insiders 1.93 或更高版本。

Copilot 的 GitHub 特定技能扩展了 Copilot 可以提供的信息类型。要在 VS Code 中的 Copilot Chat 中访问这些技能,请在您的问题中包含 @github

当您向问题添加 @github 时,Copilot 会根据问题的内容动态选择合适的技能。您还可以明确要求 Copilot Chat 使用特定技能。您可以通过两种方式执行此操作

  • 使用自然语言要求 Copilot Chat 使用技能。例如,@github 搜索网络以查找来自 OpenAI 的最新 GPT4 模型。
  • 要专门调用网络搜索,您可以在问题中包含 #web 变量。例如,@github #web Node.js 的最新 LTS 版本是什么?

当前可用的技能

您可以通过询问 Copilot 生成当前可用技能的列表:@github 有哪些可用的技能?

您可以在 VS Code 中的 Copilot Chat 中使用的技能包括下表中所示的技能。

技能描述默认启用?示例问题
提交详细信息检索提交列表或特定提交的内容,以提供与提交相关的问题的答案。@github 解释此提交的代码更改
讨论详细信息检索特定的 GitHub 讨论。这对于快速了解讨论中的对话要点很有用。@github 总结此讨论 LINK-TO-DISCUSSION
文件详情检索 Git 仓库默认分支中的特定文件,允许您询问有关文件以及最近对其进行的更改的问题。当您提供仓库中文件的准确路径时,此技能很有用。@github user_auth.js 封装了哪些逻辑?

@github user_auth.js 的文件历史记录是什么?
GitHub 高级安全检索来自 GitHub 高级安全功能(代码扫描、密钥扫描和 Dependabot 警报)的组织内安全警报信息。@github 如何修复此代码扫描警报?
问题详情检索特定的 GitHub 问题,包括问题的标题、编号、作者、状态、正文、链接的拉取请求、评论和时间戳。@github 列出分配给我的问题
词法代码搜索Git 仓库默认分支中的关键字代码搜索。当您想了解代码中存在的特定函数、方法或关键字时,此技能很有用。此技能利用了GitHub 搜索(如symbolpath)的大部分可用功能。帮我找到 GitService 类的测试
路径搜索检索 Git 仓库默认分支中的特定文件。当您提供仓库中文件的准确路径时,此技能很有用。@github user_auth.js 封装了哪些逻辑?
拉取请求详情检索特定的拉取请求。这允许您询问有关拉取请求的问题,包括获取拉取请求的摘要、其评论或其更改的代码。@github 列出我最近的拉取请求
发布详情检索最新或指定的发布。这使您可以了解谁创建了发布、何时发生以及发布说明中包含的信息。@github 上次发布是什么时候?
仓库详情检索特定的 GitHub 仓库。这对于查找仓库所有者和使用的主要语言等详细信息很有用。@github 告诉我有关 PATH-TO-REPOSITORY 的信息
语义代码搜索Git 仓库默认分支中的自然语言语义代码搜索。当您想知道某些功能在代码中在哪里或如何实现时,此技能很有用。注意:这需要为仓库启用索引(请参阅“为 Copilot Chat 索引仓库”)。

适用于所有订阅了 Copilot 企业版的仓库,以及订阅了 Copilot 个人版或 Copilot 商业版的公共仓库。
此仓库如何管理 HTTP 请求和响应?
支持搜索GitHub 支持门户检索信息。此技能对于向 Copilot Chat 询问有关 GitHub 产品和支持相关的问题很有用。@github 我可以将 Copilot 知识库与 Copilot 个人版一起使用吗?
网络搜索使用必应搜索引擎搜索网络。此技能对于教 Copilot 了解近期事件、新发展、趋势、技术或极其具体、详细或利基主题很有用。

对于 Copilot 个人版
在您的用户设置中启用。

对于 Copilot 商业版
在组织设置中启用。
@github #web 有哪些关于 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”。

更改您的 AI 模型

注意

  • 如果您使用 Copilot 扩展,它们可能会覆盖您选择的模型。
  • 模型的实验性预发布版本可能无法与所有过滤器正确交互,包括重复检测过滤器。
  1. 如果您通过 Copilot 商业版订阅访问 Copilot Chat,则您的组织必须授予成员切换到其他模型的权限。请参阅“管理组织中的 Copilot 策略”。
  2. 要打开聊天视图,请单击活动栏中的聊天图标或按 Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux)。
  3. 在聊天视图的右下角,选择CURRENT-MODEL下拉菜单,然后点击您选择的 AI 模型。

访问 Copilot Chat 的其他方法

除了通过聊天视图提交提示外,您还可以通过其他方式提交提示

  • 内联:要在编辑器或集成终端中直接启动内联聊天,请输入Command+i(Mac)/Ctrl+i(Windows/Linux)。
  • 快速聊天:要打开快速聊天下拉菜单,请输入Shift+Command+i(Mac)/Shift+Ctrl+i(Windows/Linux)
  • 智能操作:要通过上下文菜单提交提示,请在编辑器中右键单击,在出现的菜单中选择Copilot,然后选择其中一项操作。智能操作也可以通过有时在您选择一行代码时出现的闪光图标访问。

请参阅 Visual Studio Code 文档中的内联聊天快速聊天聊天智能操作,了解更多详细信息。

多文件编辑

注意

多文件编辑目前处于公开预览阶段,可能会发生变化。

使用 Copilot 编辑直接从单个 Copilot Chat 提示跨多个文件进行更改。

  1. 在 Copilot 扩展设置中启用 Copilot 编辑。
  2. 通过从 Copilot Chat 菜单中选择打开 Copilot 编辑来启动编辑会话。
  3. 可选地,将相关文件添加到工作集以指示 GitHub Copilot 您要处理哪些文件。
  4. 提交提示。响应您的提示,Copilot 编辑将确定要更改的工作集中的哪些文件,并添加对更改的简短描述。
  5. 查看更改并应用放弃每个文件的编辑。

有关更多信息,请参阅 Visual Studio Code 文档中的Copilot 编辑

分享反馈

要指示响应是否有用,请使用显示在响应旁边的点赞和点踩图标。

要留下有关 GitHub Copilot Chat 扩展的反馈,请在microsoft/vscode-copilot-release仓库中打开一个问题。

进一步阅读

先决条件

如果您通过您的组织访问 GitHub Copilot,则如果您的组织所有者禁用了聊天,您将无法使用 GitHub Copilot Chat。请参阅“在您的组织中管理 Copilot 的策略”。

提交提示

您可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 在 Visual Studio 菜单栏中,单击视图,然后单击GitHub Copilot Chat

  2. 在 Copilot Chat 窗口中,输入提示,然后按Enter。有关示例提示,请参阅“Copilot Chat 的示例提示”。

  3. 评估 Copilot 的回复,并在需要时提交后续提示。

    回复通常包含交互式元素。例如,回复可能包含用于复制、插入或预览代码块结果的按钮。

    要查看 Copilot Chat 用于生成回复的文件,请单击回复下方的引用链接。引用可能包含指向自定义说明文件的链接。此文件包含自动添加到所有聊天问题中的其他信息,以提高回复的质量。有关更多信息,请参阅“添加 GitHub Copilot 的自定义说明”。

在提示中使用关键词

您可以使用特殊关键字来帮助 Copilot 理解您的提示。

扩展 Copilot Chat

注意

GitHub Copilot 扩展处于公开预览阶段,可能会发生变化。

GitHub Copilot 扩展将外部工具的功能集成到 Copilot Chat 中,帮助您减少上下文切换并接收具有特定领域上下文的回复。您可以从 GitHub Marketplace 安装 Copilot 扩展,或在您的组织内构建私有扩展,然后在聊天窗口中键入@以查看可用扩展的列表。要使用扩展,请从列表中选择扩展或键入完整的 slug 名称,然后键入您的提示。

要了解更多信息,请参阅“使用扩展将外部工具与 Copilot Chat 集成”。

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。要使用斜杠命令,请在聊天提示框中键入 /,后跟一个命令。斜杠命令包括

  • /tests:为选定的代码生成单元测试
  • /fix:为选定代码中的问题提出修复建议
  • /explain:解释选定的代码
  • /optimize:分析并改进所选代码的运行时

要查看所有可用的斜杠命令,请在聊天提示框中键入/。另请参阅 Visual Studio 文档中的 斜杠命令

引用

默认情况下,Copilot Chat 将引用您打开的文件或您选择的代码。您还可以使用#后跟文件名、文件名和行号,或solution来引用特定文件、行或解决方案。例如

  • 引用特定文件:#MyFile.cs 中的测试在哪里?
  • 引用多个文件:这些文件#MyFile.cs #MyFile2.cs之间是什么关系?
  • 引用文件中的特定行:解释此函数#MyFile.cs: 66-72?
  • 引用当前文件:此#solution中是否有删除方法?

另请参阅 Visual Studio 文档中的 引用

使用 GitHub 技能进行 Copilot(预览版)

注意

@github 聊天参与者目前处于预览阶段,仅在 Visual Studio 2022 预览版 2 及更高版本中可用。

Copilot 的特定于 GitHub 的技能扩展了 Copilot 可以提供的信息类型。要在 Visual Studio 中的 Copilot Chat 中访问这些技能,请在您的问题中包含@github

当您向问题中添加@github时,Copilot 会根据您的问题内容动态选择合适的技能。您也可以明确要求 Copilot Chat 使用特定技能。例如,@github 搜索网络以查找来自 OpenAI 的最新 GPT4 模型。

当前可用的技能

您可以通过询问 Copilot 生成当前可用技能的列表:@github 有哪些可用的技能?

您可以在 Visual Studio 中的 Copilot Chat 中使用的技能包括下表中显示的技能。

技能描述默认启用?示例问题
词法代码搜索Git 仓库默认分支中的关键字代码搜索。当您想了解代码中存在的特定函数、方法或关键字时,此技能很有用。此技能利用了GitHub 搜索(如symbolpath)的大部分可用功能。帮我找到 GitService 类的测试
路径搜索检索 Git 仓库默认分支中的特定文件。当您提供仓库中文件的准确路径时,此技能很有用。@github user_auth.js 封装了哪些逻辑?
语义代码搜索Git 仓库默认分支中的自然语言语义代码搜索。当您想知道某些功能在代码中在哪里或如何实现时,此技能很有用。注意:这需要为仓库启用索引(请参阅“为 Copilot Chat 索引仓库”)。

适用于所有订阅了 Copilot 企业版的仓库,以及订阅了 Copilot 个人版或 Copilot 商业版的公共仓库。
此仓库如何管理 HTTP 请求和响应?
网络搜索使用必应搜索引擎搜索网络。此技能对于教 Copilot 了解近期事件、新发展、趋势、技术或极其具体、详细或利基主题很有用。

对于 Copilot 个人版
在您的用户设置中启用。

对于 Copilot 商业版
在组织设置中启用。
@github 有关 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”。

更改您的 AI 模型

要使用多模型 Copilot Chat,您必须使用 Visual Studio 17.12 预览版 3 或更高版本。请参阅 Visual Studio 文档中的 Visual Studio 2022 预览版

注意

  • 如果您使用 Copilot 扩展,它们可能会覆盖您选择的模型。
  • 模型的实验性预发布版本可能无法与所有过滤器正确交互,包括重复检测过滤器。
  1. 如果您通过 Copilot 商业版订阅访问 Copilot Chat,则您的组织必须授予成员切换到其他模型的权限。请参阅“管理组织中的 Copilot 策略”。
  2. 在 Visual Studio 菜单栏中,单击视图,然后单击GitHub Copilot Chat
  3. 在聊天视图的右下角,选择CURRENT-MODEL下拉菜单,然后点击您选择的 AI 模型。

访问 Copilot Chat 的其他方法

除了通过聊天窗口提交提示外,您还可以内联提交提示。要开始内联聊天,请在编辑器窗口中右键单击,然后选择询问 Copilot

有关更多详细信息,请参阅 Visual Studio 文档中的 在内联聊天视图中提问

分享反馈

要分享有关 Copilot Chat 的反馈,您可以使用 Visual Studio 中的发送反馈按钮。有关提供 Visual Studio 反馈的更多信息,请参阅 Visual Studio 反馈 文档。

  1. 在 Visual Studio 窗口的右上角,单击发送反馈按钮。

    Screenshot of the share feedback button in Visual Studio.

  2. 选择最能描述您反馈的选项。

    • 要报告错误,请单击报告问题
    • 要请求功能,请单击建议功能

进一步阅读

先决条件

如果您通过您的组织访问 GitHub Copilot,则如果您的组织所有者禁用了聊天,您将无法使用 GitHub Copilot Chat。请参阅“在您的组织中管理 Copilot 的策略”。

提交提示

您可以要求 Copilot Chat 提供代码建议、解释代码、生成单元测试并建议代码修复。

  1. 通过单击 JetBrains IDE 窗口右侧的Copilot Chat图标打开 Copilot Chat 窗口。

    Screenshot of the Copilot Chat icon in the Activity Bar.

  2. 在提示框中输入提示。有关示例提示,请参阅“Copilot Chat 的示例提示”。

  3. 评估 Copilot 的回复,并在需要时提交后续提示。

    回复通常包含交互式元素。例如,回复可能包含用于复制或插入代码块的按钮。

    要查看 Copilot Chat 用于生成回复的文件,请在回复下方选择引用下拉菜单。

在提示中使用关键词

您可以使用特殊关键字来帮助 Copilot 理解您的提示。

扩展 Copilot Chat

注意

GitHub Copilot 扩展处于公开预览阶段,可能会发生变化。

GitHub Copilot 扩展将外部工具的功能集成到 Copilot Chat 中,帮助您减少上下文切换并接收具有特定领域上下文的回复。您可以从 GitHub Marketplace 安装 Copilot 扩展,或在您的组织内构建私有扩展,然后在聊天窗口中键入@以查看可用扩展的列表。要使用扩展,请从列表中选择扩展或键入完整的 slug 名称,然后键入您的提示。

要了解更多信息,请参阅“使用扩展将外部工具与 Copilot Chat 集成”。

斜杠命令

使用斜杠命令避免为常见场景编写复杂的提示。要使用斜杠命令,请在聊天提示框中键入 /,后跟一个命令。斜杠命令包括

  • /tests:为选定的代码生成单元测试
  • /fix:为选定代码中的问题提出修复建议
  • /explain:解释选定的代码
  • /help:了解有关使用 Copilot Chat 的更多信息

要查看所有可用的斜杠命令,请在聊天提示框中键入/

文件引用

默认情况下,Copilot Chat 将引用您打开的文件或您选择的代码。您还可以通过将文件拖动到聊天提示框中来告诉 Copilot Chat 要引用哪些文件。或者,您可以右键单击文件,选择GitHub Copilot,然后选择在聊天中引用文件

访问 Copilot Chat 的其他方法

  • 内置请求。除了通过聊天窗口提交提示外,您还可以通过右键单击文件,选择GitHub Copilot,然后选择其中一个选项来提交内置请求。
  • 内联。您可以内联提交聊天提示,并将其范围限定到突出显示的代码块或当前文件。
    • 要开始内联聊天,请右键单击代码块或当前文件中的任意位置,将鼠标悬停在GitHub Copilot上,然后选择 Copilot:内联聊天,或输入Ctrl+Shift+I

分享反馈

要分享有关 Copilot Chat 的反馈,您可以使用 JetBrains 中的分享反馈链接。

  1. 在 JetBrains IDE 窗口的右侧,单击Copilot Chat图标以打开 Copilot Chat 窗口。

    Screenshot of the Copilot Chat icon in the Activity Bar.

  2. 在 Copilot Chat 窗口顶部,单击分享反馈链接。

    Screenshot of the share feedback link in the Copilot Chat window.

进一步阅读