使用 AnythingLLM 實作 RAG
大型語言模型(Large Language Model, LLM)可以回答各種問題,但如果問題涉及特定的文件或私人資料,單純依靠模型本身的知識可能無法提供準確的答案。RAG(Retrieval-Augmented Generation,檢索增強生成)是一種常見的解決方式,它可以先從文件中找出與問題相關的資訊,再提供給LLM作為回答的依據。
AnythingLLM 是一套可以協助使用者建立本地 AI 知識庫與 RAG 應用的工具,並且可以搭配 Ollama 使用本地端的大型語言模型。
本文將介紹如何使用 AnythingLLM 搭配 Ollama實作RAG。我們會從 AnythingLLM的安裝與基本設定開始,接著設定 LLM、Embedding Model 和 Vector Database,最後分別上傳 TXT 與 PDF 文件進行測試,觀察模型如何根據文件內容回答問題。
1. 下載和安裝AnythingLLM

首先到AnythingLLM官方網站下載並安裝 AnythingLLM。
安裝完成後,開啟 AnythingLLM,即可看到初始介面。

2. 初始化與調整 AnythingLLM
首先點選左側的 Customization → UI Preference。
在右側畫面的 Display Language 欄位中,可以選擇 AnythingLLM 的介面語言。本篇使用繁體中文。

設定LLM
接著,在左側的 AI Providers 中點選 LLM。
在這裡可以選擇要使用的 LLM 軟體以及 LLM 模型。本篇使用 Ollama 作為 LLM Provider,模型則使用 Gemma4。

設定 Embedding Model
接著,在左側 AI Providers 下方點選 Embedder。
這裡可以選擇 Embedding Provider 以及 Embedding Model。
本篇使用 AnythingLLM 預設的 AnythingLLM Embedder,Embedding Model 則使用 nomic-embed-text-vt。

設定 Vector Database
在 Embedder 上方可以找到 Vector Database。
Vector Database(向量資料庫)主要用來儲存 Embedding。本篇使用 AnythingLLM 預設的 LanceDB。

3. 上傳純文字檔(TXT)並進行測試
完成基本設定後,就可以開始上傳文件。
如下圖,在對話欄中點選 「+」工具欄,選擇要上傳的 TXT 檔案。

本篇使用範例檔案 「阿華公司.txt」,TXT 檔案內容如下圖所示


接著進行測試。
我們詢問 LLM:「阿華公司的 CEO 是誰?」
模型會根據剛才上傳的 TXT 文件內容進行回答。

4. 上傳複雜文件(PDF)並進行測試
除了純文字檔之外,也可以使用 PDF 文件進行測試。
首先,如圖所示,點選上傳按鈕。

選擇完成後,還需要點選 「移到工作區」,才能真正將剛才選擇的 PDF 文件加入工作區。

如下圖所示,PDF 已經成功上傳至工作區。

本次使用的PDF文件是立端115年第一季營收。
接著進行測試,我們詢問:
立端 115 年第一季的營收是多少?
模型會根據剛才上傳的 PDF 文件內容進行回答。
這也代表我們可以透過 AnythingLLM,讓 LLM根據自己上傳的文件內容來回答問題。

5. 結語
透過本篇的實作,可以看到AnythingLLM如何搭配 Ollama、Embedding 與 Vector Database,將文件加入系統後,再讓LLM根據文件內容回答問題。