写点什么

星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?

  • 2023-08-18
    广东
  • 本文字数:3909 字

    阅读完需:约 13 分钟

哈喽,本文即通过相近的试题,看下最近爆火的科大讯飞星火大模型和 FuncGPT(慧函数)的编码能力有何区别,给大家直观地对比。


开发过程中经常会遇到读取文件内容的情况,需要【判断文件路径是目录还是文件】,及文件编码格式,防止无法读取内容或乱码出现情况。


星火大模型生成代码示例如下:


import java.io.File;


public class Main {


public static void main(String[] args) {
System.out.println(checkPathType("your_file_path"));
}


public static int checkPathType(String filePath) {
File file = new File(filePath);
if (file.exists()) {
if (file.isDirectory()) {
return 1; // directory
} else if (file.isFile()) {
return 0; // file
} else {
throw new IllegalArgumentException("The path is neither a directory nor a file");
}
} else {
throw new IllegalArgumentException("The path does not exist");
}
复制代码


}


FuncGPT(慧函数)生成代码示例如下:


在产品界面输入以下指令:


函数功能:判断文件路径是目录还是文件,返回:1 目录,0 文件


参数 1: 参数名称:filePath;参数类型:String;参数描述:源路径


返回值:int


生成代码如下:


// 类名:FileUtil


// 函数名:checkFileType


// 函数功能:判断文件的路径是目录还是文件


// POM 依赖包:无


import java.io.File;


public class FileUtil {


/**
* 判断文件的路径是目录还是文件
* @param filePath 源路径
* @return 1 表示目录,0 表示文件
*/
public static int checkFileType(String filePath) {
File file = new File(filePath); // 创建 File 对象
if (file.isDirectory()) { // 判断路径是否为目录
return 1; // 返回 1 表示目录
} else if (file.isFile()) { // 判断路径是否为文件
return 0; // 返回 0 表示文件
} else {
throw new IllegalArgumentException("Invalid file path"); // 如果路径既不是目录也不是文件,抛出异常
}
}
复制代码


}


// 函数示例


// 判断文件的路径是目录还是文件示例


// 入参:filePath,源路径


// 出参:result,1 表示目录,0 表示文件


// 调用示例:


// String filePath = "C:\Users\username\Desktop\test.txt";


// int result = FileUtil.checkFileType(filePath);


// System.out.println(result);


// 输出结果:例如,路径 "C:\Users\username\Desktop\test.txt" 是一个文件


// 则输出结果为:0


仅用 14 秒,FuncGPT(慧函数)就生成一个有着清晰代码注释和案例,可读性更好的代码。


通过对比可以发现:


讯飞星火大模型


慧函数


生成时间:17 秒


生成时间:14 秒


难以复用


代码中包含主函数,这可能使得代码难以在其他项目中复用


支持复用,更加模块化


将函数放在一个独立的工具类中,更加模块化


代码可读性一般


代码注释和案例清晰,可读性更好


总结:在简单的需求场景下,慧函数生成的代码支持复用,更加模块化,且可读性更佳。



以上是相对简单的功能需求,接下来我们来一个在开发 ERP 或电商系统中,经常会遇到内容加密,生成签名,展示页面列表等功能场景,需要在 Java 程序中对 List 集合进行排序操作这个相对复杂功能需求。


星火大模型生成代码示例如下:


import java.util.ArrayList;


import java.util.Collections;


import java.util.Comparator;


import java.util.HashMap;


import java.util.List;


import java.util.Map;


public class ListSort {


public static void main(String[] args) {
// 测试数据
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put ("name", "张三");
map1.put("age", 20);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put ("name", "李四");
map2.put("age", 25);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put ("name", "王五");
map3.put("age", 22);
list.add(map3);


// 调用 sortList 方法进行排序
sortList(list, "age", "asc");
}


/**
* 对 List 中的 Map 对象按照指定的字段进行排序
* @param list List 对象
* @param columns 排序字段名,以 / 分隔
* @param order 排序类别 asc 顺序,desc 倒序
*/
public static void sortList(List<Map<String, Object>> list, String columns, String order) {
if (list == null || list.isEmpty() || columns == null || columns.isEmpty()) {
return;
}


String[] fieldArray = columns.split("/");
if (fieldArray.length != 2) {
return;
}


Comparator<Map<String, Object>> comparator = new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
String key1 = (String) o1.get(fieldArray[0]);
String key2 = (String) o2.get(fieldArray[0]);
if (order.equalsIgnoreCase("asc")) {
return key1.compareTo(key2);
} else {
return key2.compareTo(key1);
}
}
};


Collections.sort(list, comparator);
}
复制代码


}


而使用 FuncGPT (慧函数) ,只需在界面输入以下具体的需求及参数要求,点击生成代码,20 秒就可以生成拿来即用的代码了。


函数功能:List 排序


参数 1:参数名称:list;参数类型:List<Map<String, Object>>;参数描述:List 对象


参数 2:参数名称:columns;参数类型:String;参数描述:排序字段名,以 / 分隔;


参数 3:参数名称:order;参数类型:String;参数描述:排序类别 asc 顺序,desc 倒序


返回值:不为空值


FuncGPT (慧函数) 生成代码示例如下


// 类名:ListSorter


// 函数名:sortList


// 函数功能:对 List 进行排序


// POM 依赖包:


// <dependency>


// <groupId>org.apache.commons</groupId>


// <artifactId>commons-lang3</artifactId>


// <version>3.12.0</version>


// </dependency>


import org.apache.commons.lang3.StringUtils;


import java.util.Collections;


import java.util.Comparator;


import java.util.List;


import java.util.Map;


public class ListSorter {


/**
* 对 List 进行排序
* @param list List 对象
* @param columns 排序字段名,以 / 分隔
* @param order 排序类别,asc 顺序,desc 倒序
* @return 排序后的 List 对象
*/
public static List<Map<String, Object>> sortList(List<Map<String, Object>> list, String columns, String order) {
String[] columnArray = columns.split("/");
for (String column : columnArray) {
if (StringUtils.isNotBlank(column)) {
Comparator<Map<String, Object>> comparator = (o1, o2) -> {
Object value1 = o1.get(column);
Object value2 = o2.get(column);
if (value1 instanceof Comparable && value2 instanceof Comparable) {
int compareResult = ((Comparable) value1).compareTo(value2);
return order.equalsIgnoreCase("asc") ? compareResult : -compareResult;
}
return 0;
};
Collections.sort(list, comparator);
}
}
return list;
}
复制代码


}


// 函数示例


// 对 List 进行排序示例


// 入参:list,List 对象


// columns,排序字段名,以 / 分隔


// order,排序类别,asc 顺序,desc 倒序


// 出参:sortedList,排序后的 List 对象


// 调用示例:


// List<Map<String, Object>> list = new ArrayList<>();


// Map<String, Object> map1 = new HashMap<>();


// map1.put("name", "John");


// map1.put("age", 25);


// Map<String, Object> map2 = new HashMap<>();


// map2.put("name", "Alice");


// map2.put("age", 30);


// list.add(map1);


// list.add(map2);


// String columns = "name/age";


// String order = "asc";


// List<Map<String, Object>> sortedList = ListSorter.sortList(list, columns, order);


// System.out.println(sortedList);


// 输出结果:例如,按照 name 字段升序排序,age 字段升序排序,排序后的 List 为:[{name=Alice, age=30}, {name=John, age=25}]


// 则输出结果为:[{name=Alice, age=30}, {name=John, age=25}]


通过对比我们不难发现


讯飞星火大模型


慧函数


生成时间:29 秒


生成时间:24 秒


无法处理多个字段的排序需求


只能处理按单个字段排序,无法处理多个字段的排序需求


可以处理多个字段的排序需求


代码可读性一般


代码简洁,可读性更好


总结:慧函数生成的代码相对优势更大,能够处理多个字段的排序需求,且代码可读性更优。


AI 技术席卷千行百业的当下,开发人员除了要掌握基本原理和方法外,还要善用工具帮助自己。FuncGPT(慧函数)作为飞算 SoFlu 软件机器人的组成部分,支持创建各种类型的函数。用户可以通过自然语言描述 Java 函数需求,系统即时生成高质量、易读的 Java 函数代码。生成的代码可直接复制到 IDEA 中,或者一键导入到 Java 全自动开发工具函数库中。为开发工程师的日常函数开发工作提供了巨大的便利。

用户头像

飞算云智官方账号 2021-08-10 加入

想了解更多产品内容,欢迎关注微信公众号:飞算SoFlu软件机器人 免费试用申请:http://feisuanyz.mikecrm.com/9dW4GeZ

评论

发布
暂无评论
星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?_SoFlu软件机器人_InfoQ写作社区