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

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

 

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

 

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

import java.io.File;

 

public class Main {

    public static void main(String[] args) {

        System.out.println(checkPathType("your_file_path"));

    }

扫描二维码关注公众号,回复: 16243402 查看本文章

 

    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全自动开发工具函数库中。为开发工程师的日常函数开发工作提供了巨大的便利。

印度国防部自研 Maya OS,全面替代 Windows Redis 7.2.0 发布,影响最深远的版本 7-Zip 官网被百度认定为恶意网站 Go 2 永远不会给 Go 1 带去破坏性变化 小米发布 CyberDog 2,超 80% 开源率 ChatGPT 每日成本约 70 万美元,OpenAI 或已在破产边缘 凝思软件将上市,由“中国 Linux 第一人”创办 Apache Doris 2.0.0 版本正式发布:盲测性能 10 倍提升,更统一多样的极速分析体验 Linux 内核第一版 (v0.01) 开源代码解读 Chrome 116 正式发布
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4868096/blog/10098877