码农必备?清华大学开源了一款写代码神器!
提升程序员编码效率,是一个经久不衰的话题,从最初用纯文本编辑器到后来代码自动补全,再到后来基于 AI 智能补全代码,开发者效率的确在不断提升。
关于新工具的出现,一直都会有支持和反对的两种声音。
支持者认为这些工具大大提升了开发效率,可以把有效的时间花费在创造更多业务价值上。
反对者则认为过于依赖这些工具,容易养成一个人的惰性,进而大大降低开发水平。
个人认为应该拥抱技术的变化,我们不应该因为对新鲜事物的恐惧而停滞不前,甚至在没有尝试之前就开始盲目的批判。
就如同智能补全工具的出现,逐渐的在覆盖更多的开发者,也解放了很多开发者的时间,提升了效率。
今天,要给大家介绍的这款开发工具比智能补全工具更为智能、强大,可以认为是智能补全的下一代产品。
这款工具的名字叫做 CodeGeeX,来自清华大学知识工程实验室(KEG),开源 2 个月,目前已经有 700+star。
CodeGeeX 是一款具有 130 亿参数的多语言代码生成模型,采用华为 MindSpore 框架时间,它是历时两个月再 20 多种编程语言的代码语料库的基础上预训练得到。
这里需要注意一点,它的功能并不是「代码补全」,而是「代码生成」。
也就是说,它能够根据你的描述,或者上下文自动生成一段代码,和传统上根据前面的输入,自动补全余下部分是截然不同的。
它目前支持 Python、C++、Java、JavaScript、Go 等多种主流编程语言,而且在代码生成准确度方面表现较好。
除了代码生成之外,它还支持代码翻译,换句话说,你复制一段 C++写的代码,可以轻松的翻译成 Python、Java 等其他语言。
另外,它已经支持目前比较热门的编辑器 VS Code。
目前,它主要支持 4 种使用方式,下面就以 VS Code 中的使用为例来逐个介绍一下。
隐匿模式
简单来说就是,你输入一段描述之后,然后停止输入,CodeGeeX 会根据上下文,从光标停止处开始生成代码。
可以看一下 VS Code 右下角的图标,如果一直在转动,就代表正在生成中,生成完成后会显示「Done」,如果没有建议,就会显示「No Suggestion」。
如果有多个建议,可以通过「Alt/Option+」[或者「Alt/Option+]」来切换不同建议,通过 Tab 可以插入建议内容。
举个例子,假如输入“write a bubble sort function”,它就会给出一个冒泡排序函数的建议:
交互模式
顾名思义,就是在隐匿模式的基础上加了个交互式界面。
点击 Ctrl+Enter,会打开在右侧打开一个交互界面,这样 CodeGeeX 给出的建议就会显示在右侧交互界面。
我们可以点击「Use Code」选择对应的代码片段。
翻译模式
这种模式前面提到过,也就是说,我们可以任意复制一段其他语言编写的代码,然后选中代码,点击「Ctrl+Alt+T」可以激活翻译模式,选择目标语言,就可以把这段代码翻译到对应的语言。
提示模式
在提示模式下,可以输入一些额外的提示信息来触发一些有趣的功能,例如,代码解释、概括、特定风格等,它利用的是一种少样本生成能力。
举个例子,假如你自己定义了一个模板并且提供了一段逐行解释的代码作为例子,你可以通过快捷键「Alt/Option+t」触发提示模式,选择写好的模版,它就会解释你输入的代码。
传送门:
https://github.com/THUDM/CodeGeeXgithub.com/THUDM/CodeGeeX
中文介绍:
建议大家有空可以多浏览 Github,有很多好用的开源免费工具。但是,目前 Github 上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐 Github 上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖 C++、JAVA、JavaScript、Python、Go 等不同编程语言。此外,还有一些开源工具、优秀的技术文章:
版权声明: 本文为 InfoQ 作者【Jackpop】的原创文章。
原文链接:【http://xie.infoq.cn/article/3a0b32389749b716992010038】。文章转载请联系作者。
评论