• 我的订阅
  • 科技

Github Copilot 初体验

类别:科技 发布时间:2023-01-24 09:00:00 来源:indienova

撰文:Dluck

封面: Github 官方博客

我们编程时写出的代码,在未编译前通常以纯文本格式存在。因此,实际上我们能使用任何文本编辑器来编写代码,包括系统自带的记事本。但是,好的工具能够让我们事半功倍。面对复杂的工作任务,我们需要 IDE(集成开发环境)这样的生产力工具。IDE 本质上就是更高级的文本编辑器,集成了许多人性化功能来提升效率,比如:自动补全变量,提示可能会用到的函数列表,语法高亮,显示语法错误等等。

IDE 本身也在不断进化。我的第一门编程语言是 Java,使用的是 Eclipse,当时自动补全功能还比较简陋,局限于符号的提示与选单,我也没有对 IDE 究竟有多强大建立起概念。后来,开始学习开发框架后,我慢慢接触到 JetBrains 出品的 IDEA。IDEA 的提示更智能,例如:可以在数组后输入「.for」自动构成 foreach 循环,也可以使用快捷键自动生成 Getter/Setter、构造函数、重载函数等等。毫无疑问,JetBrains 系列产品为编码工作带来了更高的效率,提供了更加全面、智能的补全功能。

最近一段时间,AI 技术的进步则让代码补全有了更上一层楼的机会。接下来,我们为大家介绍的 Github Copilot 就是这样一款基于 AI 的代码补全工具。

GitHub Copilot 是什么

Github Copilot 是 GitHub 和 OpenAI 合作开发的人工智能工具,可以在编辑代码时帮助你自动生成可能会需要的代码。

GitHub Copilot 能够提取代码上下文,给出整行代码或整个函数的补全建议。它可以帮助我们完成下列任务:将注释转化为代码;自动填充重复代码;编写测试;快速发现解决问题的替代方法;无需网络搜索即可快速探索新的 API;适应用户编写代码的方式,帮助用户更快地完成工作。

原理是什么?

我们先介绍一下 GPT-3。GPT-3(Generative Pre-trained Transformer 3)是一个用于处理自然语言的 AI 模型,由 OpenAI 训练开发。GPT-3 通过阅读几乎一切人类可阅读的内容来进行训练,理论上,它能够完成一切通过语言完成的工作,而且完成效果还非常接近人类。已经有实验证明 GPT-3 可用于撰写文章、回答问题、编写代码生成应用程序、设计表格、开发游戏、将文字描述便携为成型的网页等等。

而 OpenAI Codex 则是基于 GPT-3 开发的一款针对编程所设计的 AI 模型。Codex 从公共代码仓库学习人类编写的代码,其代码来源包括 Github 上的公共代码仓库。官网原文如下:

OpenAI Codex is a descendant of GPT-3; its training data contains both natural language and billions of lines of source code from publicly available sources, including code in public GitHub repositories. (OpenAI Codex 是 GPT-3 的衍生项目;它的训练数据包括自然语言和数以亿计来自公开可用来源的源代码,其中包括 Github 公开仓库的代码。)

最后,GitHub Copilot 则是使用了 Codex 进行研发的一款商业产品。Github 将算法进行包装,做成了插件和网页,进行应用分发。现在 GitHub Copilot 支持在 Visual Studio Code、Visual Studio、JetBrains Rider 上通过插件形式集成进 IDE,以便我们使用。

使用 & 体验

要想使用 GitHub Copilot,首先需要注册一个 Github 账号。有了帐号后,按下面的步骤可以找到并启用 GitHub Copilot:

1. 找到设置页面:在任何页面的右上角,单击个人资料照片,然后单击“设置”。

Github Copilot 初体验

2. 找到 GitHub Copilot 设置页面:在边栏的「代码、规划和自动化」部分,单击「GitHub Copilot」。

3. 启用 GitHub Copilot:在 GitHub Copilot 设置页面上,单击「启用 GitHub Copilot」。

Github Copilot 初体验
Github Copilot 初体验

在 Rider IDE 进行设置在偏好设置里安装 Github Copilot Plugin;重启 IDE;登陆 Github 完成验证。

Github Copilot 初体验

设置完成后,IDE 提示可以使用「Tab」来自动补全代码,使用「⌥ + ]」或者「⌥ + [」来选择其他候选的补全选项。

Github Copilot 初体验

体验如何

在编写代码的过程中,Github Copilot 会自动提示可能的补全方案,此时按下「Tab」即可完成补全。

Github Copilot 初体验

有时,AI 并不会一次给出完整的提示代码,例如,图示的代码就并非一次性生成的,而是逐行自动补全,最终生成了一个可以实际使用的函数(甚至包括注释)。下图的例子在 Unity3D 中绘制了一条射线用于检测前方是否有物品,只有第一行注释是我写下的。

Github Copilot 初体验

下面的例子很有趣:当我尝试把乐谱的音高编写成数组时,Github Copilot 也给出了他所理解的音乐:

Github Copilot 初体验

在这样的例子中,对重复的流行乐片段,Github Copilot 有时可以给出不错的答案。比如预先输入《卡农》的重复性模进片段,Github Copilot 往往可以完全正确地补全乐谱。可见,在面临重复性较高的功能开发,或是使用一些常用的算法时,依靠 AI 补全是一个称得上非常可靠的选择。不过,如果需求非常复杂,大部分情况下,它并不能独立地给出完美的解决方案。GitHub 团队在对一组 Python 函数进行基准性测试后发现尝试十次后,大约 57% 情况下可以给出正确的答案。部分情况下,Github Copilot 也会给出无法通过编译的代码。

Github Copilot 的不足之处

使用 Github Copilot 很久后,Rediit 大佬 Colin Eberhardt 指出了几点不足:Github Copilot 很多时候响应得不够快。虽然它已经快到秒出答案,但这对快速输出状态的程序员来说仍然是不够的。要么它的提示还没出现你就继续输入了,要么你会因为等它而暂时停下思路。Github Copilot 总是会自动提示。这种提示和输入存在冲突:有时,当你需要等等看提示怎么说另一些时,会不断有内容弹出,接着消失。或许,自动模式并不是 Github Copilot 的「最佳打开方式」?Github Copilot 生成代码质量不足。它生成的代码可以满足大部分简单且重复的功能需求,但对于熟练的程序员,可能会额外浪费很多精力来校验它自动生成的代码是否正确。

Github Copilot 版权问题

许多人指出 Github Copilot 会使用有版权的代码作为提示内容(参见 Jacob Crume 的文章“GitHub Copilot is Now Available for All and Not Everyone Likes It”)。少数派作者 100gle 在《GitHub Copilot:革命未竟,未来可期》中更是举出了很多例子。最为出名的莫过于,如果你在编辑器中输入 Fast inverse square root ,便会得到一段代码,它和当年《雷神之锤》使用的算法完全一致。

现代开源软件多使用 GPL (GNU General Public License)协议,这个协议要求你也将代码开源,且使用 GPL 协议。而通过 Github Copilot 补全时我们并不确定这段代码的作者为它指定的协议。开源许可证的主要作用是对软件的使用、复制、修改和再发布等进行限制。而显然使用 AI 补全显然会破坏这一点。

可以预见的是,同当今各种 AI 作画工具面对的种种争议一样,Github Copilot 也一定会因为版权问题,难以被大型企业所用,至少短期内如此。

使用建议 Github Copilot 能帮助初学者面对不那么熟悉的编程语言或开发框架时,快速学习常用的接口调用方式和简单的实现方案。这意味着我们可以不用为了某些基础问题反复翻找 API 手册,或体验 CSDN 这样的技术博客网站的层层传送门。Github Copilot 可以帮助我们在不熟悉的领域快速上手,只需要一些注释便可快速生成部分业务逻辑,然后进行测试。当然,最终代码的可靠性还是需要开发者人为辨别和控制。Github Copilot 可以在重复性劳动时显著提升效率。比如你需要写一大堆单元测试,它们无法靠复制/粘贴批量生成,同时有一些细微的逻辑变化需要处理。又或是你需要开发一些重复性功能,比如批量声明一些数据类型好几十次。这时 Github Copilot 补全的代码往往很可靠。总结

Github Copilot 或许并不能承载类似“AI 即将取代程序员”的想象,但在当下,它无疑是程序员的好帮手。作为辅助,它提供的补全并没有智能到让完全不会编程的用户完成开发,但也并不只是简单的提示工具。合理运用 Github Copilot 能够为开发者的学习成长带来很大帮助。

与此同时,它不可避免地存在一些缺陷,代码的版权问题也限制了它商业化的应用前景。不够熟练的程序员可能也会对它失望——就像它名字中的 Copilot 一样,Github Copilot 更接近优秀的副驾驶角色,但工作总归还是需要一位优秀的主驾驶领导。

最好的旅行靴已经送到我们手中,走出什么样的路还需要开发者自己去定夺。

*本文内容系作者独立观点,不代表 indienova 立场。未经授权允许,请勿转载。 返回搜狐,查看更多

责任编辑:

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-01-24 09:45:09

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

openai推出assistantsapi:专门构建ai工具
...给OpenAI,并解决上下文窗口长度约束的问题。OpenAI开发者体验主管Romain现场演示了AssistantsAPI
2023-11-07 11:22:00
OpenAI推出GPT商店,人人可0代码自制智能体,业界看好成为下一个苹果
...其描述为帮助开发者在其应用程序中构建“类似智能体的体验”,相当于0代码创建智能体。在人工智能的术语中,智能体是指以智能方式行事的代理,能感知环境,自主采取行动以实现目标,并可
2023-11-07 15:48:00
OpenAI史诗级更新!最强大模型炸场,128K上下文、价格暴降2/3
...最有可能输出token的概率的日志工具,这有助于构建搜索体验中的自动完成等功能。第三,更多的世界知识。GPT-4 Turbo的知识库截止时间为2023年4月
2023-11-07 17:45:00
代码模型自我进化超越GPT-4o蒸馏!UIUC伯克利等提出自对齐方法 | NIPS 2024
【新智元导读】代码模型可以自己进化,利用自身生成的数据来进行指令调优,效果超越GPT-4o直接蒸馏!LLM作为智能的基座,可以衍生出各种能力。代码能力就是其中一种:程序补全、注释
2024-11-29 09:26:00
codeartssnap智能编程插件已上线
...智能协同3大核心能力,通过智能化需求管理分析、新增代码开发、存量代码优化、代码质量看护、应用便捷部署等多种研发场景重塑软件开发。据介绍,CodeArtsSnap是一款基于大模
2023-12-28 21:47:00
为什么不再使用LangChain来构建AI智能体了?
...块(building block)替换其僵化的高级抽象可以简化我们的代码库,使团队更快乐,更有效率。1. 背景故事我们在生产中使用了 LangChain 超过 12 个月
2024-06-26 09:33:00
字节跳动发布“豆包 MarsCode”AI 代码工具:国内开发者免费
...内开发者免费开放。豆包 MarsCode 编程助手,具备以智能代码补全为代表的 AI 功能。支持多种系统(Windows
2024-06-27 09:42:00
mathematica引入大语言模型,网友:买买买!
...能后表示: 买买买!还会自己纠错我们再用一个例子来体验下引入LLM的Mathematica:Makeatableofthefirst20twinprimes
2023-07-05 13:24:00
开源低代码平台“碰撞”浪潮海岳大模型,打造高效智能开发新体验
...后形成的inBuilder Copilot智能开发助手,可为用户带来全新体验。该助手具备对话式应用自动生成、智能代码生成、开发知识问答等能力,实现大模型自动生成代码的采纳率接
2024-06-07 11:05:00
更多关于科技的资讯:
中新经纬2月11日电 据国家市场监督管理总局网站消息,2月4日,国务院反垄断反不正当竞争委员会印发施行《关于公用事业领域的反垄断指南》(以下简称《指南》)
2026-02-11 20:18:00
季季有主题,周周有优惠!2026年河北省电影惠民观影促消费活动启动
河北日报客户端讯(记者肖煜)为积极响应落实国家电影局全国电影惠民消费季安排,进一步激活河北电影市场消费潜力,丰富群众文化生活
2026-02-11 22:05:00
2025国际宠物博览会落幕:Benarmi倡导全生命周期健康管理
12月20日,2025国际宠物博览会在北京市平谷区博物馆、体育中心拉开帷幕,汇聚全球名宠、产业企业与创新项目,集中展现宠物经济的前沿动态与发展趋势
2026-02-11 20:08:00
“民生科幻”领军人吴楚新作《背叛文明》出版,聚焦星际外交博弈
如果高等文明的馈赠是一颗带毒的蜜糖,那人类是否有智慧拒绝唾手可得的诱惑?当思想需要向未来跨出一大步时,阅读科幻依然是当下最高效的途径
2026-02-11 17:22:00
随着云计算、大数据、人工智能等数智技术的迅猛发展,传统劳动形态正经历着前所未有的变革。工作场所的虚拟化、劳动时间的弹性化以及用工关系的多元化
2026-02-11 17:31:00
厦门城市可信数据空间开放试运行推出“马上有数”进驻激励计划 首发5个月资源免费共享东南网2月11日讯 (海峡导报记者 康泽辉) 近日
2026-02-11 17:50:00
元梦空间荣膺两项大奖 闪耀2025人工智能未来设计大赛
2025年11月10日,由工业和信息化部工业文化发展中心主办的2025“人工智能未来设计大赛”全国总决赛在山西太原圆满落幕
2026-02-11 17:50:00
【寒假摘镜总动员】选择哪种近视手术方式?——济南普瑞眼科王晓雪主任为您专业解析
视力是体检中至关重要的一环。选择一种既安全稳定、又符合体检标准的近视手术方式,是实现梦想的关键一步。济南普瑞眼科作为山东省首批蔡司全飞秒4
2026-02-11 17:51:00
潮新闻讯 随着人工智能兴起,数据要素领域的生产性服务业,规模正迅速壮大。近日,浙江省委副书记、省长刘捷在杭州专题调研服务业发展工作
2026-02-11 17:58:00
俊小白与上海吴淞材料实验室联合成立实验室
中国消费者报北京讯(记者孙蔚)近日,上海吴淞材料实验室与国货科创口腔护理品牌俊小白联合成立的个人护理功能介孔材料联合实验室正式落成
2026-02-11 18:06:00
大皖新闻讯 大皖新闻记者从国先中心(合肥)了解到,日前,零次方机器人率先完成中国信通院“可信AI”具身智能基准测试(EAI Bench)
2026-02-11 18:18:00
2月5日,中国消费者协会公布了2025年全国消协组织受理投诉情况统计数据,去年全国消协组织共受理消费者投诉2016448件
2026-02-11 18:06:00
职场人年货买什么?食品类、数码类需求上升
日前,智联招聘发布《职场人春节生存图鉴调研报告》,呈现职场人在春节前后的工作状态、社交压力、休闲计划等。春节前后通常是离职高峰期
2026-02-11 19:14:00
2025年,安徽太和县烟草专卖局(营销部)紧扣行业高质量发展要求,以“强基固本、提质增效”为主线,深化终端现代化转型,在数字化赋能
2026-02-11 14:18:00
从技术到情感,2026值得入手的定制珠宝品牌,一文读懂不踩坑
一、定制珠宝为何成为新消费时代的“刚需”?过去几年,全球珠宝产业正经历一场由内而外的结构性重塑。根据《2026全球珠宝行业白皮书》披露的数据
2026-02-11 14:20:00