史上最全智能代码补全工具系列之阿里云Cosy篇

您所在的位置:网站首页 CAD编码插件t1 史上最全智能代码补全工具系列之阿里云Cosy篇

史上最全智能代码补全工具系列之阿里云Cosy篇

2023-05-01 13:31| 来源: 网络整理| 查看: 265

近几年,人工智能迅速发展,在各行各业都有所应用,特别是近两年,面向开发者的AI开发工具也是层出不穷,从这些工具中,我们看到了AI能为开发者带来的无限可能性。本系列文章主要介绍国外的Kite、Codota、TabNine、GitHub Copilot、微软IntelliCode,国内的阿里云Cosy、AIXcoder等程序员比较常用的智能编码辅助工具,并会在后续的文章中做一些更为详细的偏个人使用感受的对比评测。

上一篇我们介绍了微软的IntelliCode,本篇文章我们来看看一款国产工具,近期刚发布的阿里云智能编码插件Cosy,官网主页: developer.aliyun.com/tool/cosy

阿里云的智能编码插件Cosy(Alibaba Cloud AI Coding Assistant,简称阿里云Cosy,吐槽一下,这名字有点长^_^)是2021年10月份才发布,到现在才两个月时间,目前仅支持Java语言。通过Cosy的帮助文档了解到,它使用深度学习模型加语法分析结合的技术,通过深度学习模型强力的学习能力生成长序列代码,同时又通过结合语法分析的能力去纠正模型生成的错误。我理解Cosy是想解决TabNine、GitHub Copilot等普遍存在的生成错误代码的问题,从使用体验上感觉错误代码确实少很多,但是依然会存在。

我个人比较喜欢的是Cosy提供的代码搜索功能,它从GitHub、StackOverflow等开源代码中抽取出了常用的代码片段,让我能很方便的在IDE中直接搜索,复制粘贴代码更简单。

支持功能

由于刚发布不久,目前仅提供IntelliJ IDEA插件,支持Java语言,相比于其他工具支持的语言种类比较少。

代码智能补全

支持整行的代码补全结果 离线模式,Cosy会在首次启动时把模型下载到本地,之后便可断网使用

代码示例搜索

在IDE内支持指定API的代码示例搜索 在IDE内支持通过英文/中文的功能描述搜索StackOverflow、GitHub等来源的开源代码片段,比较好的亮点是通过中文也能将英文数据搜索出来 官方演示

官方主页视频演示了从代码搜索中查询“压缩文件”的代码片段,并直接将所需的代码复制粘贴到代码编辑器中,最后在main方法中通过代码智能补全进行代码的编写,确实比人工去Google、百度搜索高效很多,毕竟通用的搜索引擎需要逐个点开才能知道文章内容,而且存在大量广告。

下面是Cosy帮助文档中的视频,它将安装了Cosy插件与仅使用IDE内置补全两种情况进行了编码速度的对比,能看到安装了Cosy的编码速度确实会快很多。

使用体验

我们先来了解下阿里云Cosy的代码智能补全功能。

Cosy简单体验下来,在同样的代码中产生的错误结果会很多,但是也不是完全没有,偶尔也会产生错误的结果。相比于其他工具的缺点在于它有时候给不出补全的结果,可能是为了避免语法错误,这个有时候也是优点,毕竟宁缺毋滥,至少装了这类工具应该让我的体验比之前更好,而不是会有体验下降的问题。

1)Cosy能很好的识别代码上下文信息,生成长序列的补全结果,而且没有语法错误,并且能自动将inputStream填充到参数中。

2)Cosy能根据上文自动的识别出当前位置需要XSSFSheet。

当给与了XSSFSheet的强制类型转换信息后,Cosy能提供getSheetAt方法的长序列代码补全结果。

3)但是Cosy对于for循环的补全稍微弱一点,只能一段一段的补出,但是for循环很多时候通过IDEA的fori的代码模板能够快速生成。

4)Cosy有时候也会存在语法错误的问题,比如下图中生成的World类在当前工程中是不存在的。

我们再来了解下Cosy的代码示例搜索功能。

Cosy提供了比较不错的代码搜索工具,它不像Codota只能搜API的代码示例,这种情况只适用于已经了解部分API,而对完全不知道实现某项功能需要用哪些API的开发者是不太适用的。

Cosy除了提供了类似Codota的API代码示例搜索功能,也能通过中文或英文的功能描述去搜索代码示例,从结果中可以看到有来自GitHub、StackOverflow等来源的代码示例结果。之前IDEA有一个StackOverflow的插件,但是那个插件是基于Google搜索的,所以对于国内开发者不太能用,而Cosy插件体验下来感觉不是基于Google搜索的,不需要科学上网。

1)从下图中可以看到,当点击Cosy右侧工具栏首页上的示例“android wifi list”时,Cosy能搜索出android相关的代码片段;在搜索框输入搜索关键词时,Cosy能给与关键词自动提示,对于英文不是太好的同学是比较友好的,当输入“read excel”后,Cosy能搜索出读取excel文件相关的代码片段,我们知道读取excel有非常多的三方库,如果我们想使用Apache POI库,可以通过输入“Workbook”与API搜索进行组合查询。

2)我们再来试试Cosy的中文搜索。当我们输入“导出excel文件”时,Cosy能提供搜索词的自动提示,并且可以搜索出GitHub、StackOverflow的代码,用中文搜索词搜出英文StackOverflow的数据这点是比较惊喜的,我不用再绞尽脑汁想怎么翻译成英文再去Google上去搜索。

总体来说,阿里云Cosy的代码补全在TabNine的基础上更进一步的解决了生成错误代码的缺陷,但是在细节打磨上还存在一些问题,与TabNine、GitHub Copilot相比各有千秋。Cosy的代码搜索功能相比其他工具确实是一个比较好的亮点,让我的日常“抄”代码轻松很多。

阿里云Cosy就为大家介绍到这里,文中如有纰漏欢迎指正,有兴趣的小伙伴可以在IDE插件市场通过搜索Alibaba Cloud AI Coding Assistant或Cosy安装体验(目前只支持IntelliJ IDEA),欢迎大家在评论中交流反馈。本系列下一期将为大家带来另一款国产工具AIXcoder,敬请期待!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3