本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

VS Code中的提示工程

本文介绍了如何编写提示以在Visual Studio Code中获得更好和更相关的AI响应。提示工程提示制作是讨论AI时你会听到的常见术语,指的是如何将信息打包并发送到AI API端点。

如果您是VS Code或AI的新手,您可能需要先查看VS Code中的AI概述文章,或者直接进入入门教程。

充分利用内联建议

内联建议通过自动提供完成代码、注释、测试等的建议来帮助你更高效地编码。有一些方法可以帮助(“提示”)AI给你最好的建议。

提供上下文

当AI有足够的上下文来了解你在做什么以及需要什么帮助时,它表现得最好。就像在向同事寻求特定编程任务的帮助时会提供上下文一样,你也可以对AI这样做。

打开文件

对于内联建议,VS Code 会查看你编辑器中的当前和打开的文件,以分析上下文并创建适当的建议。在使用内联建议时,如果在 VS Code 中打开相关文件,有助于设置这个上下文,并让 AI 看到你项目更大的图景。

顶级评论

就像你会给同事一个简短的高级介绍一样,在你正在处理的文件中添加一个顶级评论可以帮助人工智能理解你正在创建的整体上下文。

适当的包括和引用

最好手动设置您工作所需的包含文件或模块引用。AI可以提供建议,但您可能最清楚需要包含哪些依赖项。这也可以帮助AI了解您希望在生成建议时使用哪些框架、库及其版本。

在下面的 TypeScript 示例中,我们希望记录输出添加方法。当我们没有包含任何内容时,AI 建议使用控制台日志输入:

AI内联建议在文件中没有导入时提出使用Console.log。 另一方面,当你添加一个引用到Log4js,AI建议使用该框架来记录输出:

AI内联建议建议使用导入的日志记录框架进行日志记录。

有意义的函数名称

正如一种称为的方法获取数据()对同事(或你自己在几个月后)来说意义不大,获取数据()这也不会帮助人工智能。使用有意义的功能名称有助于人工智能提供符合你期望的代码。

具体且范围明确的功能注释

函数名称只能在如此描述性的同时避免过长。函数注释可以帮助补充人工智能可能需要了解的细节。

Prime AI 与示例代码

让 AI 对准正确页面的一个技巧是,将接近所需示例代码复制并粘贴到你打开的编辑器中。提供一个小例子可以帮助 AI 生成符合你想要的语言和任务的建议。一旦 AI 开始向你提供你真正需要的代码,你可以从文件中删除示例代码。当 AI 默认提供较旧的代码建议时,这特别有助于启动 AI 到更新的库版本。

保持一致并保持高质量标准

AI 会抓取你的代码以生成符合现有模式的建议,因此“输入垃圾,输出垃圾”这句格言适用。 保持高质量标准需要自律。特别是在你快速编码以获得某种工作效果时,你可能希望在“黑客”模式下禁用自动完成。要暂时暂停内联建议,请在状态栏中选择 Copilot 菜单,然后选择暂停按钮以将暂停时间增加五分钟。要恢复内联建议,请在 Copilot 菜单中选择取消暂停按钮。

状态栏中的Copilot菜单的截图,带有“稍后提醒”和“取消稍后提醒”按钮。

充分利用聊天

当你在使用聊天时,有几件事可以帮助你优化体验。

添加相关背景

您可以通过输入 来明确地为您的提示添加上下文。#接着是您想提到的上下文项。VS Code 支持不同类型的上下文项:文件、文件夹、代码符号、工具、终端输出、源代码控制更改等。

输入:# 在聊天输入框中输入符号以查看可用上下文项目列表,或在聊天视图中选择添加上下文以打开上下文选择器。

例如,使用#<文件名>#<文件夹名称>您可以在聊天提示中从您的工作区引用特定的文件或文件夹。这通过提供有关您正在处理的文件的上下文信息,帮助使 Copilot Chat 的答案更符合您的代码。您可以像问“#package.json 能否提出改进建议?”或“如何在 #devcontainer.json 中添加一个扩展?”这样的问题。

与其手动添加单个文件,不如通过使用让 VS Code 自动从你的代码库中找到正确的文件#代码库这在您不知道哪些文件与您的问题相关时可能会很有用。

聊天视图的截图,显示了附件上下文按钮和上下文快速选择。

了解更多关于在聊天中使用上下文的信息。

具体且简单明了

当你要求聊天执行某项任务时,请具体说明你的要求,并将一项大任务分解为多个较小的任务。例如,不要要求聊天创建一个使用TypeScript和Pug的Express应用,并且该应用有一个从MongoDB数据库检索数据的产品页面。相反,先要求创建一个使用TypeScript和Pug的Express应用。接下来,要求添加一个产品页面,最后要求从数据库中检索客户数据。

当你要求聊天执行特定任务时,请明确说明你希望使用的输入、输出、API 或框架。你的提示越具体,结果就会越好。例如,不要使用 "从数据库中读取产品数据",而是使用 "按类别读取所有产品,以JSON格式返回数据,并使用Mongoose库"。

改进你的解决方案

当向聊天寻求帮助时,您并不局限于第一个回复。您可以进行迭代并提示聊天改进解决方案。聊天既具有生成代码的上下文,也具有您当前的对话。 以下是使用内联聊天创建计算斐波那契数的函数的示例:

人工智能对一个计算斐波那契数列的函数的首次响应

也许你更喜欢一个不使用递归的解决方案:

请 AI 不使用递归并返回新结果

你甚至可以要求 AI 遵循编码规范或改进变量名称:

请AI使用更好的变量名称并输出新结果

即使你已经接受了结果,你也可以随时要求 AI 后续优化代码。

更多关于提示 Copilot 的资源

如果你想了解更多关于如何高效使用 GitHub Copilot 的信息,可以参考这些视频和博客文章: