RAG 知識庫 + n8n:幫企業打造一個「問不倒的內部 AI 助理」

員工每天問相同問題、新人找不到 SOP、客服重複翻資料——本文拆解 RAG 架構的運作原理,並手把手說明如何用 n8n + Supabase 建立企業專屬知識庫 AI,讓 AI 能真正回答「公司的問題」。

創辦人 Jimmy
RAG 知識庫 + n8n:幫企業打造一個「問不倒的內部 AI 助理」

為什麼 ChatGPT 回答不了你公司的問題?

這個問題的答案很簡單:ChatGPT 不知道你公司的事。

它不知道你的退貨政策、合約範本、SOP 文件、產品規格、或是上週的會議結論。它只會用訓練資料裡的通用知識來回答,一旦問題涉及公司內部資訊,它就只能瞎猜或說不知道。

這就是為什麼很多企業導入了 AI 工具之後,發現 AI「很聰明但沒用」——因為沒有把公司知識餵給 AI。

RAG(Retrieval-Augmented Generation,檢索增強生成) 就是解決這個問題的技術架構。

「不是 AI 不夠聰明,而是你沒有把公司知識交給它。RAG 就是讓 AI 能查閱公司知識庫的橋樑。」

RAG 的運作原理(不需要工程背景也能懂)

用一個比喻來理解:

傳統的 AI 問答,像是讓一個從來沒來過你公司的顧問直接上台回答員工問題。他很聰明,但他什麼都不知道,只能給你通用建議。

RAG 的做法是:讓這個顧問先去看你公司的所有文件,再來回答問題。 他在回答前,會先從文件庫找到最相關的資料,結合自己的推理能力給出有根據的答案。

技術上的三個步驟:

步驟一:文件向量化(建立知識庫)

你把公司的文件(PDF、Word、Google Docs、Notion 頁面)上傳到系統中。

系統會把每份文件切成小段(每段大約 500-1000 字),然後用 Embedding 模型(例如 OpenAI text-embedding-3-small)把每一段文字轉換成一串數字——也就是「向量 (Vector)」。

這些向量代表了文字的「語意意義」,存入向量資料庫(Supabase、Pinecone、Weaviate 等)中。

步驟二:語意搜尋(找到相關資料)

當有人問問題時,系統先把問題也轉換成向量,然後在知識庫中找出「意思最接近」的文件段落。

這個搜尋方式的關鍵是語意相似性,不是關鍵字匹配。所以就算你問「請假要找誰簽?」,系統也能找到標題是「員工請假流程 SOP」的文件——因為兩者的語意很接近,即使沒有完全相同的關鍵字。

步驟三:生成回答(AI 回答問題)

系統把找到的相關文件段落 + 用戶的問題,一起送給 LLM(GPT-4o 或 Claude),告訴它:「根據以下資料,回答這個問題。如果資料裡沒有,請說不確定,不要捏造。」

AI 就能給出有根據、有出處的答案,而不是亂猜。

用 n8n 建立 RAG 知識庫 AI:實作步驟

架構總覽

我們要建立的系統分為兩條工作流:

工作流 A:知識庫建立流(一次性 + 定期更新)

[上傳文件] → [文字擷取] → [切割段落] → [Embedding 向量化] → [存入 Supabase]

工作流 B:問答流(即時觸發)

[用戶提問] → [問題向量化] → [語意搜尋知識庫] → [整理上下文] → [AI 生成回答] → [回覆用戶]

工作流 A:建立知識庫

節點 1:文件來源 Trigger

依照你的文件存放位置選擇觸發方式:

  • Google Drive:使用 Google Drive Trigger,監測指定資料夾的新增/更新
  • Notion:定時抓取指定 Database 的頁面
  • 本地上傳:使用 Webhook 接收上傳的檔案

節點 2:文字擷取

  • PDF 文件 → 使用 n8n 的 Extract from File 節點(支援 PDF → Text)
  • Google Docs/Notion → 直接取得 Markdown 格式的文字
  • Word 文件 → 需要透過 Code 節點呼叫 mammoth.js 解析

節點 3:文件切割 (Chunking)

使用 n8n 的 Recursive Character Text Splitter 節點(屬於 LangChain 整合),設定:

  • Chunk Size:800 字元
  • Chunk Overlap:100 字元(讓相鄰段落有重疊,避免上下文斷裂)

節點 4:Embedding 向量化

新增 Embeddings OpenAI 節點,選擇 text-embedding-3-small 模型(便宜且效果好),把每個文字段落轉換成 1536 維的向量。

節點 5:存入 Supabase 向量資料庫

在 Supabase 建立一個 documents 資料表,結構如下:

CREATE TABLE documents (
  id BIGSERIAL PRIMARY KEY,
  content TEXT,
  embedding VECTOR(1536),
  metadata JSONB,
  created_at TIMESTAMP DEFAULT NOW()
);

使用 n8n 的 Supabase Vector Store 節點,把向量 + 原始文字 + 後設資料(文件名稱、來源 URL)存入資料表。


工作流 B:問答 AI

節點 1:問題接收 Trigger

依照你的使用場景選擇入口:

  • LINE Bot → 透過 LINE Webhook 接收訊息
  • 內部系統 → 透過 Webhook URL 接收 HTTP POST
  • Slack Bot → 使用 Slack Event API

節點 2:問題向量化

把用戶的問題也使用相同的 Embedding 模型轉換成向量。

節點 3:語意搜尋

使用 Supabase Vector Store 節點,以問題向量搜尋知識庫,取得相似度最高的前 5 筆文件段落。

Supabase 的語意搜尋語法:

SELECT content, 1 - (embedding <=> query_embedding) AS similarity
FROM documents
ORDER BY similarity DESC
LIMIT 5;

節點 4:組合 Prompt

使用 Code 節點把搜尋結果組合成 Context 字串:

const context = $input.all()
  .map(item => item.json.content)
  .join('\n\n---\n\n');

return [{
  json: {
    context: context,
    question: $('Webhook').item.json.question
  }
}];

節點 5:AI 生成回答

連接 OpenAI 或 Claude 節點,System Prompt 設定如下:

你是公司的內部 AI 助理。請根據以下提供的公司文件資料,回答員工的問題。

規則:
- 只根據提供的資料回答,不要憑空捏造
- 如果資料中找不到相關資訊,請明確說「這個問題我在現有文件中找不到答案,建議詢問 [相關部門]」
- 如果找到相關資料,可以在回答後附上「資料來源:[文件名稱]」

公司文件資料:
{{context}}

User Message:{{question}}

節點 6:回覆輸出

把 AI 生成的答案回傳給用戶的介面(LINE 回覆、HTTP Response 等)。


知識庫 AI 的三個常見應用場景

場景一:HR 問答 Bot

把公司的員工手冊、請假規定、薪資福利說明、績效考核辦法上傳到知識庫。員工有任何人事問題,直接問 LINE Bot,不需要去煩 HR。

效益:HR 人員每月平均回答 200+ 個重複問題,導入後降至 20 個以下。

場景二:客服知識庫

把產品常見問題、退換貨政策、操作說明書、故障排除指南建成知識庫。客服人員查詢時不用翻舊信箱或靠記憶,AI 直接給出標準答案和出處。

效益:客服平均查詢時間從 2-3 分鐘 → 10 秒,回覆準確率提升。

場景三:新人教育訓練助理

把所有 SOP、流程圖、注意事項建成知識庫。新人入職後所有「這個要怎麼做?那個在哪裡找?」的問題,都可以問 AI 助理,減輕帶新人的時間成本。


維護知識庫的注意事項

定期更新機制:公司文件會持續更新。建議在知識庫建立流程中,加入「偵測文件更新 → 自動重新向量化」的機制,確保 AI 的資料庫保持最新。

區分資料層級:不是所有文件都適合讓所有人查詢。薪資資訊、個人考核結果等敏感資料,應該建立獨立的知識庫,並加入存取控制。

回答品質監控:定期抽查 AI 的回答,特別關注「AI 說找不到資料,但其實資料庫裡有」的情況——這通常代表 Chunk Size 設定不對,或者文件格式有問題需要重新整理。

延伸閱讀

智賦 AI 科技 專注於 B2B 企業自動化解決方案,協助企業建立 RAG 知識庫 AI 系統,從文件整理、知識庫建置到前端問答界面,提供完整的一站式服務。立即了解 AI Agent 服務

開始合作

立即啟動您的 AI 數位轉型之路

聯絡我們,讓智賦AI科技成為您 AI 導入的最佳夥伴。

我們使用 Cookie 進行分析與廣告追蹤,以優化您的使用體驗。請點選「同意」以啟用這些功能。