aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码

伴随AI和大数据技术在整体软件市场的应用 , 软件开发行业正迎来自己的“第三次工业革命” , AI技术也开始在编码工作中发挥作用 。
近日 , 智能编程机器人提供商aiXcoder宣布推出国内首个基于深度学习的支持方法级代码生成的智能编程模型——aiXcoderXL , 该模型能同时理解人类语言和编程语言 , 可根据自然语言功能描述一键生成完整程序代码(NLtoCode) 。 该成果的诞生受到了鹏城实验室(中国)和百度飞桨深度学习框架的大力支持 , 是国内首个完全自主知识产权的方法级代码生成模型 。 目前aiXcoderXL已完成在程序编写场景下的应用测试 , 并即将以IDE插件形态推出支持商业编程的产品 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
aiXcoderXL方法级代码生成实测aiXcoderXL效果如何呢?我们以Java语言为例 , “将byte数组转化为16进制字符串” , 创建这样一个描述功能的自然语言语句 , 点击生成按钮 , 模型就自动生成了与之对应的完整函数代码 , 程序员可直接使用 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
再比如 , 输入“用map中的值更新url中的参数”这样一句中文描述 , 就可以获得一个完整方法的代码实现 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
aiXcoderXL对英文自然语言描述的支持也相当出色 。 比如以下这个示例 , “Calculatetheinnerproductoftwomatrices”(计算两个矩阵的内积) , 当我们还在思考具体计算步骤时 , aiXcoderXL已经给出了完整的程序方法 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
尝试了多个类似的输入 , aiXcoderXL都给出了可以直接复用的代码生成结果 。 特别是对于一些软件开发中需要经常在不同场景中编写的代码(例如 , 各类文件操作、字符串操作、网络服务等)aiXcoderXL的生成结果更是令人眼前一亮 。
随机应变——根据需求变化 , 生成相应代码aiXcoderXL还能进行动态交互 , 实现个性化人机结对编程 。 在实际开发过程中 , 有时无法“一步到位”描述清楚想要的内容是什么 , 需要“边写边改” , 这时就需要模型能灵活理解每一处调整 。 aiXcoderXL支持与程序员进行动态的人机交互:在处理一些复杂的场景时 , 开发者不仅可以通过修改自然语言 , 也可以直接对已生成的代码进行编辑 , 使后续生成的代码更匹配开发者的具体需求 。
例如 , 在下图示例中 , 开发者可以直接在已生成代码里修改函数签名 , 把输入的压缩文件参数类型InputStream换成File对象 , 这样aiXcoderXL就能根据修改重新生成匹配需求的代码 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
贴近实战——功能自动拆分 , 逐级生成方法代码为了更好的代码可读性 , aiXcoderXL生成代码时会将功能进行拆分 , 有时会使生成的代码中包含对其它尚不存在的函数的引用 。 将鼠标移到这些函数上 , 根据提示选择“为这段函数调用生成它的实现”即可进一步生成这些函数的实现 。
如下图所示 , aiXcoderXL原本生成了一个调用了isSorted函数的sort方法 。 用户通过一次鼠标点击 , 让aiXcoderXL进一步生成了被调用的isSorted函数 。
aiXcoder XL智能编程大模型发布:自然语言一键生成方法级代码
文章图片
整个交互的过程极大程度的提升了开发者的编程效率 , 创造了更智能、流畅的人机结对编程体验 。 对开发者来说 , 就像拥有了智能输入法一样 , 无论你在写什么代码 , aiXcoderXL都有可能帮到你 。