点击蓝字关注我们
关注、星标公众号,精彩内容每日送达
来源:网络素材
如今,人工智能已成为我工作流程中不可或缺的一部分,在GitHub Copilot 的帮助下,我在构建项目时的速度加快了很多。在过去的一年里,我使用人工智能工具来提高我的工作效率,我意识到,与学习如何使用新框架或库类似,我们可以通过学习如何更好地使用人工智能工具来提高效率。
在这篇博文中,我将分享我为充分利用GitHub Copilot所做的一些日常工作。我希望这些技巧能够帮助你成为人工智能助手更高效、更有生产力的用户。
1.超越代码完成
要充分利用GitHub Copilot 的强大功能,了解其功能非常重要。GitHub Copilot正在快速发展,并且不断添加新功能。它不再只是编辑器中的代码完成工具,它现在包括可以在IDE中使用的聊天界面、通过GitHub CLI 扩展的命令行工具、拉取请求中的摘要工具、终端中的帮助工具,还有很多很多。
在最近的一篇博文中,我列出了一些你不知道的使用 GitHub Copilot 的方法。这将使你对人工智能助手当前可以做的事情有一个很好的概述。
但除了与 GitHub Copilot 交互之外,你如何帮助它为你提供更好的答案?嗯,这个问题的答案需要更多背景信息。
2.上下文,上下文,还是上下文
如果你了解大型语言模型 (LLM),你就会知道它们旨在根据提供的上下文进行预测。这意味着,我们的输入或提示的上下文越丰富,预测或输出的结果就越好。
因此,在与GitHub Copilot交互时,尤其是使用代码完成功能时,学习提供尽可能多的上下文是关键。与 ChatGPT 不同,你需要在提示窗口中向模型提供所有数据,通过在编辑器中安装 GitHub Copilot,助手能够从你正在处理的代码中推断上下文。然后,它使用这个上下文来提供代码建议。
我们已经知道这一点,但是我们还能做些什么来为其提供更多背景信息呢?
我想与你分享一些基本技巧,以便在编辑器中为GitHub Copilot提供更多上下文,从而从中获取最相关和最有用的代码:
1.打开你的相关文件
打开文件可以为 GitHub Copilot 提供上下文。当你打开其他文件时,通知返回的建议将有所帮助。请记住,如果文件已关闭,GitHub Copilot 将无法在编辑器中看到该文件的内容,这意味着它无法从这些已关闭的文件中获取上下文。
GitHub Copilot 查看编辑器中当前打开的文件以分析上下文,创建发送到服务器的提示,并返回适当的建议。
在编辑器中打开一些文件,以便 GitHub Copilot 对你的项目有更全面的了解。你还可以#editor在聊天界面中使用,为 GitHub Copilot 提供有关当前在 Visual Studio Code (VS Code) 和 Visual Studio 中打开的文件的附加上下文。
请记住在上下文切换或继续下一个任务时关闭不需要的文件。
2. 提供顶级评论
正如你向同事进行简短、高级的介绍一样,你正在处理的文件中的顶级注释可以帮助 GitHub Copilot 了解你将要创建的片段的整体上下文,特别是如果你希望人工智能助手生成样板代码供你开始使用。
请务必包含有关你需要的详细信息并提供良好的描述,以便包含尽可能多的信息。这将有助于指导 GitHub Copilot 提供更好的建议,并为其设定工作目标。提供示例,特别是在处理数据或操作字符串时,会有很大帮助。
3. 设置包含和参考
最好手动设置工作所需的包含/导入或模块引用,特别是在使用特定版本的包时。
GitHub Copilot 会提出建议,但你知道要使用哪些依赖项。这还有助于让 GitHub Copilot 了解你希望在制定建议时使用哪些框架、库及其版本。
当 GitHub Copilot 默认提供较旧的代码建议时,这有助于将 GitHub Copilot 跳转到较新的库版本。
4.有意义的名字很重要
变量和函数的名称很重要。如果你有一个名为foo或bar,GitHub Copilot 将无法为你提供最佳交付,因为它无法从名称推断意图。
正如函数名称fetchData()对其合作者(或几个月后的你)没有多大意义一样,fetchData()对 GitHub Copilot 也没有多大意义。
良好的编码实践将帮助你从 GitHub Copilot 获得最大价值。虽然 GitHub Copilot 可以帮助你更快地编码和迭代,但请记住旧的编程规则仍然适用:垃圾输入,垃圾输出。
5. 提供具体且范围明确的功能注释
对代码进行注释可以帮助你获得非常具体、有针对性的建议。
函数名称只能具有描述性,但不能太长,因此函数注释可以帮助填写 GitHub Copilot 可能需要了解的详细信息。GitHub Copilot 的一项巧妙功能是,它可以确定你的编程语言中通常用于函数/方法注释的正确注释语法,并根据代码的用途帮助你创建它们。作为你所做的第一个更改,向这些内容添加更多详细信息可以帮助 GitHub Copilot 确定你想要在代码中执行的操作以及如何与该函数交互。
请记住:单个、具体、简短的注释有助于GitHub Copilot 提供更好的上下文。
6.提供示例代码
向 GitHub Copilot 提供示例代码将帮助其确定你要查找的内容。这有助于为模型奠定基础并为其提供更多背景信息。
它还可以帮助 GitHub Copilot 生成与你想要实现的语言和任务相匹配的建议,并根据你当前的编码标准和实践返回建议。单元测试在单个函数/方法级别提供一级示例代码,但你也可以在项目中提供代码示例,展示如何端到端地执行操作。长期使用 GitHub Copilot 的一个很酷的事情是,它促使我们做很多我们应该一直做的良好编码实践。
3.与 GitHub Copilot 内嵌聊天
7.内嵌聊天
除了提供足够的上下文之外,GitHub Copilot 还有一些你可能没有利用的内置功能。例如,内嵌聊天让你有机会在代码行之间几乎与 GitHub Copilot 聊天。通过按 CMD + I(Windows 上为 CTRL + I),你将有 Copilot 来提问。这对于快速修复来说更方便,而不是打开 GitHub Copilot Chat 的侧面板。
这种体验为你提供了内联代码差异,这非常棒。还有特殊的斜杠命令可用,例如仅使用按钮的斜杠即可创建文档!
(VS Code 编辑器中的内联聊天,焦点为 /doc 命令)
4.GitHub Copilot Chat 的提示和技巧
GitHub Copilot Chat 在编辑器中提供了一种体验,你可以在其中与 AI 助手进行对话。你可以通过使用内置功能来充分利用它来改善这种体验。
8.删除不相关的请求
例如,你是否知道可以删除聊天界面中之前提出的问题,以将其从索引对话中删除,尤其是当它不再相关时。
(单击副驾驶聊天界面,将鼠标悬停在对话上,然后按 X 按钮将其删除)
这样做将改善对话流程,仅向GitHub Copilot提供为你提供最佳输出所需的必要信息。
9. 浏览对话
我发现的另一个技巧是使用向上和向下箭头浏览与 GitHub Copilot Chat 的对话。我发现自己滚动聊天界面,找到我问的最后一个问题,然后发现我可以像在终端中一样使用键盘箭头!
10.使用@workspace agent
如果你使用 VS Code 或 Visual Studio,请记住agent可以帮助你走得更远。例如,agent了解你的整个工作空间并可以回答与其相关的问题@workspace。因此,当尝试从 GitHub Copilot 获得良好的输出时,它可以提供更多上下文。
11.突出显示相关代码
使用 GitHub Copilot Chat 时的另一个重要技巧是在提问之前突出显示文件中的相关代码。这将有助于提供有针对性的建议,并为助理提供更多有关你需要帮助的信息。
12.用话题组织你的对话
通过使用线程隔离对话,你可以就不同主题与 GitHub Copilot Chat 进行多个持续对话。我们为你提供了一种通过单击聊天界面上的+号来开始新对话(线程)的便捷方法。
(在Copilot聊天界面用鼠标点击加号按钮,即可开始新线程或对话)
13. 常见任务的斜杠命令
斜杠命令很棒,而且数量相当多。我们提供命令来帮助你解释代码、修复代码、创建新笔记本、编写测试等等。它们只是常见提示的快捷方式,我们发现这些提示在我们自己的内部使用中对日常开发特别有帮助。
有关 VS Code 中可用的命令,请参阅下图:
14.附上相关文件以供参考
在 Visual Studio 和 VS Code 中,你可以使用#file.这将 GitHub Copilot 限制在代码库中的特定上下文中,并为你提供更好的结果。
要引用文件,请在注释框中键入#,然后选择#file,你将看到一个弹出窗口,你可以在其中选择文件。你也可以在评论框中输入#file_name.py。请参阅下面的示例:
15. 从 GitHub Copilot Chat 开始以加快调试速度
这些天,每当我需要调试一些代码时,我都会首先转向 GitHub Copilot Chat。最近,我正在实现一个决策树并执行 k 折交叉验证。我不断得到不正确的准确度分数,但不明白为什么。我向 GitHub Copilot Chat 寻求帮助,结果发现我没有使用我的训练数据集(X_train、y_train),尽管我认为我是。
我比使用外部资源更快地解决了这个问题。我想鼓励你从编辑器中的 GitHub Copilot Chat 开始,以便更快地获得调试帮助,而不是首先访问外部资源。按照我上面的例子,解释问题,粘贴有问题的代码,并寻求帮助。你还可以在编辑器中突出显示有问题的代码,并/fix在聊天界面中使用该命令。
5.留意 sparkles!
在 VS Code 中,你可以通过查找“magic sparkles”来快速从 GitHub Copilot 获得帮助。例如,在提交评论部分,点击神奇的火花将帮助你在人工智能的帮助下生成提交消息。当你正在寻找一种快速访问 GitHub Copilot 内嵌聊天的方法时,你还可以在编辑器中发现内嵌的magic sparkles。
按下它们将使用 AI 来帮助你填写数据,并且正在添加更多神奇的火花,我们会在其他地方找到 GitHub Copilot 来帮助你的日常编码体验。
6.了解你的 AI 助手的闪光点
为了充分利用该工具,请记住上下文和提示的制作至关重要。了解该工具最擅长的地方也很重要。GitHub Copilot 非常擅长的一些功能包括样板代码和脚手架、编写单元测试、编写文档、模式匹配、解释不常见或令人困惑的语法、定时任务和正则表达式,以及帮助你记住忘记的事情和调试。
但永远不要忘记,一切都在你的掌控之中,而 GitHub Copilot 就是你的副驾驶。它是一个可以帮助你更快地编写代码的工具,并且由你决定如何最好地使用它。
它不是在这里为你做你的工作或为你写一切。它将引导你并推动你朝正确的方向前进,就像你向同事询问特定问题或寻求指导一样。
我希望这些提示和最佳实践有所帮助。通过正确利用 GitHub Copilot,你可以显著提高编码效率和输出。
想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索