Visual Studio Code 和 GitHub Copilot

翻译自 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!

点我前往原博客~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67707.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【人工智能】吴恩达来信:LLMs的美好未来

吴恩达来信:LLMs的美好未来 亲爱的朋友们, 大型语言模型 (LLMs) 的竞争格局正在迅速打开。最终赢家尚未出炉,但目前的形势已经令人兴奋。我想分享一些观察结果,重点关注直接面向消费者的聊天接口以及LLMs基础设施和应用程序层。 首先,ChatGPT是一个新的产品类别。它不仅…

ChatGPT为什么会火,如果我用python写一篇毕业论文可以吗?

ChatGPT由于它采用了先进的自然语言处理技术,能够通过学习大量的语言数据而不断提高自己的语言理解和生成能力,使得它在对话方面表现出色。同时,ChatGPT还可以应用于多个领域,例如智能客服、智能助手、机器翻译等,因此…

【爬虫】1.4 POST 方法向网站发送数据

1. 客户端 POST 发送数据 采用 POST 方法访问网站时,客户端向服务器发送表单数据,表单数据的组织方式与 GET 方法的参数列表十分相似,结构如下: "名称1值1&名称2值2……" 多个数据之间用 “&” 符号隔开&#x…

如何快速爬取网页数据(干货)

摘要:对于程序员或开发人员来说,拥有编程能力使得他们构建一个网页数据爬取程序,非常的容易并且有趣。但是对于大多数没有任何编程知识的人来说,最好使用一些网络爬虫软件从指定网页获取特定内容。 网页数据爬取是指从网站上提取特…

服务器数据抓包(原来微信图片真的可以抓包看的)

在我们开发的时候,有时需要抓包,看一下服务器的返回数据,来校验自己请求的参数和返回的参数是否正确。当然,有时候也想抓一下别人的数据看下,比如微信。当然,如果别人的数据加密了,那你就蛋疼了…

倒计时30天!2023世界人工智能大会八大亮点抢先看

2023世界人工智能大会将于7月6-8日在上海举办,以**“智联世界 生成未来”**为主题,聚焦通用人工智能发展,营造良好创新生态,拥抱智能新时代,共话产业新未来。大会将继续发挥“科技风向标、应用展示台、产业加速器、治理…

MANA OASIS加持,毫末算力极致优化,训练成本降低100倍

2023年1月5日,第七届HAOMO AI DAY在北京举办。正值岁末年初,中国自动驾驶届开年盛会精彩来袭。本届AI DAY上,毫末分享了2022年三大战役稳健收官成果,展望2023年全球自动驾驶发展趋势,并发布毫末技术、产品最新成果。 &…

张俊林:由ChatGPT反思大语言模型(LLM)的技术精要(2)

原文:张俊林:由ChatGPT反思大语言模型(LLM)的技术精要(2) 02 学习者:从无尽数据到海量知识 从目前研究结果看,Transformer是足够强大的特征抽取器,尚不需要做特别的改进…

【初探人工智能ChatGPT】2、雏形开始长成

【初探人工智能ChatGPT】2、雏形开始长成 【初探人工智能ChatGPT】2、雏形开始长成安装Flask封装Web接口雏形设置接收参数功能验证聊天写代码代码补全生成图片 写在后面 笔者初次接触人工智能领域,文章中错误的地方还望各位大佬指正! 【初探人工智能Chat…

马斯克要求 Twitter 程序员写周报,具体到代码行数!

来源:InfoQ 11 月 24 日,据 Business Insider 报道,推特内部邮件显示,该公司要求技术类员工必须每周发邮件给 CEO 埃隆马斯克(Elon Musk),介绍自己本周的所有工作,以此实现“快速创新…

马斯克的推特“大清洗”:高管、员工、研究学者、高仿号,以及前女友

大数据文摘出品 Let that sink in。 10月24日,马斯克就真的抱着一个水槽,走进了Twitter的总部大楼。 磨磨蹭蹭半年,马斯克终于完成了对Twitter的收购,如愿接过Twitter的指挥权杖。 马斯克拿下推特之后,各种新闻几乎布满…

马斯克在推特回应推特起诉:真讽刺,我笑了

万博 发自 凹非寺量子位 | 公众号 QbitAI 马斯克和推特之间的“连续剧”,又更新了一集: 《推特正式起诉马斯克》。 并且在诉状中,推特还细数了马斯克决意收购前后的种种恶行。 核心态度是: 我方纯属无辜,马斯克必须按照…

6月无代码资讯|OutSystems与微软合作,将生成式AI整合在低代码产品;首个自然语言开发框架PromptAppGPT发布

一、TOP3 大事件 1、用ChatGPT开发代码!OutSystems与微软合作,增强低代码开发 6月22日,全球低代码领导者OutSystems在官网宣布与微软达成深度技术合作,将生成式AI全面整合在低代码产品矩阵中。 据悉,OutSystems通过…

使用CNN+LSTM进行脑电情绪识别

写了一份适合刚入门脑电情绪识别的一个可用于练手的代码讲解。 首先再进行用脑电信号进行情绪识别时会对数据进行一个处理,比如计算出微分熵,功率谱图等。 在这里我们首先采用计算出微分熵DE。 微分熵 微分熵是香农信息熵在连续变量上的推广形式&…

神经元激活函数

神经元激活函数 激活函数(Activation functions),将非线性特性引入到网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。 引入激活函数是为了增加神经…

独家 | 人工神经网络中发现了人类大脑拥有的多模态神经元(附链接)

作者:Gabriel Goh, Chelsea Voss, Daniela Amodei, Shan Carter, Michael Petrov, Justin Jay Wang, Nick Cammarata, and Chris Olah 翻译:欧阳锦 校对:王可汗本文约4000字,建议阅读12分钟本文探讨了OpenAI在CLIP模型中发现人类大…

神经网络(三)—— 神经元多输出

本系列为慕课网《深度学习之神经网络(CNN/RNN/GAN)算法原理实战》视频笔记,希望自己能通过分享笔记的形式更好的掌握该部分内容。 往期回顾: 神经网络(一)—— 机器学习、深度学习简介 神经网络(二)—— 神…

3D U-Net脑胶质瘤分割BraTs + Pytorch实现

原论文地址: 连接 一、网络模型的分析和对比 原始2D-Unet网络模型 我的2D-Unet网络模型 1、和原来的2D-Unet网络不同的是,我输入通道为4,我这里应该改为4个通道,对应四个模态图像,而输出通道为3,我对应的是三个嵌套子区域标签(WT、TC、ET) 2、另外,最大不同的是我的3X3卷积…

深度学习(一)——MP神经元模型, BP算法, 神经元激活函数, Dropout

https://antkillerfarm.github.io/ 前言 神经网络本质上不是什么新东西。十年前,我还在上学的时候,就接触过皮毛。然而那时这玩意更多的还是学术界的屠龙之术,工业界几乎没有涉及。 及至近日重新拾起,方才发现,这十…

单个人工神经元模型示意图,人体神经元模型制作

人工神经元的基本构成 人脑的神经元模型如图8.6所示。图中一个神经元由细胞核、一个轴突、多个树突、突触组成。生物电信号从树突传入,经过细胞核处理,从轴突输出一个电脉冲信号。 神经元通过树突与轴突之间的突触与其他神经元相连构成一个复杂的大规模…