首页 > 其他分享 >星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?

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

时间:2023-08-18 18:06:58浏览次数:45  
标签:return String list List VS 星火 FuncGPT 排序 函数

哈喽,本文即通过相近的试题,看下最近爆火的科大讯飞星火大模型和 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 全自动开发工具函数库中。为开发工程师的日常函数开发工作提供了巨大的便利。

标签:return,String,list,List,VS,星火,FuncGPT,排序,函数
From: https://blog.51cto.com/u_15327851/7139563

相关文章

  • vscode主题配置
    配置{"cSpell.languageSettings":[],"editor.bracketPairColorization.enabled":true,"editor.guides.bracketPairs":"active","files.autoSave":"afterDelay","workbench.iconThe......
  • Visual Studio (VS)2017开发工具下载和安装教程
    MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。是目前最流行的Windows平台应用程序的集成开发环境。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。软件获取: www.momorj.com/?......
  • CentOS7配置VSFTP
    1.安装vsftpd#安装vsftpdyuminstall-yvsftpd#设置开机启动systemctlenablevsftpd.service#重启systemctlrestartvsftpd#查看vsftpd服务的状态systemctlstatusvsftpd.service2.配置vsftpd.conf#备份配置文件cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd......
  • vscode 恢复被删文件
    在nodejs项目中通过程序删除文件,由于写错路径导致整个项目文件夹被删除,代码没commit到git不说,它连.git文件夹都删掉了,悲剧了,难道几天的工作就白干了?查阅资料发现vscode带有缓存,经过一番折腾终于发现缓存路径每一个文件夹对应一个代码文件每一次保存都会有一个历史......
  • 安装VS Code并配置Vue开发环境
    VSCode是一款轻量级、功能强大的代码编辑器,支持多种编程语言和平台。它不仅提供了基本的文本编辑功能,还集成了终端、调试器、版本控制等工具,使得开发工作更加高效。以下是安装VSCode的步骤:在浏览器中打开VSCode官方网站(https://code.visualstudio.com/),点击下载适合自己操作系统......
  • dpvs syn-proxy实现分析
    1 syn flood就是同步发送SYN数据包,这样的操作对于发送方(攻击者)来说是非常容易实现的,而对于接收方(目标)来说会需要消耗更多的资源去接收和处理数据包。除此之外,在发送完SYN数据包之后,我们不需要等待接收端返回的SYN/ACK数据包,我们只需要继续向对方发送SYN数据包并让服务器自己去处......
  • Win11+ VS2022编译 FFmpeg6.0 静态库
    目录编译前言为什么项目编译?前期准备环境配置ffmpeg外部库额外的编译选项-for渲染opengl(需要glext)ffnvcodec(需要nv-codec-headers)AMFsdk头文件编译工具链开始编译step1.选择编译类型Debug/ReleaseDll/libstep2.打包SDK验证结尾参考链接编译前言编译作为自己持有......
  • vscode使用巧技
    1.快捷键展开折叠代码:ctrl+shift+[ctrl+shift+]ctrl+shift+L--同时选中所有相容内容alt+click--同时选择多个单词f2--重命名文件alt+上下键--移动整行或多行1.1vetur--让.vue文件高亮和有语法提示VueVsCodesnippets--快捷写代码2.文件图标库--必备vsco......
  • 《VS篇》vs2008设置字体大小
    参考链接:https://www.nnbkzf.com/595435.html1、首先打开电脑,进入到vs2008软件中。2、在上方的菜单栏中选择工具栏下的找到“选项”,点击进入下一页面。3、点击后,会弹出控制板面板的对话框,如下图所示。4、在弹出的对话框中,选择字体和颜色,这样就可以修改字体的大小了。5、......
  • 文心一言 VS 讯飞星火 VS chatgpt (77)-- 算法导论7.3 2题
    二、如果用go语言,在RANDOMIZED-QUICKSORT的运行过程中,在最坏情况下,随机数生成器RANDOM被调用了多少次?在最好情况下呢?以θ符号的形式给出你的答案?文心一言:在RANDOMIZED-QUICKSORT的运行过程中,最坏情况下,随机数生成器RANDOM的调用次数为O(n)。这是因为在最坏情况下,每次分......