职业使然,之前我自己试用并给小伙伴们推荐过不少大模型相关的产品,这些产品看起来牛逼plus,但是它们要么对国内有限制,要么是申请制/邀请制,自己没个资想搞个账号去体验一下都难如登天,忍不住吐槽某大厂虽然早早的对外宣布面向全民开发,但实际上提交了手机号码还在等待排队上车,掐指一算,有半个多月了吧,我的一纸申请终究是石沉大海。
不过这也容易理解,训练大模型是一件非常烧钱的事情,顶级的GPU不但非常贵,还买不到,大公司搞起来都不容易,更别说小公司了。即使是每月付费20美元的GPT4,还限制用户每天和大模型的对话次数,可见成本之高。
相对百度、科大讯飞等大厂的通用性的大模型,我近期发现了一个来自小而美企业推出的专注AI生成Java函数,基于代码编写最佳实践及大规模机器联合训练的函数AI生成器——FuncGPT(慧函数),不用申请、邀请,直接下载就能体验秒级生成高质量函数,这样接地气的产品必须支持一下。
FuncGPT(慧函数)号称专注AI生成Java函数,散发着一种匠人精神的劲儿让我莫名有种好感,但是俗话说的好,是骡子是马拉出来溜溜。所以我打算继续用几个函数来试试FuncGPT(慧函数)的表现,看看它能否胜任“专注”两个字。
示例1:XML转换为JSON
package com.feisuanyz.function;
import com.feisuanyz.flow.core.cmpt.annotation.function.MethodDesc;
import com.feisuanyz.flow.core.cmpt.annotation.function.ParamDesc;
import org.json.JSONObject;
import org.json.XML;
public class XmlJsonConverter {
@MethodDesc(desc = "将XML字符串转换为JSON字符串",
params = {
@ParamDesc(name = "xmlString", desc = "XML字符串"),
})
public static String convertXmlToJson(String xmlString) {
JSONObject jsonObject = XML.toJSONObject(xmlString); // 使用JSON库将XML字符串转换为JSONObject对象
String jsonString = jsonObject.toString(); // 将JSONObject对象转换为JSON字符串
return jsonString;
}
}
通过分析仅用几秒生成的代码,我们不难发现:
- 代码组织:代码组织得很好,有清晰的包名、类名和方法名。此外,代码中使用了注解来描述方法的目的和参数,提高了代码的可读性和可维护性。
- 方法设计:采永convertXmlToJson 方法,它接受一个XML字符串作为参数,并返回一个JSON字符串。方法内部使用了XML.toJSONObject方法将XML字符串转换为JSONObject对象,然后使用toString方法将JSONObject对象转换为JSON字符串。这个过程是标准的,并且方法的命名清晰明了。
- 性能:这段代码的性能应该是可以接受的,因为它只涉及到基本的字符串转换和对象创建。不过,如果处理大量的XML数据,可能需要考虑性能优化。
- 注释:注释是充足的,并使用了特定的注释格式来描述方法和参数。这对于代码的可读性和可维护性很有帮助。
综上所述,这段代码是一个简单但有效的方法来将XML字符串转换为JSON字符串。如果需要使用这个功能,那么这个类可以很容易地集成到项目中。
示例2:冒泡算法
package com.feisuanyz.function;
import com.feisuanyz.flow.core.cmpt.annotation.function.MethodDesc;
import com.feisuanyz.flow.core.cmpt.annotation.function.ParamDesc;
public class BubbleSort {
@MethodDesc(desc = "使用冒泡排序算法对给定的整数数组进行排序",
params = {
@ParamDesc(name = "nums", desc = "给定的整数数组"),
})
public static int[] bubbleSort(int[] nums) {
if (nums == null) { // 检查数组是否为null
throw new IllegalArgumentException("Array cannot be null"); // 抛出异常,数组不能为空
}
int n = nums.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (nums[j] > nums[j + 1]) { // 如果前一个元素大于后一个元素,则交换两个元素的位置
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
return nums; // 返回排序后的数组
}
}
代码的质量如何?我们将从代码组织、注释、异常处理、算法实现四个方面进行分析,不难发现:
1. 代码组织:代码使用了package和import语句来组织和管理其依赖。它定义了一个名为BubbleSort的类,该类中包含一个静态方法bubbleSort,这个方法能够对一个整数数组进行冒泡排序。这种组织方式是清晰和有条理的。
2. 注释:代码使用了@MethodDesc和@ParamDesc注解来描述方法和参数,提高了代码的可读性和可理解性。特别是对于不熟悉这个项目或代码库的人来说,这些注释能够帮助他们快速理解这个方法的作用和参数的用途。
3. 异常处理:方法开始时检查了输入数组是否为null,如果为null则抛出一个IllegalArgumentException异常,避免了可能的空指针异常。
4. 排序算法实现:使用了冒泡排序算法对输入的整数数组进行排序并且考虑到冒泡排序的时间复杂度,这个算法的实现相对高效。
综上,FuncGPT(慧函数)着实让我惊艳。FuncGPT(慧函数)的出现,意味着将大幅提升开发人员的工作效率,改变了以往需要通过网上搜索demo级的解决方案,根据自己的实际需求不断调试试错的工作状态,在极短的时间就能得到代码质量有保证的代码。如果你也想体验,可以点击链接直接下载体验:https://c.suo.nz/9mBTd
标签:XML,Java,函数,nums,AI,代码,生成器,字符串,import From: https://www.cnblogs.com/feisuanyz/p/17733005.html