All-in-RAG 評測:從文本分塊到圖譜檢索的完整 RAG 學習路徑
🔍大模型应用开发实战一:RAG 技术全栈指南,在线阅读地址:https://datawhalechina.github.io/all-in-rag/
秒懂
- 它是什麼?
- Datawhale 的 All-in-RAG 是一套以繁體中文為主的 RAG 全棧教學,涵蓋資料處理、向量檢索、混合檢索、Text2SQL 與知識圖譜,但它的定位是學習資源而非可直接部署的框架。
- 適合誰用?
- All-in-RAG 適合具備 Python 基礎、想從零建立 RAG 知識體系的開發者,尤其是需要中文資料處理與多模態檢索範例的人。它不適合尋求可直接上線的框架或完整專案程式碼的團隊,因為目前缺少正式的 release,且第十章的內容仍在規劃中。
- 可以商用嗎?
- 未經許可不行。GitHub 在這個儲存庫中沒有找到授權檔案;沒有授權,預設即「保留所有權利」:你可以閱讀程式碼,但不能重複使用。使用前請看看 README,或先取得作者同意。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 12 天前。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
這份教材解決什麼問題
RAG 的教學資源很多,但多數只講單一環節,例如怎麼做 embedding,或是怎麼接向量資料庫。All-in-RAG 想補的缺口是「全流程」的知識體系。從 README 的目錄來看,它把 RAG 拆成資料準備、索引建構、檢索優化、生成整合與系統評估五個階段,每個階段都有對應的章節。這對剛入門的人來說有價值,因為你不需要自己拼湊零散的文章。它的目標讀者寫得很清楚:具備 Python 基礎、會用 Docker、理解基本 LLM 概念的人。不是給完全沒有程式經驗的讀者,也不是給只想看理論的學生。
章節架構的實際輪廓
Repository 的內容分為十個章節,外加一個 Extra-chapter 目錄。第一章用「四步構建 RAG」帶讀者快速上手,第二章處理資料載入與文本分塊,第三章進入向量嵌入、多模態嵌入、Milvus 實作與索引優化。第四章是檢索技術的進階,包含混合檢索、查詢建構、Text2SQL 與查詢重寫。第五章只有格式化生成,第六章談評估方法與工具。第七章以後是進階與實戰:知識圖譜 RAG、兩個專案實作,其中第十章仍標記為「規劃中」。這樣的安排顯示作者把「檢索」當成核心,生成與評估的篇幅相對較少。如果你特別想深入 RAG 的生成端,例如提示詞工程或輸出驗證,這份教材的覆蓋會讓你失望。
多模態與圖譜是它的差異點
多數 RAG 教學只處理純文字,All-in-RAG 卻在第三章安排了多模態嵌入,並且在 Extra-chapter 放了 Jina v5-omni 的實作。這表示它試圖跟上多模態 LLM 的趨勢。另一個亮點是第七章的知識圖譜 RAG,以及第九章的「圖 RAG 架構設計」,後者還搭配了 Neo4j 的簡單應用。知識圖譜 RAG 的價值在於處理多跳問答,例如「某公司的供應商有哪些」這類需要關係推論的問題,純向量檢索往往答不好。這份教材把圖譜資料建模、Milvus 索引與查詢路由放在同一個章節,等於示範了如何把結構化與非結構化檢索結合。但要注意,第九章是選修,而且它的專案展示連結指向一個「今天吃什麼」的應用,規模不大。
實際運作的技術棧
從 README 的 topics 與章節標題可以看出,它依賴 LangChain、LlamaIndex、Milvus、Neo4j 這幾個主流工具。Python 版本標示為 3.12.7,環境部署建議使用 Docker。向量資料庫的選型是 Milvus,這與許多教學偏好 Chroma 或 FAISS 不同,Milvus 更偏向生產環境,支援分散式部署,但也更重。Text2SQL 的章節暗示它會教你如何讓 LLM 直接查詢結構化資料庫,這在 RAG 應用中常被忽略。整體技術棧偏向工程實作,而不是純學術探討。需要留意的是,README 沒有列出任何相依套件的版本號,也沒有 requirements.txt 的內容,所以實際執行範例時,套件版本衝突是你能預期的第一個障礙。
如何開始與執行
起點是閱讀線上文件,網址是 https://datawhalechina.github.io/all-in-rag/,README 也提供每個章節的 Markdown 原始檔。第一章的「準備工作」會教你設定環境,附錄則有 Python 虛擬環境的部署方案。實際動手的第一步是建立虛擬環境,然後安裝必要的套件。由於教材涵蓋多種服務,Docker 幾乎是必備工具,特別是跑 Milvus 或 Neo4j 的時候。你需要準備 LLM 的 API 金鑰,因為範例會呼叫 DeepSeek 或 Kimi K2 這類模型。每個章節的程式碼散落在 docs 目錄的對應檔案中,沒有統一的範例專案,這代表你必須自己把各章的片段組合成一個可運作的系統。第九章有一個完整的專案範例,但它放在外部連結,並非 repository 內建。
真實的限制與失敗模式
第一個限制是它不是框架,而是一份教材。你無法 pip install all-in-rag 然後直接呼叫某個函式,所有的程式碼都需要你手動複製與調整。第二個限制是第十章的內容還在規劃中,代表整份教材尚未完成,你學完第九章之後會發現路徑斷掉。第三個限制是章節之間的依賴關係不明確,例如第五章的格式化生成只有一節,但第六章的評估可能依賴前面產生的輸出格式,如果讀者跳過第五章,評估章節的範例可能無法順利執行。另外,多模態 embedding 的實作依賴 Jina 的服務,這類外部 API 的可用性與收費政策隨時可能改變,教材的更新速度不一定跟得上。最後,Text2SQL 與知識圖譜 RAG 都涉及複雜的查詢語法,若你的資料庫結構特殊,照抄範例很可能出錯。
與其他 RAG 資源的差異
最接近的替代品是 LlamaIndex 或 LangChain 的官方文件與範例,但它們的定位是框架文件,不是教學課程。LlamaIndex 的文件會深入教你怎麼用它的各類 retriever,但不會花一章解釋為什麼要文本分塊。另一類替代品是單篇的技術部落格,例如 Medium 上的 RAG 教學,它們通常涵蓋單一主題,例如 hybrid search 或 reranking,但缺乏系統性的章節安排。All-in-RAG 的差異在於它把「中文」與「多模態」放在一起,同時涵蓋了從資料清洗到評估的完整生命週期。對於中文開發者來說,這比閱讀英文文件更直接,因為範例的資料集與查詢都可能是中文,這會減少轉換語言的認知負擔。
維護與升級成本
Repository 的最後一次推送是 2026 年 9 月,但沒有列出任何正式 release,這表示內容的變動是持續且零散的。你需要自行追蹤 git log 才能知道哪些章節被更新過。License 欄位顯示為 unknown,這是採用前必須釐清的風險,因為你無法確定能否合法複製或改寫其中的程式碼。Datawhale 作為開源組織,通常會採用特定授權,但在這個 repository 中並未明確標示,建議你寫信詢問或檢查每個檔案的標頭。升級成本方面,由於它依賴 LangChain 與 LlamaIndex 這種迭代快速的套件,半年前能跑的範例,現在很可能因為 API 改版而失效。你必須具備閱讀官方 changelog 的能力,才能把教材中的程式碼轉換成當前的版本。
編輯結論
All-in-RAG 適合具備 Python 基礎、想從零建立 RAG 知識體系的開發者,尤其是需要中文資料處理與多模態檢索範例的人。它不適合尋求可直接上線的框架或完整專案程式碼的團隊,因為目前缺少正式的 release,且第十章的內容仍在規劃中。開始之前,你應該先確認自己能否接受以 Docker 為主的環境,並逐一檢查各章節範例所依賴的 API 金鑰與服務版本是否仍然有效。若你的目標是快速打造生產級系統,這份教材能提供架構參考,但最終仍需自行整合 LangChain、LlamaIndex 或 Milvus 的官方文件。
社群筆記