检查 GitHub Copilot 提示和关键字
GitHub Copilot 的聊天界面使用自然语言处理和机器学习来解释提示并提供相关响应。 提示和提供的上下文对于生成准确且有用的响应至关重要。
提示质量
编写 GitHub Copilot 的提示时,请考虑以下准则以提高响应质量:
提交的提示应清晰、简洁和具体。 例如,可以询问“如何使用此函数?”,而不是询问“是否可以解释函数
calculateTotal
在shoppingCart.js
文件中的工作原理?”当需要编写较长的提示时,应使用几个简短的句子来编写提示。 以概述开始,描述你的目标,然后提供具体的详细信息。
请考虑将复杂的提示分解为更小、更易于管理的部件。 分解复杂的提示有助于 AI 了解意图并提供更准确的响应。 后续提示可以基于前面的提示,从而优化请求并获取更具体的答案。 与合作程序员合作类似于与人一起工作。 最好先制定对话框架,然后描述特定详细信息,而不是在可能被误解的单个请求中发送所有内容。
使用提示关键字
除了处理自然语言文本之外,GitHub Copilot Chat 还使用关键字来帮助指定提示的上下文和意图。 关键字是 GitHub Copilot Chat 上下文中具有特定含义的特殊字词或短语。 通过使用关键字,可以帮助 AI 了解所请求的内容并提供更相关的响应。
GitHub Copilot 使用以下关键字来帮助指定提示的上下文和意图:
聊天参与者:聊天参与者类似于特定领域的专家,可帮助 GitHub Copilot 生成更好的响应。 聊天参与者是使用
@
符号指定的。斜杠指令:斜杠指令有助于描述提示的意图(目标或目的)。 回答问题时,Copilot Chat 的任务之一是确定意图,了解要执行的操作。 斜杠命令可以帮助阐明你的意图。
聊天变量:聊天变量提供特定于域的上下文。 可以使用
#
符号在聊天提示符中引用聊天变量。 通过使用聊天变量,可以更具体地了解聊天提示中包含的上下文。
聊天参与者
GitHub Copilot Chat 在了解你感兴趣的上下文并可以应用最佳资源时提供更好的响应。 可以通过向提示添加聊天参与者来帮助 GitHub Copilot Chat 生成更好的响应。 聊天参与者就像特定领域的专家一样,可提供更好的响应。 聊天参与者是使用 @
符号指定的。
目前,Copilot Chat 支持以下内置聊天参与者:
-
@workspace
@workspace
:参与者可以帮助回答有关工作区中的代码的问题,或建议重构或改进代码的方法。 -
@vscode
:@vscode
参与者了解 Visual Studio Code 编辑器本身中的命令和功能,并可以帮助你使用它们。 -
@terminal
:@terminal
参与者可提供有关集成终端 shell 及其内容的帮助。 -
@github
@github
:参与者可以帮助获取基于 Web 搜索、代码搜索和企业知识库的答案。
可以在提示前添加特定聊天参与者,以帮助 Copilot 生成更相关的响应。
/ 命令
/ 命令可帮助 Copilot Chat 了解你在提出问题时的意图。 你是否正在了解代码库 (/explain
),是否希望帮助修复问题 (/fix
),还是要创建测试用例 (/tests
)? 通过让 Copilot Chat 知道你正在尝试执行的操作,它可以优化其对任务的回复,并提供有用的命令、设置和代码片段。
聊天参与者通常与 / 命令捆绑在一起。 斜杠命令是向聊天参与者解释意图的简明方法。
/explain
斜杠命令通常与@workspace
聊天参与者捆绑在一起。 聊天参与者和 / 命令的组合是阐明意图的强大方法。
例如,请考虑以下示例提示:
Create a new workspace that uses Node.js, the Express framework, the Pug template engine, and TypeScript.
GitHub Copilot 可能会将此提示解释为请求使用指定技术创建的新代码项目,但 GitHub Copilot 更容易理解以下使用关键字的提示:
@workspace /new Node.js Express Pug TypeScript
如果输入第二个提示符,GitHub Copilot 会提出以下目录结构。 文件列表可用于预览建议的文件,“ 创建工作区 ”按钮可用于在新文件夹中生成文件。
内置 / 命令的示例:
-
/help
:获取有关使用 GitHub Copilot 的帮助。 -
/doc
:生成代码文档。 -
/clear
:启动新的聊天会话。 -
/explain
:说明所选代码的工作原理。 -
/tests
:为所选代码生成单元测试。 -
/fix
:为所选代码建议修复方案。 -
/new
:新工作区的基架代码。 仅将聊天提示用作上下文。 -
/newNotebook
:新建 Jupyter Notebook。 仅将聊天提示用作上下文。
将聊天参与者与 / 杠命令结合使用的示例:
-
@workspace /explain
:生成完整工作区的说明。 -
@workspace /fix
(或/fix
):为所选代码中的问题建议修复方案。 -
@workspace /tests
(或/tests
):为所选代码生成单元测试。 -
@vscode /api
(或/api
):询问 Visual Studio Code 扩展开发。 -
@workspace /new
(或/new
):新工作区的基架代码。 -
@workspace /newNotebook
(或/newNotebook
):新建 Jupyter Notebook。
聊天变量
聊天变量用于指定上下文。 可以使用 #
符号在聊天提示符中引用聊天变量。 例如,#selection
变量包含活动编辑器中的文本选择。
通过使用聊天变量,可以更具体地了解聊天提示中包含的上下文。 例如,提示“#selection
中使用的排序算法”将聊天请求集中在所选代码片段上。
聊天参与者(如 @workspace 或 @vscode)可以参与提供域特定上下文的聊天变量。
内置聊天变量的示例包括:
-
#editor
:活动编辑器中的可见源代码。 -
#selection
:活动编辑器中的当前选择。 编辑器内容隐式包含在聊天视图上下文中。 -
#<file or folder name>
:输入 #,然后接文件或文件夹名称,以将其添加到聊天上下文中。 -
#codebase
:将相关的工作区内容作为上下文添加到提示。 -
#terminalSelection
:活动终端的选择。 -
#terminalLastCommand
:活动终端的最后一个运行命令。
@workspace
与 #codebase
有何差异?
从概念上讲,@workspace
和 #codebase
都能够让您对整个代码库提出问题。 但是,在如何使用它们方面存在一些差异:
关于@workspace
关键字:
- 关键字
@workspace
是一个聊天参与者,专用于回答有关代码库的问题。 - 关键字
@workspace
控制用户提示,并使用代码库提供答案。 - 关键字
@workspace
无法调用其他工具。 - 使用询问模式时,才能使用
@workspace
关键字。 - 示例:“
@workspace how can I validate a date?
”
关于#codebase
关键字:
- 关键字
#codebase
是一种工具,该工具基于用户提示执行基本代码搜索,并将相关代码作为上下文添加到聊天提示。 - 使用
#codebase
关键字时,语言模型将保持控制状态,并且可以与其他工具组合#codebase
以用于编辑方案。 - 关键字
#codebase
可用于所有聊天模式(Ask、Edit 和 Agent)。 - 示例:“”、“
add a tooltip to this button, consistent with other button #codebase
”add unit tests and run them #codebase
”
GitHub 建议在聊天提示中使用 #codebase
,因为它提供了更大的灵活性。
概要
GitHub Copilot 的聊天界面使用自然语言处理和机器学习来解释提示并提供相关响应。 提示和提供的上下文对于生成准确且有用的响应至关重要。 可以通过使用清晰、简洁、具体提示、将复杂提示分解为较小部分以及使用聊天参与者、斜杠命令和聊天变量等关键字来提高响应的质量。