Skip to main content

在 IDE 中向 GitHub Copilot 提问

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

先决条件

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“Managing policies for Copilot in your organization”。

Copilot Chat 的 AI 模型

Note

更改 Copilot Chat 所用 AI 模型的功能为 公共预览版,可能随时更改。 若要请求访问,请加入候补名单

对于注册了 Copilot Chat 模型选择 公共预览版 的用户,目前可以使用以下模型:

  • gpt-4o:这是默认 Copilot Chat 模型。 它是一种通用多模式模型,在文本和图像处理方面表现出色,旨在提供快速、可靠的响应。 它在非英语语言方面也表现出色。
  • o1-preview:此模型专注于高级推理和解决复杂问题,特别是数学和科学方面。 其响应速度比 gpt-4o 模型慢。 可每天向此模型发出 10 个请求。
  • o1-mini:这是 o1-preview 模型的较快版本,平衡了复杂推理的使用和更快响应的需求。 它最适合代码生成和小型上下文操作。 可每天向此模型发出 50 个请求。

有关这些模型的详细信息,请参阅 OpenAI 平台文档中的模型

更改 AI 模型

“聊天”视图中的模型选取器是预发布功能,需要最新版本的 VS Code Insiders,以及 Copilot 预发布扩展。

Note

  • 如果使用 Copilot Extensions,它们可能会替代所选的模型。
  • 试验性预发布版本的模型可能无法与所有筛选器进行正确地交互,包括重复检测筛选器。
  1. 如果通过 GitHub Copilot Business 或 GitHub Copilot Enterprise 订阅访问 Copilot Chat,则组织 或企业 必须为 Copilot 启用预览功能。 请参阅“Managing policies for Copilot in your organization”和“管理企业中 Copilot 的策略和功能”。 1. 若要打开聊天视图,请单击活动栏中的聊天图标或按 Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux)。
  2. 在聊天视图的右下角,选择 CURRENT-MODEL 下拉菜单,然后单击所选的 AI 模型。

提交提示

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

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

    活动栏中 Copilot Chat 图标的屏幕截图。

    Tip

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

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

  3. 评估 Copilot 的回复,并根据需要发出后续请求。

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

在提示中使用关键字

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

聊天参与者

使用聊天参与者将提示范围限定在特定域内。 要使用聊天参与者,请在聊天提示框中键入 @,然后再键入聊天参与者名称。 聊天参与者包括:

  • @workspace:在工作区中具有关于代码的上下文。 当希望 Copilot 考虑项目的结构、代码的不同部分如何进行互动或者项目中的设计模式时,请使用 @workspace

  • @vscode:具有有关 Visual Studio Code 命令和功能的上下文。 当需要有关 Visual Studio Code 的帮助时,请使用 @vscode

  • @terminal:具有有关 Visual Studio Code 终端 shell 及其内容的上下文。 当需要帮助创建或调试终端命令时,请使用 @terminal

  • @github:允许使用 GitHub 特定的 Copilot 技能。 请参阅“对 Copilot 使用 GitHub 技能”。

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

Note

GitHub Copilot Extensions 为 公共预览版,可能随时更改。

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

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

斜杠命令

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

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

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

聊天变量

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

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

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

对 Copilot 使用 GitHub 技能

Note

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

Copilot 具有一系列 GitHub 特定的技能,可用于回答问题。 若要在 VS Code 中的 Copilot Chat 中访问这些技能,请在问题中包含 @github

向问题添加 @github 时,Copilot 会根据问题的内容动态选择适当的技能。 此外,还可以明确要求 Copilot Chat 使用某项特定技能。 可通过两种方式实现此目的:

  • 使用自然语言要求 Copilot Chat 使用技能。 例如: @github Search the web to find the latest GPT4 model from OpenAI.
  • 若要专门调用 Web 搜索,可以在问题中包含 #web 变量。 例如: @github #web What is the latest LTS of Node.js?

当前可用的技能

可以通过询问 Copilot 来生成当前可用的技能列表:@github What skills are available?

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

技能说明默认情况下是否启用?示例问题
提交详细信息检索一组提交内容或特定提交内容,以提供与提交内容相关的问题的答案。@github Explain the changes in the code of this commit
讨论详细信息检索特定的 GitHub 讨论。 这对于快速获取讨论中的对话 Gist 非常有用。@github Summarize this discussion LINK-TO-DISCUSSION
文件详细信息检索 Git 存储库中默认分支的特定文件,以方便你询问有关该文件以及最近更改的问题。 当你在存储库中提供文件的确切路径时,此技能非常有用。@github What logic does user_auth.js encapsulate?

@github What is the file history of user_auth.js?
GitHub Advanced Security从 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts)检索有关组织内安全警报的信息。@github How would I fix this code scanning alert?
问题详细信息检索特定 GitHub 问题,包括问题的标题、编号、作者、状态、正文、链接的拉取请求、注释和时间戳。@github List issues assigned to me
知识库搜索告知 Copilot Chat 在知识库上下文中回答问题。 若要启动知识库搜索,请先输入 @github #kb输入 @github #kb,然后选择组织的风格指南知识库,然后询问:What is our coding convention for indentation?
词法代码搜索Git 存储库默认分支中的关键字代码搜索。 当想要了解代码中存在的特定函数、方法或关键字时,此技能很有用。 此技能利用 GitHub 搜索的大多数功能,例如 symbolpathFind me the tests for the GitService class
路径搜索检索 Git 存储库默认分支中的某个具体文件。 当你在存储库中提供文件的确切路径时,此技能非常有用。@github What logic does user_auth.js encapsulate?
拉取请求详细信息检索特定的拉取请求。 这有利于你询问有关该拉取请求的问题,包括获取拉取请求的摘要、其注释或更改的代码。@github List my recent pull requests
版本详细信息检索最新版本或指定版本。 这样即可了解谁创建了发布、何时创建的发布以及发行说明中包含的信息。@github When was the latest release?
存储库详细信息检索特定的 GitHub 存储库。 这对于查找详细信息(例如存储库所有者和使用的主要语言)非常有用。@github Tell me about PATH-TO-REPOSITORY
语义代码搜索Git 存储库默认分支中的自然语言语义代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:这要求为存储库启用索引编制(请参阅“为 Copilot 聊天编制存储库索引”)。

适用于所有具有 Copilot Enterprise 订阅的存储库,以及具有 Copilot Individual 或 Copilot Business 订阅的公共存储库。
How does this repo manage HTTP requests and responses?
支持搜索GitHub 支持门户 检索信息。 此技能可用于向 Copilot Chat 询问有关 GitHub 产品和支持相关问题。@github Can I use Copilot knowledge bases with Copilot Individual?
Web 搜索使用必应搜索引擎搜索网页。 此技能可用于向 Copilot 提供有关最近事件、新发展、趋势、技术或极其具体、详细或小众的主题(仅适用于 Copilot Enterprise 或 Copilot Business 订阅)。否(需要管理员批准 - 请参阅“管理企业中 Copilot 的策略和功能”)@github #web What are some recent articles about SAT tokens securing against vulnerabilities in Node?

询问有关知识库的问题

Note

仅当具有 Copilot Enterprise 订阅时,此功能才可用。

组织所有者可以创建知识库,将一个或多个存储库中的 Markdown 文档归为一组。 有关详细信息,请参阅“管理 Copilot 知识库”。

可以告知 Copilot 在知识库上下文中回答问题。

  1. 在 Copilot Chat 窗口底部的“向 Copilot 询问问题或键入“/”以输入命令”文本框,键入 @github #kb,然后按 Enter 以打开知识库选择器。
  2. 使用箭头键选取其中一个可用的知识库,然后按 Enter
  3. 在“向 Copilot 询问问题或键入“/”以输入命令”文本框中,继续输入问题消息,然后按 Enter
  4. Copilot Chat 将在聊天窗口中处理问题并提供答案,并引用知识库。

访问 Copilot Chat 的其他方法

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

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

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

分享反馈

要表明回复是否有用,请使用回复旁边显示的“拇指向上”和“拇指向下”图标。

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

延伸阅读

先决条件

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“Managing policies for Copilot in your organization”。

提交提示

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

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

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

  3. 评估 Copilot 的响应,并根据需要提交跟进提示。

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

    要查看 Copilot Chat 用于生成响应的文件,请选择响应下方的“引用”**** 下拉列表。

在提示中使用关键字

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

扩展 Copilot Chat

Note

GitHub Copilot Extensions 为 公共预览版,可能随时更改。

GitHub Copilot Extensions 将外部工具的强大功能集成到 Copilot Chat 中,帮助减少上下文切换并接收具有特定域上下文的响应。 可以从 GitHub Marketplace 安装 Copilot Extensions,或在组织中构建私有的 Copilot Extensions,然后在聊天窗口中键入 @ 即可查看可用扩展的列表。 若要使用扩展,请从列表中选择该扩展或键入完整的 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 文档中的 引用

使用适用于 Copilot 的 GitHub 技能(预览版)

Note

  • 仅当具有 Copilot Enterprise 订阅时,此功能才可用。
  • @github 聊天参与者目前为预览版,仅支持 Visual Studio 2022 预览版 2 及更高版本。

Copilot 具有一系列 GitHub 特定的技能,可用于回答问题。 若要在 Visual Studio 中的 Copilot Chat 中访问这些技能,请在问题中包含 @github

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

当前可用的技能

可以通过询问 Copilot 来生成当前可用的技能列表:@github What skills are available?

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

技能说明默认情况下是否启用?示例问题
知识库搜索告知 Copilot Chat 在知识库上下文中回答问题。 若要启动知识库搜索,请先输入@github,再按 #,然后选择知识库。输入 @github #,然后选择组织的风格指南知识库,然后询问:What is our coding convention for indentation?
词法代码搜索Git 存储库默认分支中的关键字代码搜索。 当想要了解代码中存在的特定函数、方法或关键字时,此技能很有用。 此技能利用 GitHub 搜索的大多数功能,例如 symbolpathFind me the tests for the GitService class
路径搜索检索 Git 存储库默认分支中的某个具体文件。 当你在存储库中提供文件的确切路径时,此技能非常有用。@github What logic does user_auth.js encapsulate?
语义代码搜索Git 存储库默认分支中的自然语言语义代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。 注意:这要求为存储库启用索引编制(请参阅“为 Copilot 聊天编制存储库索引”)。

适用于所有具有 Copilot Enterprise 订阅的存储库,以及具有 Copilot Individual 或 Copilot Business 订阅的公共存储库。
How does this repo manage HTTP requests and responses?
Web 搜索使用必应搜索引擎搜索网页。 此技能可用于教“助手”了解最新事件、新的开发进度、趋势、技术或非常具体、详细或精细的主题。否(需要管理员批准 - 请参阅“管理企业中 Copilot 的策略和功能”)@github What are some recent articles about SAT tokens securing against vulnerabilities in Node?

询问有关知识库的问题(预览版)

Note

  • 仅当具有 Copilot Enterprise 订阅时,此功能才可用。
  • 知识库支持目前为预览版,并且仅 Visual Studio 2022 预览版 3 及更高版本中可用。

组织所有者可以创建知识库,将一个或多个存储库中的 Markdown 文档归为一组。 有关详细信息,请参阅“管理 Copilot 知识库”。

可以告知 Copilot 在知识库上下文中回答问题。

  1. 在 Copilot Chat 窗口底部的“询问 Copilot:键入 / 以执行命令,键入 # 以进行参考”文本框中,键入 @github,然后按 #,随后从列表中选择知识库。****
  2. 在“键入 / 以执行命令,键入 # 以进行参考”文本框中,继续发送问题消息,然后按 Enter。********
  3. Copilot Chat 将在聊天窗口中处理问题并提供答案,并引用知识库。

访问 Copilot Chat 的其他方法

除了通过聊天窗口提交提示外,还可以内联提交。 要启动内联聊天,请在编辑器窗口中右键单击鼠标,选择“询问 Copilot”****。

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

分享反馈

若要共享有关 Copilot Chat 的反馈,可以使用 Visual Studio 中的“共享反馈”按钮。 有关为 Visual Studio 提供反馈的详细信息,请参阅 Visual Studio 反馈文档。

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

    Visual Studio 中“共享反馈”按钮的屏幕截图。

  2. 选择最恰当地描述你的反馈的选项。

    • 若要报告 bug,请单击“报告问题”。
    • 若要请求功能,请单击“建议功能”。

延伸阅读

先决条件

  • 对 GitHub Copilot 的访问权限。 请参阅“关于 GitHub Copilot”。

  • 兼容的 JetBrains IDE****。 GitHub Copilot 与以下 IDE 兼容:

    • IntelliJ IDEA(旗舰版、社区版、教育版)
    • Android Studio
    • AppCode
    • CLion
    • Code With Me Guest
    • DataGrip
    • DataSpell
    • GoLand
    • JetBrains Client
    • MPS
    • PhpStorm
    • PyCharm(专业版、社区版、教育版)
    • Rider
    • RubyMine
    • RustRover
    • WebStorm
    • Writerside

    请参阅 JetBrains IDE 工具查找器进行下载。

  • GitHub Copilot**** 插件。 请参阅 JetBrains Marketplace 中的 GitHub Copilot 插件。 有关安装说明,请参阅“在环境中安装 GitHub Copilot 扩展”。

  • 在 JetBrains IDE 中登录到 GitHub。 有关身份验证说明,请参阅“在环境中安装 GitHub Copilot 扩展”。

如果可通过组织 或企业 访问 GitHub Copilot,则如果组织所有者 或企业管理员 禁用了聊天,你将无法使用 GitHub Copilot Chat。 请参阅“Managing policies for Copilot in your organization”。

提交提示

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

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

    活动栏中 Copilot Chat 图标的屏幕截图。

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

  3. 评估 Copilot 的响应,并根据需要提交跟进提示。

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

    要查看 Copilot Chat 用于生成响应的文件,请选择响应下方的“引用”**** 下拉列表。

在提示中使用关键字

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

扩展 Copilot Chat

Note

GitHub Copilot Extensions 为 公共预览版,可能随时更改。

GitHub Copilot Extensions 将外部工具的强大功能集成到 Copilot Chat 中,帮助减少上下文切换并接收具有特定域上下文的响应。 可以从 GitHub Marketplace 安装 Copilot Extensions,或在组织中构建私有的 Copilot Extensions,然后在聊天窗口中键入 @ 即可查看可用扩展的列表。 若要使用扩展,请从列表中选择该扩展或键入完整的 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 窗口打开。

    活动栏中 Copilot Chat 图标的屏幕截图。

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

    Copilot Chat 窗口中共享反馈链接的屏幕截图。

延伸阅读