用户投稿:这款 AI 编码工具 CodeFuse 很惊艳

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

adlksv.png

本文为用户投稿,文章内容仅代表作者观点。


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



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


一、什么是 CodeFuse

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

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

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


二、CodeFuse 下载与安装

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

申请内测

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

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

下载插件

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

下载idea插件

本地存放

然后打开 idea,选择刚才下载的插件进行安装:

idea插件安装

安装完成重启 idea 即可:

安装完成

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


安装好后,可以对默认是否进行代码补全进行设置:

设置代码补全

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

登录完成


三、CodeFuse 功能及对比性评测

1、代码补全

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

关闭 GitHub Copilot 代码补全:

关闭GitHub copilot代码补全

关闭通义灵码代码补全:

关闭通义灵码代码补全

关闭 CodeGeeX 代码补全:

关闭CodeGeeX代码补全

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

空白类默认补全

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

快捷键友好提示

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

CodeFuse 单行补全

CodeFuse 单行补全提示

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

GitHub Copilot起始补全

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

单行代码补全

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

生成0-10 的随机数,要求不能是质数


2、解释代码

解释代码

选中代码右键或者直接在侧边栏点击/explain 即可。因为目前GitHub Copilot 无法使用 chat 功能,所以这个侧边栏显示解释代码还是非常有用的。

点击/explain解释代码


3、生成注释

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

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

生成代码注释

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

通义灵码生成注释方式


4、生成单侧

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

CodeFuse生成单侧


5、代码优化

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

@Before
public void before() {
    //可以为null
    Proxy 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();
}


CodeFuse生成优化建议

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

优化建议直接生成代码

可以直接采用替换原先代码,或者复制代码,最好用的是可以进行前后代码比较,看看 CodeFuse 究竟帮我们改了哪些,很直观。

看看 CodeFuse 究竟帮我们改了哪些

生成的优化代码:

@Before
    public void before() {
        // 可以为 null
        Proxy 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 中。

GitHub Copilot 无法使用的功能

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


四、总结

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

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

目录
相关文章
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
Sketch2Lineart:AI绘画工具,自动将手绘草图转换成清晰的线条画
Sketch2Lineart是一款基于人工智能的绘画工具,能够自动将手绘草图转换成清晰的线条画。该工具支持多种功能,如草图转线稿、自动描述生成、细节调整和风格定制等,适用于艺术创作、产品设计、教育培训等多个领域。
134 60
Sketch2Lineart:AI绘画工具,自动将手绘草图转换成清晰的线条画
|
2天前
|
人工智能 自然语言处理 搜索推荐
你用过最好用的AI工具是什么?
2023年AI革命风起云涌,众多产品令人振奋。我体验了OpenAI的ChatGPT、微软New Bing、Anthropic Claude等多款AI产品。特别推荐微软New Bing,它集成了强大的搜索引擎和语言模型,回答问题精准,提供最新信息,还能免费进行创意绘图。此外,New Bing还集成了Copilot网页助手,帮助用户高效提取和总结内容。
51 27
你用过最好用的AI工具是什么?
|
2天前
|
机器学习/深度学习 人工智能 算法
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
X-AnyLabeling是一款集成了多种深度学习算法的图像标注工具,支持图像和视频的多样化标注样式,适用于多种AI训练场景。本文将详细介绍X-AnyLabeling的功能、技术原理以及如何运行该工具。
22 2
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
|
10天前
|
编解码 人工智能 监控
VISION XL:支持四倍超分辨率的 AI 视频修复处理工具,提供去除模糊、修复缺失等功能
VISION XL是一款基于潜在扩散模型的高效视频修复和超分辨率工具,能够修复视频缺失部分、去除模糊,并支持四倍超分辨率。该工具优化了处理效率,适合快速处理视频的应用场景。
57 6
VISION XL:支持四倍超分辨率的 AI 视频修复处理工具,提供去除模糊、修复缺失等功能
|
17天前
|
存储 人工智能 数据库
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
Codel是一款全自主AI代理工具,支持在终端、浏览器和编辑器中执行复杂任务和项目。它运行在沙盒化的Docker环境中,具备自主操作能力,内置浏览器和文本编辑器,所有操作记录存储于PostgreSQL数据库。Codel能够自动完成复杂任务,如创建项目结构、进行网络搜索等,适用于自动化编程、研究与开发、教育与培训以及数据科学与分析等多个领域。
55 11
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
90 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
|
18天前
|
Web App开发 机器学习/深度学习 人工智能
Magic Copy:开源的 AI 抠图工具,在浏览器中自动识别图像进行抠图
Magic Copy 是一款开源的 AI 抠图工具,支持 Chrome 浏览器扩展。它基于 Meta 的 Segment Anything Model 技术,能够自动识别图像中的前景对象并提取出来,简化用户从图片中提取特定元素的过程,提高工作效率。
60 7
Magic Copy:开源的 AI 抠图工具,在浏览器中自动识别图像进行抠图
|
21天前
|
人工智能 自然语言处理 算法
Devika AI:开源的 AI 软件开发工具,理解和执行复杂的人类指令
Devika AI 是一款开源的 AI 软件开发工具,能够理解和执行复杂的人类指令。它通过分解任务、信息搜集和代码生成,帮助开发者提高效率,减少人工干预。本文将详细介绍 Devika AI 的功能、技术原理以及如何运行和配置该工具。
45 9
Devika AI:开源的 AI 软件开发工具,理解和执行复杂的人类指令
|
20天前
|
人工智能 JSON 自然语言处理
智能化AI工具-语言翻译与本地化
在全球化发展的背景下,语言翻译与本地化需求日益增长。无论是跨境电商、国际合作,还是本地化应用开发,都需要高效、准确的翻译解决方案。阿里云通义千问作为一款强大的大语言模型,不仅具备出色的自然语言理解能力,还能够在多语言翻译和本地化场景中发挥重要作用。本博客将详细介绍如何基于阿里云通义千问开发语言翻译与本地化工具,包括产品介绍、程序代码以及阿里云相关产品的具体使用流程。
57 10
|
19天前
|
人工智能 自然语言处理 API
吴恩达开源aisuite:简化AI模型调用的新工具 | AI工具
近日,著名人工智能学者吴恩达教授在推特上宣布了他的最新开源项目——aisuite。这款全新的Python包旨在简化开发者与各大AI模型服务商的集成过程,极大提升了应用开发的效率。aisuite的推出,无疑为人工智能领域的开发者带来了一个强大而便利的工具。
63 5
下一篇
DataWorks