Hutool被賣半年多了,現(xiàn)狀逆襲還是沉寂?
是的,沒(méi)錯(cuò)。那個(gè)被人熟知的國(guó)產(chǎn)開(kāi)源框架 Hutool 距離被賣已經(jīng)過(guò)去近 7 個(gè)月了。
那 Hutool 現(xiàn)在的發(fā)展如何呢?它未來(lái)有哪些更新計(jì)劃呢?Hutool AI 又該如何使用呢?如果不想用 Hutool 有沒(méi)有可替代的框架呢?
近半年現(xiàn)狀
從 Hutool 官網(wǎng)可以看出,其被賣近 7 個(gè)月內(nèi)僅發(fā)布了 4 個(gè)版本更新,除了少量的新功能外,大多是 Bug 修復(fù),當(dāng)期在此期間發(fā)布了 Hutool AI 模塊,算是一個(gè)里程碑式的更新:

“
更新日志:https://hutool.cn/docs/#/CHANGELOG
收購(gòu)公司
沒(méi)錯(cuò),收購(gòu) Hutool 的這家公司和收購(gòu) AList 的公司是同一家公司(不夠科技),該公司前段時(shí)間因?yàn)槠湓谑召?gòu) AList 代碼中悄悄收集用戶設(shè)備信息,而被推向過(guò)風(fēng)口浪尖,業(yè)內(nèi)人士認(rèn)為其收購(gòu)開(kāi)源框架就是為了“投毒”,所以為此讓收購(gòu)框架損失了很多忠實(shí)的用戶。
“
其實(shí),放眼望去那些 APP 公司收集用戶設(shè)備和用戶信息屬于家常便飯了(國(guó)內(nèi)隱私侵犯問(wèn)題比較嚴(yán)重),但 AList 因?yàn)槠湮醋鑫臋n聲明,且未將收集設(shè)備信息的代碼提交到公共倉(cāng)庫(kù),所以大家發(fā)現(xiàn)之后才會(huì)比較氣憤。
Hutool-AI模塊使用
Hutool AI 模塊的發(fā)布算是被收購(gòu)之后發(fā)布的最值得讓人欣喜的事了,使用它可以對(duì)接各大 AI 模型的工具模塊,提供了統(tǒng)一的 API 接口來(lái)訪問(wèn)不同的 AI 服務(wù)。
目前支持 DeepSeek、OpenAI、Grok 和豆包等主流 AI 大模型。
該模塊的主要特點(diǎn)包括:
- 統(tǒng)一的 API 設(shè)計(jì),簡(jiǎn)化不同 AI 服務(wù)的調(diào)用方式。
- 支持多種主流 AI 模型服務(wù)。
- 靈活的配置方式。
- 開(kāi)箱即用的工具方法。
- 一行代碼調(diào)用。
具體使用如下。
1.添加依賴
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-ai</artifactId>
<version>5.8.38</version>
</dependency>2.調(diào)用API
實(shí)現(xiàn)對(duì)話功能:
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).setModel("your bots id").build(), DoubaoService.class);
ArrayList<Message> messages = new ArrayList<>();
messages.add(new Message("system","你是什么都可以"));
messages.add(new Message("user","你想做些什么"));
String botsChat = doubaoService.botsChat(messages);識(shí)別圖片:
//可以使用base64圖片
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).setModel(Models.Doubao.DOUBAO_1_5_VISION_PRO_32K.getModel()).build(), DoubaoService.class);
String base64 = ImgUtil.toBase64DataUri(Toolkit.getDefaultToolkit().createImage("your imageUrl"), "png");
String chatVision = doubaoService.chatVision("圖片上有些什么?", Arrays.asList(base64));
//也可以使用網(wǎng)絡(luò)圖片
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).setModel(Models.Doubao.DOUBAO_1_5_VISION_PRO_32K.getModel()).build(), DoubaoService.class);
String chatVision = doubaoService.chatVision("圖片上有些什么?", Arrays.asList("https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544"),DoubaoCommon.DoubaoVision.HIGH.getDetail());生成視頻:
//創(chuàng)建視頻任務(wù)
DoubaoService doubaoService = AIServiceFactory.getAIService(new AIConfigBuilder(ModelName.DOUBAO.getValue()).setApiKey(key).setModel("your Endpoint ID").build(), DoubaoService.class);
String videoTasks = doubaoService.videoTasks("生成一段動(dòng)畫(huà)視頻,主角是大耳朵圖圖,一個(gè)活潑可愛(ài)的小男孩。視頻中圖圖在公園里玩耍," +
"畫(huà)面采用明亮溫暖的卡通風(fēng)格,色彩鮮艷,動(dòng)作流暢。背景音樂(lè)輕快活潑,帶有冒險(xiǎn)感,音效包括鳥(niǎo)叫聲、歡笑聲和山洞回聲。", "https://img2.baidu.com/it/u=862000265,4064861820&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1544");
//查詢視頻生成任務(wù)信息
String videoTasksInfo = doubaoService.getVideoTasksInfo("任務(wù)id");未來(lái)發(fā)展
- Hutool5:目前 Hutool 5.x 版本主要是基于 JDK 8 實(shí)現(xiàn)的,后面更新主要以 BUG 修復(fù)為準(zhǔn)。
- Hutool6:主要以功能嘗鮮為主。
- Hutool7:升級(jí)為 JDK 17,添加一些新功能,刪除一些不用的類。
目前只發(fā)布了 Hutool 5.x,按照目前的更新進(jìn)度來(lái)看,不知何時(shí)才能盼來(lái) Hutool7 的發(fā)布。
同類替代框架
如果擔(dān)心 Hutool 有安全性問(wèn)題,或更新不及時(shí)的問(wèn)題可以嘗試使用同類開(kāi)源工具類:
- Apache Commons:https://commons.apache.org/
- Google Guava:https://github.com/google/guava
小結(jié)
雖然我們不知道 Hutool 被收購(gòu)意味著什么?是會(huì)變的越來(lái)越好?還是會(huì)就此隕落?我們都不知道答案,所以只能把這個(gè)問(wèn)題交給時(shí)間。但從個(gè)人情感的角度出發(fā),我希望國(guó)產(chǎn)開(kāi)源框架越做越好。好了,我是磊哥,咱們下期見(jiàn)。





















