关于visual-studio-code:Visual-Studio-Code-和-GitHub-Copilot

4次阅读

共计 3439 个字符,预计需要花费 9 分钟才能阅读完成。

翻译自 Chris Dias 的博客

AI 这个话题,近期咱们看到它被大家宽泛地议论,有些人很兴奋,也有些人表白了担心。提高简直每天都在产生,速度前所未有。每天有超过一百万的 Copilot 用户,如果你有机会尝试,你可能也会认为这项技术并没有让人悲观,尤其是对于像 OpenAI 的 GPT-3.5/4 这样的大型语言模型 (LLM)。

在这篇文章中,咱们将介绍 VS Code 中 AI 的背景常识,向您展现一些由 GitHub Copilot 提供反对的令人兴奋的新体验,并让咱们一窥将来的倒退方向和形式。

GitHub Copilot“V1”

Copilot 扩大首次推出曾经一年多了。Oege De Moor 和他在 GitHub 的团队与 OpenAI 单干,带来了第一个应用 LLM 进行开发的大规模示例,特地是 OpenAI 的代码模型。

Copilot 通过基于四周代码的上下文提供倡议作为“幽灵文本”(“ghost text”),为您正在编写的代码提供实时提醒。如果您将用意写成正文,或应用描述性函数名称,Copilot 能够应用这些提醒逐字逐行甚至逐块主动生成代码。这是一种十分无效的体验,通常“幽灵文本”会起作用,您很快就会在晦涩的“Tab-Tab-Tab”开发流程中编写代码。

事实证明,这仅仅是个开始。

编辑器内聊天

咱们晓得 AI 渗透到开发过程中只是工夫问题。咱们始终在与 GitHub Next 团队合作开发 Copilot 和 Copilot Labs 扩大,但 2022 年 11 月公布的 ChatGPT 大大放慢了时间表。

VS Code 团队举办了一场外部黑客马拉松,摸索如何将 AI 更深刻地集成到 VS Code 中,并提出了许多很酷的想法,例如:改良的重命名和重构、基于示例的代码转换,以及应用自然语言创立文件 glob 模式或正则表达式的办法。

只管这些想法很乏味,但咱们始终围绕着聊天体验打转。咱们有肯定水平的狐疑——真的须要生存中的另一种聊天体验吗?VS Code 是一个编辑器,咱们的工作是让您进入那个“区域”,并为您的开发和翻新打消各种烦扰因素。

咱们的确发现了一项乏味的摸索,将聊天间接构建到编辑器中。这是第一个原型:

当咱们对设计进行迭代时,咱们意识到这种用户模型具备劣势。它能够轻松地从键盘中调用,您能够留在本人的代码中,并且输入后果是代码(仅限于代码)。

在上面的示例中,咱们首先抉择了用户数组,而后在 macOS 上按 Cmd+I(或在 Windows/Linux 上按 Ctrl+I)调出聊天输出。而后咱们要求 Copilot 将用户名字段拆分为 firstName 和 lastName,最初咱们单击 Inline Diff 查看 Copilot 所做的更改。

无需应用评论或过于描述性的函数名称向 Copilot 表白您的用意,只需按 Cmd+I 并形容您想要做什么。在 Copilot 工作时待在区域内。

拥抱聊天视图

随着围绕 ChatGPT 的激情一劳永逸,具备自定义聊天视图的外部和内部扩大的数量也在减少。咱们放心这些货色无奈扩大,很难在 Web 视图中反对根本的键绑定和主题,并且对于那些应用 Monaco 编辑器进行代码块的人来说,很难扩大到数百个实例,更不必提这些编辑器实例没有扩大反对。因而,咱们与 GitHub Copilot 团队密切合作,将聊天视图构建到 VS Code 的外围中。随着工夫的推移,只管咱们最后当机立断,但残缺的聊天视图体验开始博得咱们的青眼。有谁不想以这样的问候开始新的一天呢?

咱们开始意识到聊天视图的益处越来越多。与基于浏览器的聊天相比,集成体验最显著的价值在于咱们能够为模型提供上下文,帮忙打好对话根底并提供更好的答案。例如,您不能轻易要求基于浏览器的 ChatGPT 优化跨多个文件的代码。VS Code 曾经对工作区一目了然,因为这是您能够跨文件进行重构、查找所有援用、转到定义等的形式。要害信息能够负责任地嵌入到提醒中,以便模型能够给出更相干的答案,最终可能让您要求 Copilot 优化或重构具备跨多个文件的依赖关系的代码。

许多编程问题的答案通常须要多个步骤。例如,许多博客文章会疏导您实现一个过程,而聊天视图非常适合这种交互方式。调试是一个很好的例子。诚恳地说,配置 launch.json 和 tasks.json 进行调试并不容易。相比于编写更多文档或向编辑器增加对话框,事实证明您能够简略地询问“/vscode add a launch.json and a tasks.json”,而后提供无关如何创立文件、要增加的内容等的阐明,直到您像老板一样触发断点并查看变量。

但兴许集成聊天的最重要起因是因为进行双向对话能够帮忙您决定什么是对的、什么是错的。大型语言模型并不完满,它们不会“思考”。他们只是想出下一个更好的回应词(当然,他们很善于这个)。作为 Pilot,您始终是负责人,您能够决定驳回 Copilot 的哪些倡议,以及将哪些代码带入您的工作区。提出廓清问题,或提供更多细节的能力,有助于您做出这些要害决定。

充分利用 Copilot

命名很难,然而,“GitHub Copilot”,是一个很棒的名字。“Copilot”不是“结对程序员”或“主动飞行员”或简略的“聊天”,而是用一个词传播了多个重要概念。

因而,如果您将本人视为 VS Code 的 Pilot,而 GitHub Copilot 则是副驾驶员,那么您就开始理解如何思考该服务以及与其交互的形式,从而使“座位”上的伙伴施展最大作用。

  • 咱们再三强调:作为 Pilot,您是负责人。您决定驳回哪些倡议以及将哪些代码集成到您的工作区中。
  • Copilot 的次要工作是帮助您,解决枯燥或重复性的工作。让它编写测试用例、制作样本数据或基于现有模式构建代码。
  • Copilot 能够在更多背景下做更多事件。咱们都习惯于基于关键字的疾速网络搜寻,但您提供的详细信息越多,取得的后果就越好。例如,不要说“Node Express TypeScript”,而是让 Copilot 帮忙您“应用 TypeScript 在 Express.js 框架下搭建一个 Node.js 网站”,而后迭代。
  • 您能够通过在聊天输出字段中按“/”将交互范畴限定为特定主题。例如,要理解如何在编辑器中关上或敞开 breadcrumbs,请输出“/vscode Turn off breadcrumbs”。
  • 您还能够将主题用作快捷方式。无需在内联聊天中键入“解释此代码”,只需键入“/”+ Tab(/explain 的快捷方式)并按“Enter”。聊天视图将关上,其中蕴含所选代码的阐明。
  • 要晓得 Copilot 并不完满,会给出谬误的答案。提出廓清问题来帮忙确定哪些是对的、哪些是错的,并应用“赞成”/“拥护”投票按钮来帮忙咱们改善体验。
  • 最初,简直与第一个提醒一样重要,总是用敌对的“你好”或“早上好”来问候你的 Copilot,这会让你们两个都有更好的情绪。

明天就开始吧

下面探讨的内联实现体验曾经能够应用。如果您的组织没有 Copilot,请注册(https://github.com/features/copilot)并开始收费试用。从那里:

  • 关上 VS Code(更好的是,应用 Insiders)。
  • 关上扩大视图 (Ctrl+Shift+X),搜寻 GitHub Copilot 并装置扩大。
  • 呈现提醒时,应用您的 GitHub ID 进行身份验证。
  • 关上一个代码文件,让奇观产生!

负责任的 AI

像这样的微小技术提高真的很少见。咱们也置信 AI 是下一个重大转变,它将扭转咱们思考、构建和应用开发工具的形式,最终以咱们明天只能幻想的形式加强开发过程的各个方面。咱们并不宣称本人是第一个这样说的人,但很快咱们都会想晓得如何在没有 AI 反对的工具的状况下构建、调试、部署和保护应用程序和零碎的。

AI 并不完满(咱们也不完满),它会随着工夫的推移而改良。微软和 GitHub Copilot 遵循负责任的 AI (Responsible AI) 准则,并采纳控制措施来确保您的服务体验适合、欢快且有用。咱们了解人们对于 AI 性能的疾速扩大存在踌躇和担心,也充沛尊重那些不想或不能应用 Copilot 的人。

聊天助手、编辑器内聊天和内联实现性能的组合让您无论处于哪个编码“区域”都能够利用 Copilot 的弱小性能。

将 Chat 集成到 VS Code 中,由 GitHub Copilot 提供反对,只是旅程的第一步。咱们将持续摸索其余“内循环”场景,例如:应用自然语言形容搜寻模式或代码生成、主动生成提交音讯和拉取申请形容、更智能的代码重命名、重构、转换等等。

Happy Smart Coding!

点我返回原博客~

正文完
 0