检查GitHub Copilot中的提示和关键字

已完成

GitHub Copilot的聊天界面使用自然语言处理和机器学习来解释提示并提供相关响应。 提示和提供的上下文对于生成准确且有用的响应至关重要。

提示质量

编写GitHub Copilot提示时,请考虑以下准则以提高响应质量:

  • 提交的提示应清晰、简洁和具体。 例如,可以询问“如何使用此函数?”,而不是询问“是否可以解释函数 calculateTotalshoppingCart.js 文件中的工作原理?”

  • 当需要编写较长的提示时,应使用几个简短的句子来编写提示。 以概述开始,描述你的目标,然后提供具体的详细信息。

  • 请考虑将复杂的提示分解为更小、更易于管理的部件。 分解复杂的提示有助于 AI 了解意图并提供更准确的响应。 后续提示可以基于前面的提示,从而优化请求并获取更具体的答案。 与合作程序员合作类似于与人一起工作。 最好先制定对话框架,然后描述特定详细信息,而不是在可能被误解的单个请求中发送所有内容。

使用提示关键字

除了处理自然语言文本之外,GitHub Copilot 对话助手还使用关键字来帮助指定提示的上下文和意图。 关键字是在 GitHub Copilot 对话助手 中具有特定含义的特殊词或短语。 通过使用关键字,可以帮助 AI 了解所请求的内容并提供更相关的响应。

GitHub Copilot使用以下关键字来帮助指定提示的上下文和意图:

  • 聊天参与者:聊天参与者类似于特定领域的专家,可帮助GitHub Copilot生成更好的响应。 聊天参与者是使用 @ 符号指定的。

  • 斜杠指令:斜杠指令有助于描述提示的意图(目标或目的)。 回答问题时,GitHub Copilot 对话助手的任务之一是确定意图,了解要执行的操作。 斜杠命令可以帮助阐明你的意图。

  • 聊天变量:聊天变量提供特定于域的上下文。 可以在聊天提示中使用 # 符号来引用聊天变量。 通过使用聊天变量,可以更具体地了解聊天提示中包含的上下文。

聊天参与者

GitHub Copilot 对话助手在了解你感兴趣的上下文并可以应用最佳资源时提供更好的响应。 可以通过向提示添加聊天参与者来帮助 GitHub Copilot 对话助手生成更好的响应。 聊天参与者就像特定领域的专家一样,可提供更好的响应。 聊天参与者是使用 @ 符号指定的。

目前,GitHub Copilot 对话助手支持以下内置聊天参与者:

  • @vscode@vscode参与者了解Visual Studio Code编辑器本身中的命令和功能,并可以帮助你使用它们。
  • @terminal@terminal 参与者可以帮助处理集成的终端 shell 及其内容。
  • @github @github:参与者可以帮助获取基于 Web 搜索、代码搜索和企业知识库的答案。

可以将提示作为特定聊天参与者的前缀,以帮助GitHub Copilot生成更相关的响应。

/ 命令

斜杠命令可帮助 GitHub Copilot 对话助手在提出问题时了解你的意图。 你是否了解代码库(/explain)、是否希望帮助解决问题(/fix),还是要创建测试用例(/tests)? 通过让 GitHub Copilot 对话助手知道要执行的操作,它可以优化其对任务的回复,并提供有用的命令、设置和代码片段。

聊天参与者通常与 / 命令捆绑在一起。 斜杠命令是向聊天参与者解释意图的简明方法。 /explain斜线命令通常与#codebase聊天参与者一起使用。 聊天参与者和 / 命令的组合是阐明意图的强大方法。

例如,请考虑以下示例提示:

Create a new workspace that uses Node.js, the Express framework, the Pug template engine, and TypeScript.

GitHub Copilot可能会将此提示解释为请求使用指定技术创建的新代码项目,但GitHub Copilot更容易理解以下使用关键字的提示:

/new Node.js Express Pug TypeScript

如果输入第二个提示符,GitHub Copilot建议以下目录结构。 文件列表可用于预览建议的文件,“ 创建工作区 ”按钮可用于在新文件夹中生成文件。

显示聊天视图中的“新建工作区”提示的屏幕截图。

内置 / 命令的示例:

  • /help:获取有关使用GitHub Copilot的帮助。
  • /doc:生成代码文档。
  • /clear:启动新的聊天会话。
  • /explain:说明所选代码的工作原理。
  • /tests:为所选代码生成单元测试。
  • /fix:建议针对所选代码进行修复。
  • /new:新工作区的基架代码。 仅将聊天提示用作上下文。
  • /newNotebook:创建新的Jupyter Notebook。 仅将聊天提示用作上下文。

使用聊天参与者和变量结合斜杠命令的示例:

  • #codebase /explain:生成完整工作区的说明。
  • #codebase /fix (或 /fix):建议解决所选代码中的问题。
  • #codebase /tests (或 /tests):为所选代码生成单元测试。
  • @vscode:询问有关 VS Code 功能、设置和扩展 API 的问题。 例如:@vscode how to enable word wrapping?
  • #codebase /new (或 /new):新工作区的基架代码。
  • #codebase /newNotebook (或 /newNotebook):创建新的Jupyter Notebook。

聊天变量

聊天变量用于指定上下文。 可以在聊天提示中使用 # 符号来引用聊天变量。 例如,变量 #selection 包含活动编辑器中的文本选择。

通过使用聊天变量,可以更具体地了解聊天提示中包含的上下文。 例如,提示“使用哪种排序算法 #selection”将聊天请求集中在所选代码片段上。

聊天参与者(例如 @vscode)可以参与提供特定领域上下文的聊天变量。

内置聊天变量的示例包括:

  • #editor:活动编辑器中的可见源代码。
  • #selection:活动编辑器中的当前选择。 编辑器内容隐式包含在聊天视图上下文中。
  • #<file or folder name>:键入 #,后跟文件或文件夹名称,将其添加到聊天上下文中。
  • #codebase:将相关的工作区内容作为上下文添加到提示。
  • #terminalSelection:当前终端的选择。
  • #terminalLastCommand:活动终端的最后一个运行命令。

什么是 #codebase

  • 关键字 #codebase 是一种工具,该工具基于用户提示执行基本代码搜索,并将相关代码作为上下文添加到聊天提示。
  • 使用 #codebase 关键字时,语言模型将保持控制状态,并且可以与其他工具组合 #codebase 以用于编辑方案。
  • 关键字 #codebase 可用于所有聊天模式(Ask、Agent 和 Plan)。
  • 示例:“”、“add a tooltip to this button, consistent with other button #codebaseadd unit tests and run them #codebase

GitHub建议在聊天提示中使用 #codebase,因为它提供了更大的灵活性。

概要

GitHub Copilot的聊天界面使用自然语言处理和机器学习来解释提示并提供相关响应。 提示和提供的上下文对于生成准确且有用的响应至关重要。 可以通过使用清晰、简洁、具体提示、将复杂提示分解为较小部分以及使用聊天参与者、斜杠命令和聊天变量等关键字来提高响应的质量。