iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
AI Engineering

從零搞懂 RAG 評測之旅系列 第 23 篇

DAY23. 安裝 Ollama 與專案套件

  • 分享至 

  • xImage
  •  

昨天我們安裝了 uv,建立好專案與虛擬環境。今天要讓這個 RAG 系列完全在自己的電腦上運作,用 Ollama 在本機執行 Embedding 與對話模型,不需要 API 金鑰,文件資料也不會離開你的電腦。

今日目標

  1. 安裝 Ollama,並下載本系列使用的兩個模型
  2. 安裝 Python 套件
  3. 建立專案目錄、放入範例文件
  4. 驗證環境,並了解版本鎖定

Step 1:安裝 Ollama

Ollama 是在本機執行大型語言模型的工具,會在背景提供一個本地服務,預設位址是 http://localhost:11434,後面的 LangChain 與 RAGAS 都會連到這裡。

curl -fsSL https://ollama.com/install.sh | sh

安裝完成後確認版本:

ollama --version

Step 2:下載模型

本系列需要兩種模型,各司其職:

角色 模型 用途 大小(約)
Embedding bge-m3 把文字轉成向量,供 DAY25 建立向量庫 1.2 GB
對話 qwen3:8b 根據檢索內容生成答案(DAY26) 5 GB
ollama pull bge-m3
ollama pull qwen3:8b

為什麼這樣選? bge-m3 是多語言的 Embedding 模型,對中文支援良好;qwen3 系列對繁體中文的表現也不錯。如果你的電腦記憶體或顯卡較吃緊,可以把對話模型換成較小的 qwen3:4b,後面章節只需要改模型名稱,其他步驟不變。

下載完成後確認:

ollama list

清單中出現這兩個模型就代表成功。想快速測試對話模型可以執行 ollama run qwen3:8b,輸入問題確認有回應,結束時輸入 /bye。

Step 3:安裝 Python 套件

確認你在昨天建立的 rag-tutorial 資料夾內,執行:

uv add langchain langchain-core "langchain-community<0.4.2" langchain-ollama langchain-chroma langchain-text-splitters ragas openai pillow

uv add 會同時完成三件事:安裝套件、寫進 pyproject.toml、更新 uv.lock。各套件的分工如下:

套件 用途 對應的天數
langchain / langchain-core RAG 流程的基礎元件與串接 DAY26
langchain-community 文件載入器 DAY24
langchain-text-splitters 文本切割 DAY24
langchain-ollama 連接 Ollama 的 Embedding 與對話模型 DAY25–26
langchain-chroma Chroma 向量資料庫 DAY25
ragas RAG 評估 DAY27–29
openai RAGAS 以 OpenAI 相容介面連到 Ollama 時使用 DAY27

最後一列需要說明:RAGAS 的評估需要一個「評審模型」,Ollama 提供 OpenAI 相容的 API,所以我們會透過 openai 套件連到本機的 Ollama,而不是真的連到 OpenAI。DAY27 會詳細示範。

Step 4:建立專案目錄與範例資料

先在 .gitignore 加入 DAY25 會產生的向量資料庫資料夾,避免誤上傳:

chroma_db/

接著建立 data/ 資料夾,放入知識庫文件。建議這樣挑選:

  • 選一組你熟悉的內容,3 到 5 份 Markdown 或 txt 檔即可,不需要很大
  • 內容要能出題,因為 DAY27 需要寫出有標準答案的測試問題
  • 整個系列固定使用這份資料,DAY29 調參前後的分數比較才有意義

整理後的專案結構如下:

rag-tutorial/
├── .venv/
├── src/
├── .gitignore
├── .python-version
├── pyproject.toml
├── README.md
├── uv.lock
└── data/            # 知識庫文件

後面幾天會再加入 build_rag.py(建置)與 evaluate_rag.py(評估),兩者分開管理,評估時就不必每次重建向量庫。

Step 5:驗證環境

用 uv run 檢查每個套件都能匯入:

uv run python -c "import langchain_core, langchain_community, langchain_ollama, langchain_chroma, langchain_text_splitters, ragas, openai; print('環境 OK')"

看到「環境 OK」代表 Python 套件安裝成功。若出現 ModuleNotFoundError,通常是套件名稱打錯,或不是在專案資料夾內執行。

另外要確認 Ollama 服務正在運作,可以在瀏覽器開啟 http://localhost:11434,看到 Ollama is running 的訊息就沒問題。

小結

今天完成了 Ollama 安裝與模型下載、Python 套件安裝、範例資料準備,並驗證了整個環境。從今天起,整個 RAG 系列都在本機執行,不需要金鑰,也沒有 API 費用。

明天開始寫第一段 RAG 程式:文件載入與切割。我們會把 data/ 裡的文件讀進來,切成 chunks,並觀察 chunk_size 與 chunk_overlap 如何影響切割結果。


上一篇
DAY22. 環境準備
下一篇
DAY24. 文件載入與切割
系列文
從零搞懂 RAG 評測之旅 共 25 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言