前言

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

CodeGeex简介

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

  • 高精度代码生成:支撑生成Python、C++、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。

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还不能完全代替程序员。