目錄

n8n RAG 教學:建立能根據文件回答的 AI 知識庫

AI 模型不知道你公司的規章、產品手冊或 FAQ。RAG 的做法是:先把文件存進「向量資料庫」,使用者提問時找出最相關的段落,交給模型根據這些內容回答。

在 n8n 中,RAG 通常分成兩個工作流程:

① 匯入文件:[取得文件] ─▶ [Vector Store:插入] ← [Embeddings] + [Document Loader + Text Splitter]

② 問答:    [Chat Trigger] ─▶ [AI Agent] ← [Chat Model] + [Memory] + [Vector Store 工具 ← Embeddings]

原理說明可以參考 Ollama 文字嵌入與 RAG。

選擇向量資料庫

節點特色適合
Simple Vector Store存在 n8n 記憶體中,不需安裝學習、測試(重新啟動後資料會消失)
Qdrant Vector Store專門的向量資料庫,可用 Docker 自架正式使用
Postgres PGVector StorePostgreSQL + pgvector 擴充已經在用 PostgreSQL
Pinecone、Supabase 等雲端服務不想自己維護

以下先用 Simple Vector Store 示範,最後說明如何換成 Qdrant。

工作流程 ①:匯入文件

1. 觸發與取得文件

  • 測試時可以用 Form Trigger 加上檔案上傳欄位,直接上傳 PDF。
  • 正式使用可以用 Google Drive Trigger(資料夾有新檔案時)+ Google Drive 節點下載檔案。

2. 新增 Vector Store 節點

新增 Simple Vector Store,操作模式選擇 Insert Documents,Memory Key 填一個名稱,例如 company_docs(問答時要用同一個名稱)。

3. 接上 Embeddings

在 Embeddings 插槽選擇嵌入模型:

  • Embeddings OpenAI
  • Embeddings Ollama(本機免費,中文建議使用 bge-m3)

匯入和查詢必須使用同一個嵌入模型,否則向量無法比對。

4. 接上 Document Loader 與 Text Splitter

  • Default Data Loader:Type of Data 選擇 Binary(檔案)或 JSON(文字資料)。
  • 在 Data Loader 下接上 Recursive Character Text Splitter:
    • Chunk Size:每段的字元數,中文文件可以先試 500~800
    • Chunk Overlap:相鄰段落重疊的字元數,例如 100

執行一次,文件就會被切塊、轉成向量並存入。

工作流程 ②:問答

  1. When chat message received → AI Agent。
  2. AI Agent 接上 Chat Model 與 Memory(同 AI Agent 入門)。
  3. Tool 插槽加入 Simple Vector Store,操作模式選擇 Retrieve Documents (As Tool for AI Agent):
    • Memory Key:company_docs
    • Description:查詢公司內部規章與產品文件。回答任何關於公司政策、產品規格的問題前都要使用。
    • Limit:每次取回幾段,例如 4
  4. 這個 Vector Store 也要接上同一個 Embeddings 模型。
  5. AI Agent 的系統提示詞:
你是公司的內部知識庫助理,請使用繁體中文回答。
回答前務必先使用知識庫工具查詢。
只根據查到的內容回答;如果找不到相關資料,請直接說「知識庫中沒有相關資料」,不要自行推測。

按 Open chat 測試,詢問文件中的內容。

Simple Vector Store 的資料存在記憶體中,兩個工作流程必須在同一個 n8n 中執行,而且 n8n 重新啟動後需要重新匯入。

換成 Qdrant(正式使用)

在 Docker Compose 中加入 Qdrant:

  qdrant:
    image: qdrant/qdrant
    volumes:
      - qdrant_data:/qdrant/storage
    restart: unless-stopped

(記得在 volumes: 區塊加上 qdrant_data:。)

把兩個工作流程中的 Simple Vector Store 都換成 Qdrant Vector Store,憑證的 URL 填 http://qdrant:6333,並指定相同的 Collection 名稱。資料會永久保存。

提升回答品質

  • 文件品質最重要:掃描版 PDF 需要先轉成文字;表格、圖片中的資訊可能無法被正確讀取。
  • 調整切塊大小:回答缺少上下文時加大 Chunk Size;回答混入無關內容時縮小。
  • 加入中繼資料:在 Data Loader 中加上文件名稱、類別等 metadata,回答時可以註明出處,也可以依類別篩選。
  • 更新文件:同一份文件更新時,要先刪除舊的向量再匯入,否則新舊內容會同時被檢索到。
  • 選擇好的嵌入模型:中文內容建議使用多語言嵌入模型。

不只是文件

同樣的方式也可以用在:

  • 客服歷史問答 → 自動回覆常見問題
  • 產品型錄 → 產品推薦助理
  • 會議記錄 → 「上次會議決定了什麼?」

更新於 2026年10月12日