VS Code 中的提示工程

本文介绍了在Visual Studio Code中获得更好、更相关AI回复的写作提示的技巧。提示工程提示制作是你在讨论人工智能时经常听到的一个词,指的是如何以及哪些信息被打包并发送到AI API终端。

如果你是VS Code或AI的新手,建议先阅读《VS Code中的AI概览》文章,或者直接进入入门教程。

充分利用内联建议

内联建议通过自动提供完成代码的建议、注释、测试等,帮助你更高效地编写代码。你可以做一些事情来帮助(“提示”)AI给出最佳建议。

提供背景

AI在有足够上下文了解你在做什么、需要什么帮助时表现最好。就像你在向同事请求某个编程任务时提供上下文一样,你也可以用AI来做同样的事。

打开文件

对于内嵌建议,VS Code 会在编辑器中查看当前和已打开的文件,分析上下文并生成合适的建议。在VS Code中打开相关文件并使用内联建议,有助于设定上下文,让AI看到你项目的整体情况。

顶层评论

就像你会给同事做简短的高级介绍一样,文件中的顶层评论可以帮助AI理解你所创作作品的整体背景。

适当的包含与参考文献

最好手动设置你需要的包含或模块引用。AI可以提出建议,但你最清楚需要包含哪些依赖。这也能帮助AI知道你希望它使用哪些框架、库及其版本来制定建议。

在下面的TypeScript示例中,我们想记录add方法。当我们没有包含时,AI建议使用console.log:

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

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

有意义的功能名称

就像一个叫fetchData()对同事(或者几个月后你)来说也没什么意义,fetchData()这对AI也没什么帮助。使用有意义的功能名称有助于AI提供一个能满足你需求的身体。

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

函数名称只能如此描述,不能过长。函数注释可以帮助补充AI可能需要知道的细节。

带示例代码的Prime AI

让AI出现在正确页面的一个技巧是,把接近你想要的示例代码复制粘贴到你的开启编辑器里。提供一个小例子可以帮助AI生成与你想完成的语言和任务相匹配的建议。一旦 AI 开始给你想要且会用的代码,你可以从文件中删除示例代码。这对于当AI默认提供旧代码建议时,能快速启动到更新的库版本时尤其有帮助。

保持一致性,保持高质量标准

AI会抓住你的代码,生成符合现有模式的建议,所以“垃圾进,垃圾出”这句老话适用。 始终保持高质量的酒吧需要纪律。尤其是当你快速随意编程以让东西运行时,可能想在“黑客”模式下禁用完成。要暂时延迟内联建议,请在状态栏中选择副驾驶菜单,然后选择贪按钮,将延迟增加五分钟。要继续在线建议,请在副驾驶菜单中选择取消贪睡按钮。

状态栏中副驾驶菜单的截图,按钮是贪睡和取消贪睡。

充分利用聊天

使用聊天时,有几件事可以优化你的体验。

补充相关背景

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

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

例如,其中#<file name>#<folder name>你可以在聊天提示中引用工作区中的特定文件或文件夹。这有助于让Copilot Chat的回答更贴近你的代码,因为你能提供文件的上下文。你可以问诸如“你能建议改进 #package.json?”或“我如何在 #devcontainer.json 中添加扩展?”这样的问题。

你可以不用手动添加单个文件,而是让 VS Code 自动从你的代码库中找到正确的文件,方法是#codebase.当你不知道哪些文件与你的问题相关时,这会很有用。

聊天视图截图,显示“附加上下文”按钮和上下文快速选择。

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

具体点,保持简单

当你让聊天做某事时,要具体地提出请求,并将一个大任务拆分成多个较小的任务。比如,不要让聊天创建一个使用 TypeScript 和 Pug、并且有产品页面从 MongoDB 数据库获取数据的 Express 应用。相反,先请求用TypeScript和Pug创建Express应用。接着,请求添加产品页面,最后请求从数据库中获取客户数据。

当你让聊天做某个具体任务时,要具体说明你想使用的输入、输出、API或框架。你的提示越具体,结果就越好。例如,与其“从数据库读取产品数据”,不如用“按类别阅读所有产品,返回 JSON 格式,并使用 Mongoose 库”。

不断迭代你的解决方案

在聊天寻求帮助时,你不会被第一个回答困住。你可以不断迭代和提示聊天来改进解决方案。聊天中既包含生成代码的上下文,也包含你当前的对话内容。 这里有一个使用Inline Chat创建函数计算斐波那契数码的示例:

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

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

让AI不要使用递归和新结果

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

让AI使用更好的变量名和新的结果

即使你已经接受了结果,也可以让AI稍后迭代代码。

更多关于Copilot提示的资源

如果你想了解更多关于高效使用 GitHub Copilot 的方法,可以跟进这些视频和博客文章: