介绍Copilot编辑(预览版)
2024年11月12日 由 伊西多尔·尼科利奇
直到最近,您可以在 VS Code 中以两种不同的方式使用 GitHub Copilot。您可以在编辑器中使用自动完成或内联聊天来修改代码。或者,您可以在聊天视图中使用 Copilot 来询问有关您的代码的问题。Copilot Edits 是 VS Code 中 Copilot 的预览功能,是一种全新的使用方式。它结合了 Chat 和内联聊天的优势:对话流程和对您管理的一组文件进行内联更改的能力。而且它真的很管用。
为多个文件的迭代设计
在 Copilot 编辑中,您指定要编辑的一组文件,然后使用自然语言询问 Copilot 您需要什么。 Copilot 编辑在您的工作区中对多个文件进行原地更改,使用为快速迭代设计的用户界面。您在查看建议更改时保持代码流,接受有效的更改,并通过后续询问进行迭代。

Copilot 编辑之所以有效,是因为它让你掌控一切,从设置正确的上下文到接受更改,而不是依赖于从不犯错的高级模型。体验是迭代的:当模型出错时,你可以查看多个文件中的更改,接受好的更改,并不断尝试,直到与 Copilot 一起到达正确的解决方案。在接受更改时,你可以运行代码来验证更改,并在需要时在 Copilot 编辑中使用 Undo 恢复到以前的工作状态。
保持控制
有一个新的用户界面概念——工作集——它让你控制并允许你定义需要应用编辑的文件。你还可以通过拖放文件或编辑器标签将文件添加到工作集中,或者按#要明确添加它们。 Copilot 编辑会自动将您在编辑组中的所有活动编辑添加到工作集。

工作集,结合撤销和重做功能,使您能够精确控制更改,并允许您决定在哪里以及如何应用这些更改。 Copilot Edits 在您的代码中直接显示生成的编辑,并提供代码审查流程,您可以接受或拒绝每个AI生成的编辑。 Copilot Edits 不会在工作集之外进行更改 - 唯一的例外是当它建议创建新文件时。

Copilot编辑在次要侧栏(默认在右侧)中,这样您可以在审查提议的更改时与主要侧栏中的视图(例如资源管理器、调试或源控制视图)进行交互。例如,您可以在左侧的测试视图中运行单元测试,同时使用右侧的Copilot编辑视图,这样在每次迭代中,您可以验证Copilot编辑提议的更改是否通过了单元测试。
使用你的声音在使用Copilot编辑时是一种自然的体验。只需与Copilot对话,就能实现顺畅的互动和对话。这几乎就像与一个领域专家同事互动,在真实的双人编程中使用同样的迭代流程。
Copilot Edits 使使用 AI 进行代码编辑对具有不同技能的用户变得可访问。作为 Microsoft 的产品经理,我可以使用 Copilot Edits 在没有太多编码的情况下快速迭代早期想法。对于我的 VS Code 工程同事,Copilot Edits 帮助他们轻松地在 vscode 仓库中创建复杂的跨多个文件的重构。vscode repo。例如,一位没有任何 Swift 经验的团队成员使用 Copilot Edits 从头开始创建了一个定制的 macOS 应用程序——在每次迭代后,他们运行应用程序,确定哪些部分没有正常工作,并给 Copilot Edits 适当的后续指示。
幕后
Copilot编辑利用双模型架构来提高编辑效率和准确性。首先,基础语言模型考虑整个编辑会话的上下文,生成初步的编辑建议。您可以在以下基础语言模型中选择您喜欢的:GPT-4o、o1-preview、o1-mini 和 Claude 3.5 Sonnet。为了提供高性能体验,团队开发了一个推测性解码端点,优化了文件中更改的快速应用。基础模型提出的编辑建议将发送到推测性解码端点,该端点将在线编辑器中提出这些更改。推测性解码端点比普通模型更快,但团队知道它还可以更快,并且正在努力改进这一点,所以请继续关注。
今天有货
Copilot 编辑预览版现已向所有 GitHub Copilot 用户开放!您在过去提供的反馈 #1 和 #2 对于发布此功能至关重要,因此非常感谢!
关于 Copilot 编辑的详细概述,请阅读 官方文档。
接下来,团队计划改进 apply changes speculative decoding 端点的性能,支持从 Copilot Chat 转入 Copilot Edits 并保持上下文,建议文件到工作集,并允许撤销建议的块。 如果你想成为第一批体验这些改进的人,请确保使用 VS Code Insiders 和 GitHub Copilot Chat 扩展的预发布版本。为了帮助改进该功能,请在 我们的仓库 中提交问题。
最终,这不仅仅是关于Copilot编辑本身,而是它帮助你建立的东西。
编码愉快!
伊西多尔