图片来源:开源中国 https://my.oschina.net/u/6942768/blog/10122694
简介
CodeFuse 是一款为国内开发者提供智能研发服务的产品,该产品是基于蚂蚁集团自研的基础大模型进行微调的代码大模型。CodeFuse 具备代码补全、添加注释、解释代码、生成单测,以及代码优化功能,以帮助开发者更快、更轻松地编写代码。
功能特性
CodeFuse 提供多个 IDE 插件版,支持在 10 款 IDE 中使用,包括支付宝小程序云云端研发、Visual Studio Code,以及 JetBrains 系列的 IntelliJ IDEA、PyCharm、WebStorm、GoLand、CLion、DataGrip、PhpStorm
和 RubyMine。此外,CodeFuse 支持 40 多种编程语言,包括 PHP
、C 、Java、Python、JavaScript 等,目前 CodeFuse 针对 Java 与 Python 的代码生成质量较高。
「CodeFuse 支持的功能如下表」
功能 | 说明 |
---|---|
代码补全 | 基于海量数据提供实时地代码补全服务,包括行内补全(单行补全)和片段补全(多行补全)。 |
添加注释 | 智能为选定的代码生成注释,目前在整个函数级别的生成注释效果较好。 |
解释代码 | 智能解析代码意图,为选定的代码生成解释,辅助阅读并理解代码。 |
生成单测 | 在写完业务逻辑后,为选定的代码生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率。 |
代码优化 | 基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解并提出优化、改进建议,还能直接基于改进建议生成代码补丁。 |
快速开始
以下将在PhpStorm IDE
插件的安装步骤和多个代码场景的使用示例,以帮助您快速使用 CodeFuse。
步骤一
下载 CodeFuse 插件安装包:https://amctats-hz.oss.cloudrun.cloudbaseapp.cn/codefuse/CodeFuse-beta-0.1.0.zip
步骤二
在PhpStorm
顶部功能栏,单击 Flie【文件】 > Settings【设置】(Ctrl Alt S)
进入设置页面。在 Plugins(插件)
中选择 Install Plugin from Disk(从磁盘安装插件)
安装包进行安装
选择【桌面】选择已经下载好的压缩包
CodeFuse-beta-0.1.0.zip
步骤三
点击 CodeFuse 插件面板,进行用户登录
步骤四
登录成功
「注意:首次开通现需要去官网:https://codefuse.alipay.com/通过支付宝登录,提交申请,等申请通过后就可以进行登录使用啦!」
使用 CodeFuse 插件
使用
代码补全
代码补全功能基于海量数据提供实时地代码补全服务,包括行内补全(单行补全)和片段补全(多行补全)。目前该功能支持 Java、Python、TypeScript、JavaScript、Go 等 5 种主流编程语言的多行和单行代码补全,以及其他 40 种编程语言的单行代码补全。
单行代码补全
1、在 IDE 编辑器中创建一个 PHP 文件
2、在 PHP 文件中,CodeFuse 将能够根据代码上下文,为您键入的内容给出补全提示。例如键入以下函数名称并按下回车键,插件将给出代码补全提示。
3、如需接受代码补全建议,请按 Tab 键。
多行代码补全
插件还支持输入注释文本完成多行代码补全。例如键入以下注释内容并按下回车键。CodeFuse 会根据注释内容自动生成多行代码,生成的代码以灰色文本展示。
键入内容并按下回车键后,您可以在编辑器右下角看到内容生成的状态。
关闭自动代码补全
自动触发代码补全功能默认开启,支持在插件面板的设置中关闭此功能,以禁止自动触发单行或多行代码补全。
- 单行代码补全:例如在编辑器中键入一个函数名称并按下回车键。
- 多行代码补全:例如在编辑器中键入一段注释文本并按下回车键。
说明:关闭自动触发代码补全后,您仍然可以使用 Alt/Option 快捷键手动触发代码补全。
解释代码
注:目前模型的生成注释功能对整个函数级别的支持较为完善,因此推荐您优先针对函数级别生成注释。
- 在 IDE 编辑器中创建一个
PHP
文件。 - 在
PHP
文件内选中需要解释的代码片段。 - 单击鼠标右键,选择 「CodeFuse:解释代码」,插件将在右侧的对话窗口中生成代码解释。
添加注释
注:目前模型的生成注释功能对整个函数级别的支持较为完善,因此推荐您优先针对函数级别生成注释。
- 在 IDE 编辑器中创建一个
PHP
文件。 - 在
PHP
文件内选中需要解释的代码片段。 - 单击鼠标右键,选择 「CodeFuse:添加注释」,插件将在右侧的对话窗口中生成添加注释。
生成单测
- 在 IDE 编辑器中创建一个
PHP
文件。 - 在
PHP
文件内选中需要生成单测的代码片段。例如为以下代码片段生成单测: - 单击鼠标右键,选择 「CodeFuse:生成单测」,插件将在右侧的对话窗口中为选中的代码生成测试用例。
以下是生成的单元测试代码
<?php
class QuickSortTest extends PHPUnit_Framework_TestCase {
public function testQuickSort() {
// 测试空数组
$arr = array();
$result = QuickSort::quickSort($arr);
$this->assertEquals(array(), $result);
// 测试只有一个元素的数组
$arr = array(1);
$result = QuickSort::quickSort($arr);
$this->assertEquals(array(1), $result);
// 测试多个元素的数组
$arr = array(3, 1, 4, 2, 5);
// 预期结果
$expected = array(1, 2, 3, 4, 5);
$result = QuickSort::quickSort($arr);
$this->assertEquals($expected, $result);
}
}
可以看到生成单元测试测试代码自动继承PHP单元测试框架
PHPUnit_Framework_TestCase
代码优化
基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解,提出优化和改进建议,还能直接基于改进建议形成代码补丁,以帮助您写出更好的代码。使用代码优化的步骤如下。
- 在 IDE 编辑器中创建一个
PHP
文件,编写并选中一段需要优化的代码。 - 单击鼠标右键,选择 「CodeFuse:代码优化」,将在插件面板提供多个代码优化建议。
- 在插件面板,单击按照以上建议优化选中的代码,生成优化后的代码。
- 鼠标放置在生成的代码上,单击
[|]
,唤起编码建议面板查看代码变更。
PS:PHPStrom插件的这里是不是有bug。没有
[|]
这个可替换按钮
「以下是针对建议 1 生成的代码补丁」
代码语言:javascript复制public static function quickSort($arr)
{
if (count($arr) <= 1) {
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for ($i = 1; $i < count($arr); $i ) {
if ($arr[$i] <= $key) {
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = self::quickSort($left_arr);
$right_arr = self::quickSort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
「完成快速排序算法源代码」
代码语言:javascript复制<?php
class CodeFuse {
/**
* 快速排序算法
*/
public static function quickSort($arr)
{
if (count($arr) <= 1) {
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for ($i = 1; $i < count($arr); $i ) {
if ($arr[$i] <= $key) {
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = self::quickSort($left_arr);
$right_arr = self::quickSort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
}