iT邦幫忙

2024 iThome 鐵人賽

DAY 1
3
生成式 AI

使用 Spring AI 打造企業 RAG 知識庫系列 第 1

使用 Spring AI 打造企業 RAG 知識庫【1】- Spring AI 簡介

  • 分享至 

  • xImage
  •  

Java在AI看到了春天

https://ithelp.ithome.com.tw/upload/images/20240810/20161290cAV3EcKpVN.jpg
Spring AI 在2024年2月推出了0.8版本,不到半年就迅速更新到了 1.0.0-M1,目前幾乎每個月就一個 Milestone改版(最新版本 1.0.0-M3),如同 AI 的發展迅速。實際使用後,會發現它與 LangChain4j 有幾分相似。讓我們看看 Spring AI 官網是如何詮釋

Spring AI 創建的目的在簡化開發 AI 功能的應用程式,同時避免不必要的複雜性。專案汲取了 LangChain 和 LlamaIndex 等知名 Python 專案的靈感,但 Spring AI 並不是這些專案的直接移植。我們相信,下一波生成式人工智慧應用程式不僅適用於 Python 開發人員,還將廣泛適用於許多程式設計語言。
Spring AI 的核心在於解決 AI 整合的根本挑戰,即將 企業數據 / API / AI 串聯起來。

https://ithelp.ithome.com.tw/upload/images/20240801/20161290yEyOlVWozQ.png
(以上由Spring AI官網翻譯而來)

原來 Spring AI 是跟 LangChain 致敬,Spring 框架能發展到這麼龐大,最關鍵的就是其整合以及簡化的能力,面對這麼龐大的模型以及種類,雖然跟 Python 比起來起步較慢,不過能與 Spring 其他框架整合在一起,讓憋了好久的 Java 開發人員也能大展身手了

既然是參考 LangChain 的概念,Java 開發人員該使用 LangChain4j 還是 Spring AI 做為開發框架?凱文大叔幫大家分析以下幾點,大家可以自行評估

▋Java 兩大 AI 框架比較

Spring AI LangChain4j
推出時間 2024年二月推出0.8版 2023年六月推出0.1版
適用Java版本 JDK 17+ JDK 8+
更新頻率 三個月時間推出四個版本,1.0.0-M3也即將推出 截至目前已有33個版本
功能性 整合性較佳,讓不同大語言模型有相似的開發程序,也容易與 Spring 其他框架整合 個別功能較強,部分功能是針對不同大語言模型特性所開發
整合性 能輕易與 Spring 家族整合,能自動配置 雖然也能在 Spring 中使用,不過還是沒 Spring 自家的整合性高
相關資料 官網資料豐富完整 發展時間較長,社群會員眾多

▋AI框架挑選建議

如何選擇凱文大叔有以下幾點建議

  • 如果公司還在使用 Java 8,LangChain4j 是不二選擇
  • 如果公司已使用 Spring Boot 3 以上,當然就直接使用 Spring AI
  • 如果使用 Java 17+ 卻沒使用 Spring Boot 框架呢?建議你趕快學 Spring Boot /images/emoticon/emoticon39.gif
  • 想嘗鮮或是單純開發 AI 的程式可使用 LangChain4j,若要將 AI 結合企業內部其他資訊系統則建議使用 Spring AI,因為開發企業使用的程式往往需要更高的穩定性以及精準的內容,純 AI 程式則追求創新,能更快使用新模組新功能會是首要目標

下面兩張圖大家可以感受一下兩個 AI 框架設計的理念,Spring AI 就跟 Spring 家族設計理念一樣,以整合為主,而 LangChain4j 則是各模組功能較強

https://ithelp.ithome.com.tw/upload/images/20240801/20161290sBYJbpR5R4.png

取自稀土掘金

https://ithelp.ithome.com.tw/upload/images/20240801/20161290gqrJyYqnBo.png

取自LangChain4j

有一點要特別說明 Spring AI 雖然版本更新較慢,不過 7/25 Ollama 才宣布支援 Tool,Spring 隔一天也宣布支援 Ollama Tool,可見得 Spring AI 的抽象可以相容不同模型

▋鐵人賽大綱

使用 Spring AI 打造企業 RAG 知識庫 內容將分為四大章節

  • 認識 Spring AI : 這個章節介紹如何取得 API Key、建立 Spring starter 專案、參數配置、如何與 AI 對話以及讓對話更流暢的流式輸出
  • 個性化 ChatBot : 這個章節會更進一步設定對話的細節,包含系統提示詞、系統人設、提示詞範本、結構化輸出、Function Call
  • 讓 ChatBot 不在金魚腦 : ChatGPT 除了理解及生成,還有一個很重要的功能就是記憶,這個章節會先介紹記憶的原理,後面則會介紹 Spring AI 1.0.0 才加入的 ChatMemory
  • 讓企業不再卻步的技術-RAG : 前面幾個章節說穿了只是做一個聊天機器人,很多企業怕資訊外洩甚至禁用 AI,這個章節就來介紹讓 AI 融入企業的法寶 - RAG,透過 Spring 3 以後才支援的 docker compose support 可以快速地建立向量資料庫,讓 Spring AI 開發及測試 RAG 更為方便

介紹就到這邊,明天就要開始實戰演練,這次主題是打造企業 RAG 知識庫,主軸還是跟 RAG 有關的模組,沒提到的模組大家可以上 Spring AI 官網 查看


▋認識凱文大叔

凱文大叔使用 Java 開發程式超過 20 年,對於 Java 生態非常熟悉,曾使用反射機制開發 ETL 框架,對 Spring 背後的運作原理非常清楚,目前以 Spring Boot 作為後端開發框架,前端使用 React 搭配 Ant Design
下班之餘在 Amazing Talker 擔任程式語言講師,並獲得學員的一致好評

最近剛成立一個粉絲專頁-凱文大叔教你寫程式 歡迎大家多追蹤,我會不定期分享實用的知識以及程式開發技巧

想討論 Spring 的 Java 開發人員可以加入 FB 討論區 Spring Boot Developer Taiwan

我是凱文大叔,歡迎一起加入學習程式的行列


下一篇
使用 Spring AI 打造企業 RAG 知識庫【2】- 取得 AI 入門鑰匙 API key
系列文
使用 Spring AI 打造企業 RAG 知識庫35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言