这款 AI 编码工具 CodeFuse 很惊艳


作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。
热门文章推荐:

  • (1)对程序员来说,技术能力和业务逻辑哪个更重要?
  • (2)搭建GitHub免费个人网站(详细教程)
  • (3)itchat实现微信聊天机器人
  • (4)嗖嗖移动业务大厅(源码下载+注释全 值得收藏)

图片[1] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

大家好,我是苍何。在 AI 时代,总是会迅速出现很多惊艳的产品工具,这些效率工具,在很大程度上推动了科技的进步。特别是在编程领域,各类工具更是层出不穷,从 GitHub Copilot 到 CodeGeeX,再到通义灵码,有很多工具在不断涌现。今天,我想和大家分享一款我最近发现的、非常出色的编程辅助工具 —— CodeFuse。

一、什么是 CodeFuse

CodeFuse 是和 GitHub Copilot 类似的编码助手,是蚂蚁集团基于自研的基础大模型进行微调的代码大模型。

CodeFuse 具备代码补全、添加注释、解释代码、生成单测,以及代码优化功能,以帮助开发者更快、更轻松地编写代码。

我们知道在 IntelliJ IDEA 中安装 GitHub Copilot 并不能召唤出 chat 功能,目前这个功能还处于测试阶段,但 CodeFuse 直接就可以召唤出 chat 功能,并能很好的解释代码。

二、CodeFuse 下载与安装

目前 CodeFuse 还处于内测阶段,苍何也拿到了内测资格,还没申请的可以申请一波:在CodeFuse官网直接申请,填相关资料等待审核就好了,一般审核周期 1-3 天。

图片[2] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

申请好后,拿到内测资格就可以直接下载插件。

因为目前还处于内测阶段,所以还没上线插件市场,目前无法直接在插件应用市场直接搜索到。

图片[3] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

我们以 IntelliJ IDEA 为例,点击下载插件进行下载

图片[4] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

图片[5] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL
然后打开 idea,选择刚才下载的插件进行安装:

图片[6] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL
安装完成重启 idea 即可:

图片[7] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

可以看到我的 idea 已经安装了 GitHub Copilot、CodeGeeX、通义灵码,为了接下来和其他插件进行对比,在代码补全部分,单词仅开启一个插件,尽量保证实验客观真实。

安装好后,可以对默认是否进行代码补全进行设置:
图片[8] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

之后需要进行登录,点击侧边栏登录完成后可以设置快捷键等。

图片[9] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

三、CodeFuse 功能及对比性评测

1、代码补全

和其他所有编码助手一样,代码补全是最基本的核心能力。为了保证实验的客观真实,我们采用单一补全法,我们先将其他插件的代码补全关闭。

关闭 GitHub Copilot 代码补全:
图片[10] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

关闭通义灵码代码补全;
图片[11] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

关闭 CodeGeeX 代码补全:
图片[12] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

这个时候代码补全只有CodeFuse 启用,我们先建一个空类,什么都不写,直接按换行看看:

图片[13] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

我们可以看到在提示代码后有中文的快捷键友好提示:

图片[14] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

按 Tab 键采用提示编码,CodeFuse 并没有直接把 main 方法补全完,而是只补全最核心的一行,缺少方法另外一个括号。相对 GitHub copilot 来说,我觉得这这更加符合程序员编码习惯以及符合 idea 的默认换行补全方式。在 idea 中,写完一个方法的左括号,按换行,直接就可以补全右括号,而我们确实只需要他生成单行即可。

图片[15] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

图片[16] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

这个时候,我们把 GitHub Copilot 代码补全打开,其他插件代码补全全部关闭。可以看到 GitHub Copilot 直接就提示一个完整的 main 方法,并输出了一段默认语句,个人觉得在有些场景下是一种累赘。CodeFuse 是在进行换行的时候提示下一句话,我觉得更友好一些。

图片[17] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

对于单行的代码补全模型速度上更快于GitHub Copilot,可能是GitHub Copilot 的远端模型依赖的大模型是 openai 的原因吧。

图片[18] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

对于多行代码,同样可进行补全,直接写一个注释,直接可以生成方法,在CodeFuse 中是完全区分单行代码补全和多行代码补全的。

图片[19] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

2、解释代码

图片[20] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL
选中代码右键或者直接在侧边栏点击/explain 即可。因为目前GitHub Copilot 无法使用 chat 功能,所以这个侧边栏显示解释代码还是非常有用的。

图片[21] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

3、生成注释

生成注释同样是对需要注释的代码右键生成。但有时候不大灵敏,看了下官方说明看来是对方法函数的生成更完善。

说明:目前模型的生成注释功能对整个函数级别的支持较为完善,因此推荐您优先针对函数级别生成注释。

图片[22] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

这里我建议产品可以学习一下通义灵码的交互,直接在方法上可以进行操作,右键成本还是高了一些。

图片[23] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

4、生成单侧

同样对需要生成单侧的代码,右键「生成单侧」即可在右侧栏中看到CodeFuse 生成的单侧,直接在测试类中插入单侧代码即可,还是很方便的。

图片[24] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

5、代码优化

右键需要优化的代码,可以看到CodeFuse 为我们生成的优化建议。
让他优化下这段代码:

@Beforepublic void before() {//可以为nullProxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890));HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger());httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);v2 = OpenAiClient.builder().apiKey("xxxxx").connectTimeout(50).writeTimeout(50).readTimeout(50).interceptor(Arrays.asList(httpLoggingInterceptor)).proxy(proxy).apiHost("https://api.openai.com/").build();}


图片[25] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

可以选择按照优化建议直接生成代码:

图片[26] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL
可以直接采用替换原先代码,或者复制代码,最好用的是可以进行前后代码比较,看看 CodeFuse 究竟帮我们改了哪些,很直观。

图片[27] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

生成的优化代码:

@Beforepublic void before() {// 可以为 nullProxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890));HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger());httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);String apiKey = "xxx";int connectTimeout = 50;int writeTimeout = 50;int readTimeout = 50;String apiHost = "https://api.openai.com/";v2 = OpenAiClient.builder().apiKey(apiKey).connectTimeout(connectTimeout).writeTimeout(writeTimeout).readTimeout(readTimeout).interceptor(Arrays.asList(httpLoggingInterceptor)).proxy(proxy).apiHost(apiHost).build();}

而GitHub Copilot 目前这块功能还无法使用在 idea 中。
图片[28] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解,提出优化和改进建议,还能直接基于改进建议形成代码补丁,能帮助我们写出更好的代码。

四、总结

目前虽 说CodeFuse 还处于内测阶段,但从测试效果来看,还是很惊艳的,特别是其侧边栏的代码 UI 风格和交互以及支持自定的配置比较友好。

在这个由创新驱动的时代,CodeFuse 等工具的出现,不仅加速了编程项目的开发进程,更为编程世界带来了新的可能性。对于那些渴望在技术领域保持领先的开发者们来说,CodeFuse 无疑是一个值得尝试和深入探索的宝贵资源。

图片[29] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。
图片[30] - 这款 AI 编码工具 CodeFuse 很惊艳 - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享