基于LLM搭建一個AI問答系統(tǒng),步驟備忘錄
工具
Langchain4J,適應(yīng)于java語言,對應(yīng)python語言的是 Langchain
步驟
準(zhǔn)備環(huán)境
- 下載大模型,使用ollama工具下載并運行大模型,類似docker的使用方式,ollma pull llama3; ollma run llama3
- 下載向量數(shù)據(jù)庫,并啟動
編寫代碼
初始化知識庫
- maven依賴中導(dǎo)入Langchain4j的包
- 使用Langchain4j的函數(shù),加載本地文件,這是作為AI問答系統(tǒng)的知識庫源數(shù)據(jù)的目的
- 使用Langchain4j的文檔切割工具,將本地文件切分為segments
-
利用大模型的EmbeddingModel模型,這個模型是將普通的文本轉(zhuǎn)化為高維度的向量。將segments作為輸入,存入上面的向量數(shù)據(jù)庫
流程圖如下:
image.png
查詢
- 利用同一個EmbeddingModel模型,將查詢文本轉(zhuǎn)化為embedding
- 使用embedding在向量庫中檢索到匹配的segment
- 繼續(xù)利用大模型推理構(gòu)建輸出。這個需要基于向量庫的segment,構(gòu)建Prompt詞。例如, “基于信息回答提問。信息:segment, 提問:xxx?”
- 將prompt提示詞輸入給大模型ollamaChatModel,輸出的結(jié)果,就是最終的結(jié)果了
