使用GitHub Copilot聊天生成代码
Visual Studio Code的 GitHub Copilot 聊天扩展支持以下聊天接口:
聊天视图提供随时为你提供帮助的 AI 助手。
快速聊天窗口可用于提出一个简单的问题,然后返回到你正在做的事情。
编码时, 内联聊天 界面直接在编辑器中打开,用于上下文交互。
“聊天”视图和“快速聊天”窗口通过 AI 启用交互式多轮次对话。 这两个接口都提供了一种方法来提问、获取有关编码问题的帮助以及生成代码。 聊天视图是一个更可靠的界面,可提供完整的聊天体验,而快速聊天窗口专为快速交互而设计。
内联聊天界面旨在提供编码时的上下文帮助和代码建议。 内联聊天界面在编辑器中可用,它允许你提问并获取特定代码片段的帮助。
使用聊天视图生成代码
聊天视图为你和AI配对程序员之间的对话提供了管理环境。 可以使用聊天视图提问、获取有关编码问题的帮助以及生成代码。 聊天视图设计为比内联聊天界面更具交互性和对话性体验。
默认情况下,聊天视图位于Visual Studio Code窗口右侧的辅助侧栏中。
聊天视图支持三个内置代理: Ask、 Plan 和 Agent。 可以从聊天视图中的代理选取器中选择代理。
使用 Ask 代理生成代码
Ask 代理旨在帮助分析代码,并在建议代码实现之前调查新功能的选项。 使用 Ask 代理时,GitHub Copilot充当对话助理,可提供问题的答案,并帮助你处理编码问题或新功能。
打开聊天视图,然后从代理选取器中选择 “询问 ”。
向聊天添加上下文。
Ask 代理支持聊天参与者、斜杠命令和聊天变量。 您可以将
@workspace聊天参与者添加到聊天中,或将#codebase添加到聊天中,以提供上下文以及附带的文件或文件夹。提出有助于评估要实现的新功能的问题。
例如,你可能要求GitHub Copilot帮助你了解如何实现新功能或如何使用特定库。
- 如何添加登录页?
- 使用 React 的最佳做法是什么?
- 如何使用
@mui/material库?
构造描述要实现的代码功能的提示。
提示应包含要实现的代码功能的说明。 例如:
Create the code to obtain a book title. Prompt the user to "Enter a book title to search for". Read the user input and ensure the book title isn't null.在聊天视图中查看建议的代码。
聊天视图中显示的响应应包含可用于实现该功能的代码片段。 可以输入更多提示来优化代码或请求更多详细信息。
若要实现建议的代码,可以将鼠标指针悬停在代码片段上,然后在 “应用”、“ 插入”和 “复制 ”选项之间进行选择。
- 应用:将代码建议应用于编辑器中的当前文件。
- 插入:在编辑器中的当前光标位置插入代码建议。
- 复制:将代码建议复制到剪贴板。
如果需要,请继续迭代并优化新功能,增加提示。
在编码之前使用计划代理进行计划
Plan 代理旨在帮助你在编写任何代码之前研究和规划任务。 使用计划代理时,GitHub Copilot分析代码库,提出澄清问题,并创建结构化的分步实施计划。 完成计划后,可以将其移交给实现代理。
打开聊天视图,然后从代理选取器中选择“ 计划 ”。
向聊天添加上下文。
计划代理使用只读工具和代码库分析来研究任务。 可以将文件和文件夹添加到聊天中,以提供其他上下文。
构建一个提示,用于描述您想要计划的任务。
提示应包含要实现的功能或任务的说明。 例如:
Implement a user authentication system with OAuth2 and JWT.回答计划代理提出的任何澄清性问题。
计划代理会研究你的任务,并可能在起草计划之前提出问题来解决歧义。
查看建议的计划。
计划代理提供概要摘要、实施步骤明细、验证条件和记录的决策。 可以通过提供反馈来改进计划。
完成计划后,使用按钮开始实现或在编辑器中打开计划,以便进一步查看。
可以选择在同一聊天会话中实现计划,或者启动后台或云代理会话以自主处理实现。
使用代理生成代码
在代理模式下使用GitHub Copilot时,GitHub Copilot充当可以代表你执行操作的自主代理。 可以要求GitHub Copilot执行特定任务,并根据请求生成代码。
重要
使用代理模式时,GitHub Copilot可能会发出多个高级请求来完成单个任务。 高级功能请求可用于用户发起的命令或输入,以及 GitHub Copilot 代表你执行的后续操作。 所使用的高级请求总数取决于任务的复杂性、所涉及的步骤数和所选模型。
打开“聊天”视图,然后从代理选取器中选择 “代理 ”。
构造一个提示,描述您希望GitHub Copilot执行的任务。
例如,可以要求GitHub Copilot生成新功能或创建全新的应用。
- 使用 React 和 Node.js 创建餐饮规划 Web 应用
- 添加社交媒体共享功能
- 将当前身份验证替换为 OAuth
代理可能会调用多个工具来完成不同的任务。 (可选)选择“工具”图标以配置可用于响应请求的工具。
确认工具调用和终端命令。
在GitHub Copilot运行终端命令或未内置工具之前,它会请求确认以继续。 GitHub Copilot请求您的确认,因为工具可能会在您的计算机上本地运行,并执行修改文件或数据的操作。
GitHub Copilot检测代码编辑和终端命令中的问题和故障,并迭代执行操作以解决问题。
在 GitHub Copilot 处理请求时,它会直接在编辑器中流式呈现建议的代码编辑。
查看这些建议的修改,并选择接受或拒绝。
如果需要,请继续迭代并优化新功能,增加提示。
使用内联聊天会话生成代码
内联聊天会话可用于分析和生成代码。 仅当在代码编辑器中打开文件时,才能访问内联聊天界面。 它可用于分析所选代码或基于提示创建新代码。
在编辑器中打开文件。
使用 Ctrl+I 键盘快捷方式或从标题栏中的 “聊天”菜单中选择“打开内联聊天”来打开内联聊天 会话。
内联聊天会话将在编辑器中的光标位置处打开。
在编辑器中选择代码块。
所选代码用作提示的上下文。 如果未选择任何代码,提示将使用整个文件作为上下文。
在聊天输入字段中输入提示。
例如:
Update selection to include an option for the `CommonActions.SearchBooks` action. Use the letter "b" and the message "to check for book availability".代码更新建议在编辑器中显示为代码差异。
查看建议的代码更新,然后接受或放弃更改。
如果需要,请继续迭代并优化新功能,增加提示。
概要
GitHub Copilot聊天提供了一组功能强大的工具,用于生成代码和协助编码任务。 聊天视图、快速聊天窗口和内联聊天会话都提供了不同的方式来与 AI 搭档程序员交互并获取有关编程问题的帮助。 通过有效地使用这些工具,可以提高编码工作效率和效率。