了解使用 GitHub Copilot 创建有效提示的要点。探索将编码注释转化为精确、可操作的代码的技术,从而增强您的开发工作流程。
学习目标
学完本模块后,您将能够:
制作有效的提示来优化 GitHub Copilot 的性能,确保每个代码建议的准确性和相关性。 了解提示与副驾驶响应之间的复杂关系,并利用提示工程中的最佳实践。 深入了解 GitHub Copilot 如何处理用户提示的底层机制,从安全传输到内容过滤和上下文分析。先决条件
基本编码知识。 GitHub Copilot 访问:要使用它,您可以在以下集成开发环境 (IDE) 中安装可用的 GitHub Copilot 扩展: 视觉工作室 视觉工作室代码 尼奥的 JetBrains IDE(IntelliJ、PyCharm、WebStorm 等) 用于将代码编辑器连接到 Copilot 的 GitHub 帐户。介绍
由 OpenAI 提供支持的 GitHub Copilot 正在改变软件开发的游戏规则。它不仅仅是一个建议代码的工具。 GitHub Copilot 可以通过对包含自然语言和来自公开来源的数十亿行源代码(包括公共 GitHub 存储库中的代码)的数据进行训练来掌握项目的复杂细节。这使得 GitHub Copilot 能够为您提供更多上下文感知建议。
但要充分利用 GitHub Copilot,您需要了解提示。这是您告诉 Copilot 您需要什么的方式。它返回的代码的质量在很大程度上取决于您的提示的清晰和准确程度。
那么如何充分利用 GitHub Copilot 的潜力呢?本模块向您展示如何操作!它指导您完成有效提示的详细信息,以获得最佳的代码建议,帮助您更快更好地编码。
快速的工程基础和最佳实践
在本单元中,我们将介绍:
什么是即时工程? 即时工程基础 即时工程的最佳实践 Copilot 如何从您的提示中学习什么是即时工程?
即时工程是制定清晰指令以指导 AI 系统(例如 GitHub Copilot)生成适合项目特定需求的上下文相关代码的过程。这确保了代码在语法、功能和上下文上都是正确的。可以将其想象为向驾驶员提供精确的指示。没有他们,旅程可能会效率低下。但有了明确的引导,路线就会变得直接、高效,节省时间和精力。在这种情况下,您是提供方向的人,而 GitHub Copilot 是您熟练的司机,准备好在正确的指导下引导您顺利完成编码之旅。
既然您知道什么是即时工程,那么让我们了解一下它的一些原理。
即时工程原理
在探讨具体策略之前,我们首先了解一下即时工程的基本原理,总结为以下4S。这些核心规则是创建有效提示的基础。
Single:始终将提示集中在单个、定义明确的任务或问题上。这种清晰度对于从副驾驶处获得准确且有用的响应至关重要。 具体:确保您的指示明确且详细。特异性带来更适用和更精确的代码建议。 简短:在具体的同时,保持提示简洁明了。这种平衡确保了清晰度,而不会使 Copilot 超载或使交互复杂化。 Surround:使用描述性文件名并保持相关文件打开。这为 Copilot 提供了丰富的上下文,从而产生更量身定制的代码建议。这些核心原则为制定高效且有效的提示奠定了基础。牢记 4S,让我们更深入地研究高级最佳实践,以确保与 GitHub Copilot 的每次交互都得到优化。
即时工程的最佳实践
以下基于 4S 的高级实践可完善并增强您与 Copilot 的互动,确保生成的代码不仅准确,而且完全符合项目的特定需求和环境。
提供足够的清晰度
基于“单一”和“具体”原则,始终以提示的明确性为目标。例如,像“编写一个 Python 函数来过滤并返回给定列表中的偶数”这样的提示既是单一焦点又是特定的。
提供足够的上下文和细节
遵循“环绕”原则,丰富 Copilot 对上下文的理解。提供的上下文信息越多,生成的代码建议就越合适。例如,通过在代码顶部添加一些注释来提供您想要的更多详细信息,您可以为 Copilot 提供更多上下文以理解您的提示,并提供更好的代码建议。
在上面的示例中,我们使用步骤来提供更多细节,同时保持简短。这种做法遵循“简短”原则,平衡细节与简洁,以确保沟通的清晰度和准确性。
笔记
Copilot 还使用代码编辑器中的并行打开选项卡来获取有关代码要求的更多上下文。
提供学习范例
使用示例可以阐明您的要求和期望,说明抽象概念并使提示对 Copilot 来说更加具体。
断言和迭代
释放 GitHub Copilot 全部潜力的关键之一是迭代实践。您的第一个提示可能并不总是产生完美的代码,但这完全没问题。如果第一个输出不完全符合您的要求,请将其视为对话中的一个步骤。删除建议的代码,通过添加的详细信息和示例丰富您的初始评论,然后再次提示 Copilot。
现在您已经了解了提高提示技能的最佳实践,让我们仔细看看如何提供 Copilot 可以学习的示例
Copilot 如何从您的提示中学习
GitHub Copilot 基于经过大量数据训练的 AI 模型进行运行。为了增强其对特定代码上下文的理解,工程师经常为其提供示例。这种做法在机器学习中很常见,导致了不同的培训方法,例如:
零样本学习
在这里,GitHub Copilot 生成代码时没有任何具体示例,仅依靠其基础训练。例如,假设您要创建一个函数来在摄氏度和华氏度之间转换温度。您可以首先只编写描述您想要的内容的注释,Copilot 可能能够根据其之前的训练为您生成代码,而无需任何其他示例。
一次性学习
通过这种方法,给出了一个示例,帮助模型生成更具上下文感知的响应。在前面的零样本示例的基础上,您可以提供温度转换函数的示例,然后要求 Copilot 创建另一个类似的函数。它看起来是这样的:
少样本学习
在该方法中,Copilot给出了几个例子,在零样本不可预测性和微调精度之间取得了平衡。假设您想要生成根据一天中的时间向您发送问候语的代码。这是该提示的几个版本:
现在您已经了解了 Copilot 如何使用提示来学习,让我们深入了解一下它实际上如何使用提示来为您建议代码。