aiXcoder XL来了!一键生成代码真的强!!

2022-10-28 15:41:03 浏览数 (1)

当你新接触一门语言时,是否体会过无从下手、想找大佬带飞却无处求助的崩溃?

当你想实现一个功能时,是否曾反复抓着日渐稀疏的头发,想在深夜里买醉?

当你面临甲方不断变更的需求时,是否还盯着两三函数几行代码不愿面对?

当你遇到写不完,啊不是,是遇到de不完的bug时,是否除了心碎就剩流泪?

.........

上述问题,作为一个程序员,相信大家或多或少都经历过,但是不要担心,因为最近我发现了一个功能十分强大的编程模型插件:aiXcoder XL,可以帮助大家一键解决上述问题。

它是国内首个基于深度学习的智能编程模型,可以根据自然语言描述生成完整可用的程序代码(NL2Code)。

简单的说就是,只要你把想法告诉它,aiXcoder XL可以自动帮你生成对应的高质量代码,给大家演示一下就知道怎么回事了:

我们以Java语言为例,比如在文本框中输入“将字符串用指定的分割符分割”,然后点击右边「生成」按钮,aiXcoder XL模型便会自动生成与之对应的代码函数。

我仔细看了一下自动的生成的代码,不得不说鲁棒性真的很高,不仅提前判断了字符串为空的情况,而且只用了三行代码就实现了所有功能,如果事先不知情的话,我会以为这是个经验丰富的程序员写的。

再比如,我们想用代码来处理一些日常事务时,输入“给表格中的班级成绩排序”,也可以获得对应的完整代码:

不仅如此,aiXcoder XL模型还自动在关键位置处加上了注释,便于我们理解和使用。

除了对中文支持以外,aiXcoder XL对英文的支持也相当出色,比如我们输入“dynamic programming algorithm”(动态规划算法),这是数据结构里面一个特别经典的最优化求解算法,

可能当你还在思考什么是动态规划的时候,aiXcoder XL已经迅速生成了对应的代码函数。

在测试了中英文语言自动生成代码之后,我突然想到,aiXcoder XL模型虽然能够理解自然语言,但是对于一些计算机算法领域专有名词缩写,它是否一样能够理解呢?

于是我又做了一个测试,让aiXcoder XL实现KMP算法,普通人看到KMP可能是一头雾水,但是上过算法课的同学应该知道,这是一个非常经典的字符串匹配算法。

初学者写字符串匹配算法时可能首先想到的是暴力解决,但是用KMP算法效率可以指数级提升。

于是我让aiXcoder XL模型去生成“KMP算法”代码,发现它同样能够迅速地返回对应的方法级函数,这说明aiXcoder XL不仅能够理解自然语言,对于一些计算机领域的专有名词它一样能够理解,这使得我们与aiXcoder XL的沟通效率一下子提升了好几个台阶。

虽然在前面的几个测试例子中aiXcoder XL的表现还算不错,但是估计很多小伙伴心里跟我一样有这样一个疑问:

aiXcoder XL不是号称基于深度学习的智能编程模型嘛?

如果仅仅只是能实现几个经典算法,这些算法我上百度一样能找到,那它的学习功能和智能体现在哪呢?

似乎有几分道理,既能是智能编程模型,那它能不能根据我自己的想法,随心所欲的定制功能呢?

比如我的需求是“使用网络爬虫爬取网页信息,并保存到本地

我们看到aiXcoder XL它似乎只实现了保存到本地的功能,这肯定不是我想要的代码。

我是希望用URLConnection类去链接URL资源,于是我在第三行手动定义了一个URLConnection对象,让aiXcoder XL从光标处重新续写:

续写之后的代码就变成了:

虽然获取到了网页信息,但是保存到本地的却不是该信息,于是接着让aiXcoder XL学习,我手动在第6行定义了一个StringBuffer对象,用来将网页的字节流信息转化称string字符串,它学习完之后生成了如下代码:

这回没什么问题了,只要我传入指定的url链接,就能帮我把这个链接网页的信息爬取下来并且保存到本地。

不过我还是不太满意,我希望保存的本地的路径地址也由我来指定,于是我又在函数中加了一个路径参数,然后让aiXcoder XL重新续写:

我们发现它帮我取消了第二行代码,最后文件保存的路径是由函数的参数来指定的。

到这我发现,aiXcoder的功能确实是蛮强大的,不仅能够适配中英文,还能通过人机交互的方式让它按照自己的想法去学习和改进,生成适应不同场景的功能代码。

如果只有前面那个根据自然语言自动生成代码的功能可以给aiXcoder模型打6分的话,那么现在加了这个交互学习功能,就可以给它打8分了。

当然aiXcoder的研发团队也还在不断的对其进行优化和迭代,相信在不久之后,我们能够看到一个功能更强大的aiXcoder模型。

看到这,估计有的小伙伴会萌生出这样一个想法:这个aiXcoder不会是来取代我的吧?

嗯,当然不是啊!

aiXcoder只是一个辅助你编程和开发的智能助手,把冗余重复的工作交给它去做,这样我们就能节省下来更多的时间和精力去投入到更加富有创造性的工作当中去。

就像aiXcoder的 Slogan 一样:把更多的编程工作交给 aiXcoder,把更多的创造潜能留给人类!

目前,在 aiXcoder 官方网站上,提供了 aiXcoder XL 模型的测试页面,可供大家在线体验:

aiXcoder XL代码生成在线链接:

https://aixcoder.com/nl2code/

aiXcoder XL测试数据集链接:

https://github.com/aixcoder-plugin/nl2code-dataset

0 人点赞