用了一下AI代码补全工具,真爽!

前言

ChatGPT把AI带火了,我就在想,能用它做点什么呢,总不能只让它给我们带来焦虑,也要让我们从科技浪潮中分得一点红利吧。一番查找下来,有个功能对我们程序员来说比较实用,就是AI的代码提示补全功能。最先找到的是GitHub Copilot。不幸的是GitHub Copilot 从2024年8月22日之后,开始收费。正式版定价10美元/月(人民币约67元),年付有优惠100美元/年(人民币约669元),每月 67 元还是有些小贵。经验告诉我,如果市场上存在一块大蛋糕,不可能只被一家公司看到,肯定有许多公司都在研究开发,有替代品。沿着这个思路,我找到了今天的主角CodeGeeX。

CodeGeex简介

CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2024年6月22日,CodeGeeX历时两个月在20多种编程语言的代码语料库(>8500亿Token )上预训练得到。CodeGeeX有以下特点:

  • 高精度代码生成:支持生成PythonC++、Java、JavaScript和Go等多种主流编程语言的代码,在多语言代码生成基准HumanEval-X代码生成任务上取得47%~60%求解率,较其他开源基线模型有更佳的平均性能。
  • 跨语言代码翻译:支持代码片段在不同编程语言间进行自动翻译转换,翻译结果正确率高,在HumanEval-X代码翻译任务上超越了其它基线模型。
  • 自动编程插件:CodeGeeX插件现已上架VSCode插件市场(完全免费),用户可以通过其强大的少样本生成能力,自定义代码生成风格和能力,更好辅助代码编写。
  • 模型跨开源: 所有代码和模型权重开源开放,用作研究用途。CodeGeeX同时支持昇腾和英伟达,可在单张昇腾910或英伟达V100/A100上实现推理。

我使用下来,觉得CodeGeeX的主要功能是通过解读你的代码注释生成对应功能的代码,或者基于你前面/以前的代码给出后面/下一代码片段的补全建议。

刚开始装完VSCode CodeGeeX插件,写代码的时候,看不到任何反应,大概过了3秒钟之后,神奇的事情发生了,终于看到了代码提示内容。

我看网上的介绍,千篇一律使用的都是英文函数注释生成代码,国内程序员平常写代码,大多写的都是中文注释。为了使着顺手,测试一下,看它支不支持根据中文注释,生成代码片段,不支持的话就继续找。咱不整虚头巴脑,中看不中用的测试用例,写一个实实在在,能提高编码生产力的示例。用项目中实际用到的功能测试一下CodeGeeX的代码补全功能。

代码补全功能

写一个生成饼图的中文注释,不负期望,一会儿CodeGeeX就把用ECharts生成饼图的主体功能实现了, 微调一下就可以投入实际使用。不敢相信,免费的AI代码补全工具,功能都这么强大了。我本来还以为,免费的AI代码补全工具,都和TabNine一样,只能提示一行代码,现在看来,自己就是井底之蛙。果断卸载了TabNine。

用了一下AI代码补全工具,真爽!

CodeGeex 有三种模式:

自动模式

这是默认的模式,查看用户以前的代码或代码注释,为用户生成下一行代码。它不会干扰用户写代码。仅在用户输入3秒钟之后给出建议代码,而建议的代码在你按 Tab 键时才生效。之所以需要等待3s,是因为要和服务器通信,获取补全建议。存在多个候选的情况下,可以使用Alt/Option + [ 或 ] 在几个候选间进行切换。用户也可以在设置中改变”Candidate Num:。如果对现有建议不满意,可使用Alt/Option + N获得新的候选。

交互模式

按下 Control+Enter 会进入交互模式,VSCode 会分成两个版面。一个版面正常编写代码,另一个版面显示建议的代码片段。点击使用代码的时候会将提示代码填充到正常编写的代码中。在自动模式不工作的时候,可以按下Ctrl+Enter 组合键进入交互模式,继续获得提示,每按一次Ctrl+Enter, 产生一次提示。

用了一下AI代码补全工具,真爽!

提示模式

按下 ALT+T 进入提示模式,会给你提供一些代码解释,代码总结。使用提示 (Prompt) 模式,需要选中想要获得解释的代码,过一会儿,代码下方就会出现英文功能解释。这个模式只支持按照Java和Python两种语言的代码风格解释代码功能,个人觉得用处不大。

用了一下AI代码补全工具,真爽!

代码转换功能

CodeGeeX的另外一个功能是转换不同编程语言之间的代码。这个功能一般情况下用不上,如果能提供一个React和Vue代码互转的功能,那我们公司的项目就用得上。

用了一下AI代码补全工具,真爽!

有一个细节要注意,安装完CodeGeeX插件后,会弹出一个问询窗口,询问是否愿意将自己的代码共享到AI当做训练数据使用,记得点击拒绝,免得带来一些不必要的麻烦。 用了一下AI代码补全工具,真爽!

本以为这么好用又免费的AI代码补全工具可能比较稀缺,网上找了找,VSCode AI代码补全功能扩展还蛮多:

  • Codeium 是一个人工智能驱动的代码完成工具。它支持超过20种语言,并与常用的IDE集成,个人用户永久免费。需要注册登陆后才能使用。
  • Codiga 是一个,使开发人员能够更快地编写更好的代码。 开发人员可以使用Codiga编码助手直接从他们的 IDE 生成、分发和重用代码片段。
  • CodeWhisperer 亚马逊的CodeWhisperer通过基于自然语言注释和集成开发环境 (IDE) 中的代码生成代码建议来提高开发人员的工作效率。
  • Kite 是另外一种基于机器学习的代码自动补全插件。它的目标是帮助开发者更快地编写高质量的代码, Kite 支持超过16种语言以及16种代码编辑器。
  • Captain Stack 它使用 Google传输用户的搜索查询,然后从 StackOverFlow 和 Github Gist 收集答案,为用户自动完成填充,这个过程中不使用 AI。
  • IntelliCode 是一种在 GitHub 項目样本上训练的实验性AI编码辅助工具。

先收藏备用着,哪个以后收费了不能用了,就换成其它的。

后记

现在看来,中国媒体以前吹嘘的中国新四大发明, 美国媒体吹嘘的Web3.0-元宇宙都是噱头,ChatGPT掀起的这股科技浪潮,才是一次划时代的科技变革,必将影响深远。ChatGPT3.5的调试参数是1750亿个左右,ChatGPT4.0的调试参数已经骤升至100万亿左右,人的大脑皮层神经元数量是140-160亿之间,到达这个级别,智慧就会涌现。看到这么强大的工具,我不禁感慨,不是前端已死,而是程序员已死,程序员自己革了自己的命,以后编程的门槛会大幅降低,程序员的护城河将不复存在。百年未有之大变局。不过现在还能苟且一段时间,因为我发现ChatGPT3.5的数据是有滞后性的。问它有些问题,它就回答不了。如下图所示: 用了一下AI代码补全工具,真爽! ChatGPT4.0应该做了改进。另外AI补全代码的功能虽然强大,但只适合通用场景,要是开发一些定制化很强的业务代码,也很难给它描述清楚。此外,补全的代码仍旧需要人工Code Review和调试,现阶段AI还不能完全替代程序员。

 

作者:去伪存真
链接:https://juejin.cn/post/7216992973418217533
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。商机网仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 tenspace2022@163.com 举报,一经查实,本站将立刻删除。 本文链接:https://www.315965.com/n/54223.html 聚才发 母婴好物

(0)
上一篇 2023年12月16日 上午8:02
下一篇 2023年12月17日 上午12:09

相关推荐

  • java入门基础知识(java语言基础知识总结)

    经常在知乎看到一个问题:Java学到什么程度可以算是精通? 今天就围绕这个问题,其实学习 Java 学到什么程度算是精通,这个其实没有盖棺定论的,也不是说你拿个年薪几十万的 offer 就可以自诩精通了。 我认为,如果市面上这些资料、书籍你都啃的差不多,你能在所有的 Java 程序员中跻身前 0.1% 的话,你就可以达到”精通” 这个…

    2023年7月30日
    370
  • 包粽子教程慢动作(一步一步包粽子的步骤)

    过端午节吃粽子是中华民族的传统习俗,目前在宜昌市夷陵区小溪塔各个农贸市场,到处都在卖粽叶、包粽子,卖粽子。节日气氛越来越浓#宜昌头条# @知名三峡在小溪塔夷陵三巷农贸市场看到,近期卖包粽子叶的市场十分火热。几乎大街小巷都有卖粽子叶的身影。主要是箬叶居多。 粽子叶 粽子叶 包粽子取用的食材及包粽的方式因地域不同,所以有多种多样,在此介绍长江三峡地区比较常见的一…

    2023年8月2日
    220
  • eclipse安装教程详细教程(安装eclipse步骤与配置)

    Eclipse是一个基于Java环境的软件开发,主要支持的是Java语言,Eclipse使Java编程人员在编写程序时更加方便简洁。如果想要学习使用Java的新手,这是一款很不错的软件。 那要如何下载并安装使用eclipse呢?本篇文章将为大家详细讲解,如果对你有帮助,记得转发关注哦~~ 搭配视频观看效果更佳~~ https://www.ixigua.com…

    2023年7月30日
    386
  • PGO 是啥,咋就让 Go 更快更猛了?

    PGO 是什么 Profile-guided optimization (PGO),翻译过来是使用配置文件引导的优化。也被称为: profile-directed feedback(PDF) feedback-directed optimization(FDO) PGO 是计算机编程中的一种编译器优化技术,使用分析来提高程序运行时性能。也就是可以提高 Go …

    2023年12月16日
    164
  • 折纸教程大全简单易学(折纸教程大全简单易学动物)

    一张简单的纸却能变出许多可爱的小动物,折纸的乐趣就在动手,今天给大家分享那些只有孩子才喜欢去折的小动物。 相信每次看到有折纸大全的教程,妈妈们都会忍不住为孩子们收藏,哪天有空了,就教孩子一起折。里面的小动物小花,因为造型不复杂而且比较简单,步骤不多,耐心一点看图解,然后教一教孩子,基本就能折出来。 但是这样的小小折纸,折出来之后,最多就是孩子能高兴一会,平面…

    2023年7月30日
    208
  • REDIS 云原生实战

    摘要 本次以Redis为范例,阐述了有道基础架构团队在基础设施容器化道路上的实践,主要将从声明式管理,Operator工作原理,容器编排,主从模式,集群模式,高可用策略,集群扩缩容等方面展开。   背景 Redis 是业务系统中较为常用的缓存服务,常用于流量高峰、数据分析、积分排序等场景,并且通过中间件可以实现系统之间的解耦,提升系统的可扩展性。 …

    2023年12月16日
    148
  • 钢琴初学者指法基本教程(钢琴入门指法教程简单)

    钢琴有多少种指法?经常有琴友经常会问到这个问题。下面来详细介绍一下五种钢琴基本指法。 1、对指 最最基本的是一个手指头正对着一个键盘。五个手指就对应do、re、mi、fa、so五个音。 2、穿指 穿指也叫“拇指潜移”,也有人叫它“钻山洞”,就是1指从2指或3指或4指下面穿过,去弹奏更高的音的指法。 穿指规则: a、只能用1指去穿,而且只能穿2.3.或4指,不…

    2023年7月29日
    269
  • ubuntu安装教程分区(ubuntu新手安装教程分区)

    Liunx分区的概念 首先我们需要知道,硬盘分区的存在,是由硬盘的物理特性决定的,并不会因为不同的操作系统而有所改变。 请您把一块硬盘想象为一本书……即便您不喜欢读书,您也一定非常熟悉它,所有的书都是相同的,包括我们使用的课本……您肯定非常熟悉 一本完整的书,通常包括书名、索引和正文。 如果您需要Linux,您首先需要找到一本书名为《linux》的书,书名相…

    2023年7月30日
    222
  • 强烈推荐的微信小程序开发总结

    遇到过的坑 小程序页面栈最多十层 问题:假设小程序内有12个问题页面,答完上一个问题后wx.navigateTo到下一个问题页面,那么到第十题时,你会发现wx.navigateTo跳转不到下一个页面。这是因为使用wx.navigateTo跳转会把当前页面保存到页面栈中,而小程序页面栈最多十层。 require的路径不支持绝对路径 问题:在嵌套比较深的目录层级…

    2023年12月17日
    158
  • 什么是大数据?

    对于“大数据”的定义,从IDC机构角度来看,它是为了从海量、高频率、复杂性高的结构化和非结构化数据中提取有价值信息而设计的一种新技术和框架。 在当今这个信息化程度不断深化、互联网快速发展的时代,数据量不断增大,而人工处理数据的能力却始终有限,于是大数据技术的发展就应运而生了。它可以以更加高效的方式处理数据,从而获得更多、更有价值的信息。 大数据技术一般包含数…

    2023年12月15日
    175