跳至主要内容

在你的 IDE 中向 GitHub Copilot 提问

使用编辑器中的 Copilot 聊天功能提供代码建议、解释代码、生成单元测试和建议代码修复。

先决条件

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

提交提示

你可以要求 Copilot 聊天提供代码建议、解释代码、生成单元测试和建议代码修复。

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

    Screenshot of the Copilot Chat icon in the Activity Bar.

    提示

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

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

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

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

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

在提示中使用关键词

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

聊天参与者

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

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

注意

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

聊天参与者包括

  • @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 市场Visual Studio Code 市场安装这些扩展。有关来自 GitHub 市场提供聊天参与者的扩展的信息,请参阅“使用扩展将外部工具与 Copilot 聊天集成”。

注意

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 聊天中访问这些技能,请在你的问题中包含@github

当你向问题添加@github时,Copilot 会根据你的问题内容动态选择合适的技能。你也可以显式要求 Copilot 聊天使用特定技能。你可以通过两种方式做到这一点

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

当前可用的技能

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

你可以在 VS Code 的 Copilot 聊天中使用的技能包括下表中所示的技能。

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

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

适用于所有拥有 Copilot 企业版订阅的仓库,以及拥有 Copilot 个人版或 Copilot 商业版订阅的公共仓库。
这个仓库是如何管理 HTTP 请求和响应的?
支持搜索GitHub 支持门户检索信息。此技能对于向 Copilot Chat 询问有关 GitHub 产品和支持相关的问题非常有用。@github 我可以使用 Copilot 知识库与 Copilot 个人版吗?
网络搜索使用 Bing 搜索引擎搜索网络。此技能对于教导 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 Edits 直接从单个 Copilot Chat 提示在多个文件中进行更改。

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

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

分享反馈

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

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

进一步阅读

先决条件

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

提交提示

你可以要求 Copilot 聊天提供代码建议、解释代码、生成单元测试和建议代码修复。

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

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

  3. 评估 Copilot 的响应,如果需要,提交后续提示。

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

    要查看 Copilot Chat 用于生成响应的文件,请单击响应下方的References链接。引用可能包含指向自定义说明文件的链接。此文件包含自动添加到所有聊天问题中的其他信息,以提高响应质量。更多信息,请参阅“添加 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来引用特定文件、行或解决方案。例如

  • 引用特定文件:Where are the tests in #MyFile.cs?
  • 引用多个文件:How are these files related #MyFile.cs #MyFile2.cs
  • 引用文件中的特定行:Explain this function #MyFile.cs: 66-72?
  • 引用当前文件:Is there a delete method in this #solution

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

使用 GitHub 技能进行 Copilot 预览

注意

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

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

当您向问题中添加@github时,Copilot 会根据您的问题内容动态选择合适的技能。您也可以明确要求 Copilot Chat 使用特定技能。例如,@github Search the web to find the latest GPT4 model from OpenAI.

当前可用的技能

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

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

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

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

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

适用于 Copilot 商业版
在组织设置中启用。
@github What are some recent articles about SAT tokens securing against vulnerabilities in 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 的其他方法

除了通过聊天窗口提交提示外,您还可以内联提交提示。要启动内联聊天,请右键单击编辑器窗口并选择Ask Copilot

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

分享反馈

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

  1. 在 Visual Studio 窗口的右上角,单击Send feedback按钮。

    Screenshot of the share feedback button in Visual Studio.

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

    • 要报告错误,请单击Report a problem
    • 要请求功能,请单击Suggest a feature

进一步阅读

先决条件

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

提交提示

你可以要求 Copilot 聊天提供代码建议、解释代码、生成单元测试和建议代码修复。

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

    Screenshot of the Copilot Chat icon in the Activity Bar.

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

  3. 评估 Copilot 的响应,如果需要,提交后续提示。

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

    要查看 Copilot Chat 用于生成响应的文件,请选择响应下方的References下拉菜单。

在提示中使用关键词

您可以使用特殊关键字来帮助 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,然后选择Reference File in Chat

访问 Copilot Chat 的其他方法

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

分享反馈

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

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

    Screenshot of the Copilot Chat icon in the Activity Bar.

  2. 在 Copilot Chat 窗口顶部,单击share feedback链接。

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

进一步阅读