Spring AI + Ollama 快速構(gòu)建大模型應(yīng)用程序(含源碼)
1、Spring AI 開(kāi)發(fā)框架介紹
Spring AI 借鑒了 LangChain(Python)的靈感,后者支持與 AI 和多種 LLM 集成。目前 Spring AI 提供了多種大模型和向量數(shù)據(jù)庫(kù)供您選擇??梢缘卿浌倬W(wǎng)(https://spring.io/projects/spring-ai)查看 Spring AI 的更詳細(xì)文檔。
今天的 Spring AI 項(xiàng)目中會(huì)使用到 Vaadin,Vaadin 是一個(gè)基于 Java 和 Kotlin 的 Web 應(yīng)用開(kāi)發(fā)框架。
2、開(kāi)始構(gòu)建大模型應(yīng)用項(xiàng)目
第一、需求
開(kāi)發(fā)一款能夠匯總股票市場(chǎng)周報(bào)的工具。
第二、項(xiàng)目效果
項(xiàng)目效果如下:
第三、架構(gòu)設(shè)計(jì)
整體架構(gòu)設(shè)計(jì)如下分為3個(gè)步驟:
- 設(shè)置 RAG
- 使用 Vaadin 設(shè)計(jì) UI 界面
- 創(chuàng)建業(yè)務(wù)流程
步驟一、設(shè)置 RAG 檢索增強(qiáng)生成
在該項(xiàng)目中,我利用 Apache Tika 來(lái)解析位于 /resources 目錄中的 PDF 文件。
在大模型應(yīng)用程序啟動(dòng)過(guò)程中,系統(tǒng)會(huì)開(kāi)始讀取 PDF 文件,并將數(shù)據(jù) Embedding 后存儲(chǔ)到向量數(shù)據(jù)庫(kù)中。
RAG 將檢索增強(qiáng)的前后端進(jìn)行了分離,如下圖所示:
步驟二、使用 Vaadin 的 UI
這是一個(gè)簡(jiǎn)易的消息輸入界面,用于接收提示信息(嘗試構(gòu)建一個(gè)類似 ChatGPT 的用戶界面,但采用的是 Vaadin 框架)。
步驟三、創(chuàng)建業(yè)務(wù)流程
最后但同樣重要的一步是,我們將構(gòu)建一個(gè)服務(wù)來(lái)與大模型進(jìn)行通信。這包括添加系統(tǒng)提示詞,我們將使用 HashMap 進(jìn)行值的替換,接著利用 SystemPromptTemplate 生成消息,最后將其發(fā)送給大語(yǔ)言模型 (LLM)。
第四、項(xiàng)目集成
首先,我們?cè)诒镜剡M(jìn)行手動(dòng)測(cè)試 Ollama。
spring:
ai:
ollama:
base-url: ${AI_OLLAMA_BASE_URL:<http://localhost:11434>}
chat:
options:
model: llama3:8b
第五、項(xiàng)目完整代碼
項(xiàng)目完整開(kāi)源代碼 Github 地址:
??https://github.com/qianniucity/financial-weekly??
本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI 作者:玄姐
原文鏈接:??https://mp.weixin.qq.com/s/EFTLYmTwMXgsX-BxJ3y7Sw??
