首页 文章详情

程序员慌不慌?这个AI能自动写代码!

编程技术宇宙 | 651 2022-11-27 19:08 0 0 0
UniSMS (合一短信)

大家好,我是轩辕。

相信大家听说过人工智能写代码吧?

之前我听说这玩意的时候还不屑一顾,不过最近我看了一个AI写代码的能力,还真让我开了眼界。

这个AI叫做:CodeGeeX

07cbe1dfb0c7aced7efa188526f60879.webp

根据官方的宣称,这个家伙的诞生可不简单:

      
      CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型
在20多种编程语言的代码语料库(>8500亿Token)上经过历时两个月预训练得到。
CodeGeeX采用华为MindSpore框架实现
在鹏城实验室的“鹏城云脑ll”平台上训练而成。

130亿+参数,20多种编程语言,训练2个月...真不愧是炼丹术,让我们来看看这训练出来的AI写代码能力究竟如何。

如何使用?

使用很简单,你只需要在注释中阐述你需要什么样的功能,AI会自动提示代码输出,接下来要做的就是不停按Tab键就可以了。

PS: 描述程序功能的时候,用英文的效果比中文要好一些。

5514069a245b84ca9517ee18c820529e.webp

这里是它们的官网,在官网提供了在线测试的入口,大家可以去“调戏”一波:

https://models.aminer.cn/codegeex/zh-CN/

除了在线使用,另一种更加实用的方式是集成到IDE中。

这玩意提供了VSCode的插件支持(PS:VSCode真香),可以在VSCode中体验丝滑般的使用体验。

接下来我分别使用了三种主流的编程语言,来试试这家伙的“智能”到底是什么水平。

Python

在Python中,我敲下了一行注释:

      
      
        # start a web server on port 8090
        

意思就是在8090端口给我起一个web服务,来看看AI的表现:

看起来还不错吧,当然视频是我设置了三倍速播放,正常情况下差不多是1-2秒钟出来一行,我就是一直等待它计算出来后,不断按tab键,坐等程序编写完成。

整体来看生成的程序符合我的要求,给个好评。

Java

再来看看Java中的表现,我在注释中敲下了:

      
      
        // download a file from a specified url
        

从一个指定的URL下载一个文件。

额,不知道为啥把Android的包都引入进来了,难道这玩意的Java是在Android语义环境下训练出来的?

而且,我没说这是个图片啊,代码直接当成了Bitmap在处理。

有点文不对题,这次给个差评!

C++

最后来看看在C++中的表现。

我的注释是:

      
      traverse the files in the specified directory

遍历指定目录下的所有文件。

好家伙,一来就告诉我,目前只支持Windows平台,所以生成的代码是基于Win32 API的,没想到这家伙还精通已经逐渐没落的Win32编程,让我有点意外。

整体来看效果还不错,生成的代码可用性还是挺高,基于它的结果我们改一下就可以用起来了,再次好评。

总结

除了这三个例子,实际上我还测试了很多,大部分时候还是能get到我的意思,输出我想要的代码,但还是有些场景下,输出的代码风牛马不相及,不知道是什么意思。

整体来看,这款AI的水平已经算不错了,但感觉还是有点鸡肋。比如上面三个例子,我在百度那么一搜,去博客园、CXDN找一找别人写的说不定还快一点,质量还可靠一点。

简单的用不上,复杂的搞不定,差不多就是这么个意思。

当然还是不能否定人家的成绩,能做到这个程度已经很不容易,相信随着后续的优化迭代,也会越来越完善。

AI:程序员们,你们颤抖吧!

往期推荐


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter