用了一下国产免费 AI 代码补全工具,真不错!

作者:去伪存真

原文:https://juejin.cn/post/7216992973418217533

前言

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[1]代码生成任务上取得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, 产生一次提示。

4e28fef2fe051336a1437af024e320de.jpeg

求和.gif

提示模式

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

2b3f83266a9cc450e71983b3872f52ad.jpeg
解释.gif

代码转换功能

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

a658da23a88c98aef1c524b993dabe79.jpeg
image.png

有一个细节要注意,安装完CodeGeeX插件后,会弹出一个问询窗口,询问是否愿意将自己的代码共享到AI平台当做训练数据使用,记得点击拒绝,免得带来一些不必要的麻烦。 97004844b722d062383869e9c304e954.jpeg

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

  • Codeium[2] 是一个人工智能驱动的代码完成工具。它支持超过20种语言,并与常用的IDE集成,个人用户永久免费。需要注册登陆后才能使用。

  • Codiga[3] 是一个平台,使开发人员能够更快地编写更好的代码。 开发人员可以使用Codiga编码助手直接从他们的 IDE 生成、分发和重用代码片段。

  • CodeWhisperer[4] 亚马逊的CodeWhisperer通过基于自然语言注释和集成开发环境 (IDE) 中的代码生成代码建议来提高开发人员的工作效率。

  • Kite[5] 是另外一种基于机器学习的代码自动补全插件。它的目标是帮助开发者更快地编写高质量的代码, Kite 支持超过16种语言以及16种代码编辑器。

  • Captain Stack [6]它使用 Google传输用户的搜索查询,然后从 StackOverFlow 和 Github Gist 收集答案,为用户自动完成填充,这个过程中不使用 AI。

  • IntelliCode[7] 是一种在 GitHub 項目样本上训练的实验性AI编码辅助工具。

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

后记

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

参考资料

[1]

https://gitee.com/codegeex/CodeGeeX/blob/main/codegeex/benchmark/README_zh.md: https://link.juejin.cn?target=https%3A%2F%2Fgitee.com%2Fcodegeex%2FCodeGeeX%2Fblob%2Fmain%2Fcodegeex%2Fbenchmark%2FREADME_zh.md

[2]

https://codeium.com/download: https://link.juejin.cn?target=https%3A%2F%2Fcodeium.com%2Fdownload

[3]

https://www.codiga.io/: https://link.juejin.cn?target=https%3A%2F%2Fwww.codiga.io%2F

[4]

https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html: https://link.juejin.cn?target=https%3A%2F%2Fdocs.aws.amazon.com%2Ftoolkit-for-vscode%2Flatest%2Fuserguide%2Fcodewhisperer.html

[5]

https://www.kite.com/: https://link.juejin.cn?target=https%3A%2F%2Fwww.kite.com%2F

[6]

https://marketplace.visualstudio.com/items?itemName=captainstack.captain-stack: https://link.juejin.cn?target=https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3Dcaptainstack.captain-stack

[7]

https://learn.microsoft.com/zh-cn/visualstudio/intellicode/overview: https://link.juejin.cn?target=https%3A%2F%2Flearn.microsoft.com%2Fzh-cn%2Fvisualstudio%2Fintellicode%2Foverview

最后

如果你觉得这篇内容对你挺有启发,我想邀请你帮我个小忙:

  1. 点个「喜欢」或「在看」,让更多的人也能看到这篇内容

  2. 我组建了个氛围非常好的前端群,里面有很多前端小伙伴,欢迎加我微信「sherlocked_93」拉你加群,一起交流和学习

  3. 关注公众号「前端下午茶」,持续为你推送精选好文,也可以加我为好友,随时聊骚。

e1181e37c15c02da903b1661664a71af.png

d5bb03ba3c62918d0b25fb1fe7db4768.png

点个喜欢支持我吧,在看就更好了

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

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

相关文章

AI设计 | 如何让零基础小白在3分钟内利用AI人工智能设计Logo?

作为一个缺乏基础知识的初学者,你或许会认为Logo设计很难。但是,AI人工智能这个神奇的工具可以帮助你轻松地设计出自己的Logo,让整个过程变得愉快且简单。只要按照我的步骤并跟随我,你可以成为一位杰出的Logo设计师,不…

Tushare接口+LSTM模型预测股票走势

Tushare接口LSTM模型预测股票走势 Tushare ID:423115 Tushare接口优势以及使用方法 Tushare是一款国内使用较为热门的财经接口,数据源稳定不易出错,速度较快,能符合开发的需求,下面讲讲使用的基本方法。 注册账号 …

基于LSTM的对股票走势的预测

下图是基于LSTM的对股票走势的预测的结果 项目附件说明 本次实验项目文件有以下文件夹:stockPredict 文件夹。 1、根目录下存放使用的 python 代码。 2、data 文件夹下存放获取到的股票数据。 3、model 文件夹中包含已经训练好的模型。 4、img 文件夹中包含测试数据表现折线…

股票价、量走势图绘制

在证券投资分析领域中价、量走势分布图是投资者常用的一个参考方面。本案例主要介绍股票每日收盘价格、成交量的走势图以及月交易量分布饼图的绘制技能,并进一步介绍了子图的绘制方法 。 今有股票代码600000行情交易数据表(trd.xlsx)&#xf…

动态分析股票走势算法图,股票趋势预测算法

股票动态市盈率怎么计算出来的? 谈论起市盈率,这可真是有人爱,有人恨,有人认为有用,也认为无用。这个市盈率到底有没有用,咋用? 在为大家介绍我使用市盈率买股票的方法之前,先和大…

(个人简历一)用纯html写个人简历

效果 实现代码 用纯table实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>简历</title></head><body><table border"1" cellspacing"0" align"center"><t…

一位优秀前端工程师的简历应该怎么写?

​如今前端市场的从业人员很多且鱼龙混杂&#xff0c;真正的高手大牛非常稀缺&#xff0c;呈典型的金字塔形状&#xff0c;所以前端的招聘也是很多猎头及HR的痛点所在。那么在这种混乱的环境中&#xff0c;如何才能让自己突出重围&#xff1f;需要实力&#xff0c;更需要技巧。…

简历解析步骤(第一步)技术与实现(1)识文字,取信息

简历解析步骤&#xff08;第一步&#xff09;技术与实现&#xff08;1&#xff09;识文字&#xff0c;取信息 在上篇文章中&#xff0c;我们讲解了简历解析的理论。一般情况下&#xff0c;我们会以图片或文档的形式收到简历&#xff0c;为了实现解析&#xff0c;首先需要将其中…

实战简历编写,打造硬核敲门砖

实战简历编写&#xff0c;打造硬核敲门砖 1.自我介绍2. 技能描述3.工作经历4.项目经历4.1 商城4.2 进销存 自我评价教育经历 1.自我介绍 简历开篇就是介绍自己&#xff0c;忌长篇大论&#xff0c;那么点时间&#xff0c;相信你自己作为面试官&#xff0c;也不想去看阅读理解 …

1小时学会不打代码制作一个网页精美简历(1)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。系列教程将会在…

如何写好的前端简历

识别亮点&#xff1f; 亮点应该是那些能让你显得与众不同的经历&#xff0c;比如说&#xff1a; 做过一些深度的性能优化&#xff0c;并且有比较大的性能收益&#xff0c;能量化提升空间的。 做过一些业务逻辑特别复杂、业务影响力特别大的项目。 推进过一些制度、工具&#xf…

前端开发工程师简历

简历是什么 找工作之前投递的个人信息和工作能力----不全面 应该是&#xff1a;个人当前阶段的价值体现 前者&#xff1a;我能卖多少钱&#xff1b;后者&#xff1a;我现在值多少钱 建议&#xff1a;每隔半年/一年给自己做总结的时候写一份简历&#xff08;相当于个人价值总结…

前端 100 问:能搞懂80%的请把简历给我

更新&#xff1a;目前已达到『1.2W』Star了&#xff0c;谢谢大家的支持&#xff0c;最近折腾了一个博客网站出来&#xff0c;方便大家阅读&#xff0c;后续会有更多内容和更多优化&#xff0c;猛戳这里查看 ------ 以下是正文 ------ 引言 半年时间&#xff0c;几千人参与&a…

前端工程师简历怎么写?

其实前端工程师并不少&#xff0c;但很多时候合适的前端工程师难找。可能是由于程序员比较内向&#xff0c;前端工程师都没有把自己最厉害的那一面表现出来。今天我们来聊聊前端工程师的简历怎么写&#xff0c;希望能够对大家有帮助。 简历的重要性 简历的作用其实一直被忽…

前端简历模板

个人资料 姓名&#xff1a;嘻嘻 性别&#xff1a;女 电话&#xff1a;12132323613 邮箱&#xff1a;12132143285163.com 现居地&#xff1a;上海市 工作年限&#xff1a;3年 求职意向 期望职位&#xff1a;前端开发工程师期望薪资&#xff1a;面议 工作性质&#xff1a;…

如何写简历,Web前端简历

面试官到底想看什么样的简历&#xff1f; 面试一直是程序员跳槽时期非常热门的话题,虽然现在已经过了跳槽的旺季,下一轮跳槽需要年底才会出现,但是当跳槽季的时候你再看这篇文章可能已经晚了,过冬的粮食永远不是冬天准备的,而是秋收的时候。 点个关注,点个收藏,需要的时候就防…

黑马程序员教你如何写出优秀的前端工程师简历

对于一名想找工作的前端开发工程师而言&#xff0c;简历直接关系到面试概率甚至薪资水平&#xff0c;其重要性已不用多说。在HR快速筛选简历的情况下&#xff0c;你的简历要脱颖而出&#xff0c;就得在短时间内将自己的亮点展示给招聘方。具体怎么做&#xff1f;黑马程序员前端…

教你如何写初/高级前端简历

进击的web前端开发 前端企鹅圈&#xff1a;784783012 分享学习方法和需要注意的细节 110 人赞同了该文章 1. 前言 本文仅是针对初高级技术岗位哈。 参与了部门的实习生招聘工作&#xff0c;收到了很多同学的简历。发现有一些同学的简历写得不是很好看。 但是&#xff0c;仔细…

前端程序员简历模板整理和下载

大家好&#xff0c;我是漫步 昨天分享了关于制作简历的一些建议&#xff0c;总的来说有这几个方面要点要记住&#xff1a; 排版工整&#xff1a;不要出现错别字&#xff0c;版面清晰&#xff0c;段落自然&#xff0c;字体适中&#xff0c;简洁工整。 突出重点&#xff1a;突出…

web前端简历个人技能该怎么写?

为一名web前端工程师要想找到一份高薪工作&#xff0c;总会面临各种大大小小的面试。这其中面试成功的关键莫过于一份吸引人的简历。 其实技术类的岗位一般都比较看中工作经历&#xff0c;web前端这个岗位可以说是在公司比较重要的&#xff0c;hr一般在初选简历的时候&#xf…