被卖的Hutool出AI模块了!它如何让Java调用大模型变得如此简单?

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

Hutool这款工具开源依赖备受瞩目,争议也不断。尤其2025年2月由开源组织Dromara迁出,被贵州不够科技有限公司(chinabugotech)收购更是引起了不少的关注。

Hutool以其极简的API风格,收到广大开发者的喜爱。喜欢的喜欢的不行,嫌弃的也不在少数。嫌弃的觉得不安全、Bug多等。总之仁者见仁智者见智,众说纷纭。

我们暂且不去评论。今天来介绍一下被收购后新增的一个全新模块Hutool-ai,融合了主流的大模型,不再依赖框架,调用大模型就像调用一般方法一样简单,降低使用门槛。

02 简介

Hutool-ai是在5.8.38版本里面新增的模块,是 Hutool 工具库中用于对接各大 AI 模型的工具模块,提供了统一的 API 接口来访问不同的 AI 服务。目前支持 DeepSeekOpenAIGrokOllama 和豆包等主流 AI 大模型。

截止小编更新(2025.10.30),Hutool的版本已经到5.8.41了。

官方文档:hutool.cn/

GitHub地址:github.com/chinabugote...

Gitee地址:gitee.com/chinabugote...

03 小试牛刀

Hutool的每个模块都是可以单独引入的,为了方便,小编直接引入所有的模块。

3.1 Maven依赖

xml 复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.41</version>
</dependency>

也可以单独引入AI的模块。

xml 复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-ai</artifactId>
    <version>${latest.version}</version>
</dependency>

3.2 调用测试

Deepseek调用

java 复制代码
 @Test
void test01() {
    String chat = AIUtil.chat(new AIConfigBuilder(
            ModelName.DEEPSEEK.getValue())
            .setApiUrl("https://api.deepseek.com/v1")
            .setApiKey("******")
            .setModel("deepseek-chat")
            .build(), "夸一下帅气的我");
    System.out.println(chat);
}

需要指定apiKey和模型。

Ollama调用

java 复制代码
String apiUrl = "http://127.0.0.1:11434";
String model = "qwen2.5:3b";

@Test
void test03() {
    String chat = AIUtil.chat(new OllamaConfig(apiUrl, model), "夸一下帅气的我");
    System.out.println(chat);
}

也可以通过调用具体的服务:

java 复制代码
@Test
void test02() throws IOException {
    OllamaService ollamaService = AIUtil.getAIService(
            new OllamaConfig(apiUrl, model), 
            OllamaService.class);
    System.out.println(ollamaService);

    ollamaService.generate("夸一下帅气的我", (result) -> {
        System.out.println(result);
    });
    
    // 阻塞程序结束,等待Tokens返回
    System.in.read();
}

3.3 AIUtil源码解读

AIUtil真正调用的方法只有chat()大模型对话功能。也就是最终返回所有的tokens

其他的方法分别获取具体的大模型服务如:Deepseek、豆包、GrokOpenAI等。

其中AIConfig为具体的配置,可以通过具体的实现,也可以通过AIConfigBuilder构建自己的模型配置。

以下是具体的实现:

04 小结

Hutool-AI无疑降低了大模型调用的门槛,给使用者带来了很大的方便。我们不管Hutool以后的走向,无论是走向商业还是继续保持开源,我们都可以从工具的设计理念中得到一些启发。

相关推荐
葫芦和十三5 小时前
图解 MongoDB 21|选举与 failover:Primary 是怎么选出来的
后端·mongodb·agent
GetcharZp6 小时前
26k Star 开源内网穿透神器 NetBird,一分钟实现全球设备互联!
后端
考虑考虑6 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯7 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
lizhongxuan9 小时前
多Agent之间的区别
后端
青石路11 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
杨充12 小时前
1.面向对象设计思想
后端
IT_陈寒12 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
systemPro12 小时前
2.6亿条设备数据,历史查询从超时到50ms,我做了什么
后端
要阿尔卑斯吗13 小时前
提示词优化启示:为什么“按顺序输出“比“关键度评分“更有效
后端