被卖的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以后的走向,无论是走向商业还是继续保持开源,我们都可以从工具的设计理念中得到一些启发。

相关推荐
章豪Mrrey nical2 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
超级大只老咪3 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶3 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长3 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子3 小时前
JDK 安装配置
java·开发语言
星哥说事3 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink3 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼4 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII4 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home4 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法