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 數位轉型之路

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

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