Files
LLM-Wiki-for-n8n/README.md
T
Leo 3f2db62850 Initial commit: n8n 版 LLM Wiki
Karpathy 的 LLM Wiki 觀念,用 n8n + Google Docs + Google Sheets 實作。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 18:21:44 +08:00

7.4 KiB
Raw Blame History

n8n 版 LLM Wiki

Andrej Karpathy 的「LLM Wiki」概念,用 n8n + Google Docs + Google Sheets 重新實作的可下載版本。 不需要 Obsidian、不需要向量資料庫,人人都有的 Google 工具就能玩這套「新 RAG」。

感謝 Andrej Karpathy 提出這個觀念。原文(gist): https://gist.github.com/karpathy/442a6bf555914893e9891c11ac484894


這是什麼?

傳統 RAG 把文件丟進嵌入模型「碎紙化」存進向量庫,查詢時抽幾條碎紙給 LLM,LLM 只看得到那幾條、看不到全局。

Karpathy 的 LLM Wiki 用的是另一套思路 — pre-compile(預編譯): 把所有原始資料交給 LLM,讓它像「維基百科總編輯」一樣,把內容整理、改寫、互相連結後寫進一個結構化的知識庫。你問問題時,它先查目錄(index,再讀對應的 wiki 條目來回答 — 有全局觀,知道來龍去脈,而不是靠碎紙拼湊。

傳統向量 RAG LLM Wiki(本專案)
入庫方式 切塊 → 嵌入 → 存向量 LLM 閱讀 → 整理改寫 → 寫成 wiki 條目
找資料方式 向量相似度 目錄(像人查索引)
資料成長 無限增加(知識倉庫 結構性整理、更新而非堆疊(知識
原稿角色 直接被切碎 單一事實來源(SSOT),有爭議時回查
成本 嵌入便宜 Token 燒得較兇,但整理品質高

更新而非新增:給它 1 萬份文件,它不會生成 1 萬篇 wiki,而是整理成一本結構化的「教科書」。內容相近就更新既有條目,差很多才新增


為什麼用 Google Docs + Sheets

  • Obsidian 沒有網路版,不一定人人習慣 — 重點是觀念,工具不重要。
  • Google Docs 當 wiki 條目本體,電腦手機通用、人人都有。
  • Google Sheets目錄(index:結構化、乾淨、搜尋飛快,n8n 又能直接讀成 JSON。目錄裡不只篇名,還有 keywordssummarylast_updated,讓 AI 好找。

倉庫內容

.
├── workflows/
│   ├── LLM_wiki.json          # 主工作流(入庫 + 查詢兩條流程)
│   └── create_wiki_page.json  # 子工作流:建立 Google Doc 並移到指定資料夾
├── index.xlsx                 # 目錄範本(上傳 Google Drive 後轉成 Google Sheets
├── wiki/
│   └── RAG 檢索增強生成(RAG.docx   # 一篇 wiki 條目範例(轉成 Google Docs
└── README.md

⚠️ 這是零件包,你需要自己組裝(接上自己的 Google 帳號與 LLM 金鑰)。

為什麼下載的是 .xlsx.docx

這個專案產生的 wiki 原本放在 Google Drive 的 Docs / Sheets。為了方便在 GitHub 上發佈下載,匯出成 Office 格式(.xlsx / .docx)。

👉 你下載後,要把它們上傳到自己的 Google Drive,並轉回 Google 原生格式才能被 n8n 呼叫:

下載到的檔案 上傳後請轉成 用途
index.xlsx Google Sheets 目錄(index
wiki/*.docx Google Docs wiki 條目(範例,可刪)

轉換方式(任一即可):

  • 在 Google Drive 直接用 Google Sheets / Google Docs 開啟 .xlsx / .docx,再「檔案 → 另存為 Google 試算表 / Google 文件」。
  • 或在 Drive 設定中開啟「上傳時自動轉換為 Google 文件格式」,再上傳。

目錄(index)欄位

index.xlsx 是 wiki 的目錄,AI 靠它找資料。欄位:

欄位 說明
topic 主題名稱(也是 wiki 條目的標題)
doc_id 對應 Google Doc 的 ID
keywords 關鍵字,幫 AI 比對問題
summary 摘要,幫 AI 判斷相關性
last_updated 最後更新日期

運作原理(兩條流程)

主工作流 LLM_wiki.json 內含兩條獨立流程。

1️⃣ 資料入庫(寫入)

On form submission(上傳 .md / .txt)→ Extract from FileAI Agent(知識寫入助手)

寫入 Agent 的邏輯:

  1. 先讀目錄 get_indexs(鐵律:沒讀過 index 不准做任何事)。
  2. 把上傳文件拆成一個或多個主題。
  3. 逐一判斷:
    • 主題已存在write_wikiAppend 到既有 Doc+ update_wiki(更新該條目的 keywords / summary)。
    • 主題不存在create_wiki_page(建新 Doc,呼叫子工作流)+ write_wiki(寫入初始內容)+ write_index(在目錄新增一行)。
  4. 確認每個主題都完成最後一步(更新過 index)才回報結果。

2️⃣ 資料查詢(讀取)

When chat message receivedAI Agent1(知識查詢助手)

查詢 Agent 的邏輯:

  1. get_indexs 讀目錄,瀏覽所有 keywords / summary。
  2. 判斷哪個(些)doc_id 與問題最相關。
  3. read_wiki 讀取對應 Doc 全文。
  4. 根據讀到的內容回答(只讀不寫;目錄裡找不到就老實說「Wiki 尚未收錄此主題」)。

子工作流 create_wiki_page.json

因為 Google Docs 節點無法直接在指定資料夾建立文件,所以拆成子工作流:用 Webhook 觸發 → Create a documentMove file(移到指定 wiki 資料夾)→ 回傳 doc_id。主工作流用 HTTP Request 節點呼叫它。


安裝與設定

需求

  • 一個可用的 n8n 實例(自架或雲端)。
  • Google 帳號Docs / Sheets / Drive 權限)。
  • 一個 LLM。本專案範例用 Google GeminilmChatGoogleGemini 節點),可自行換成其他 LLM 節點。

步驟

  1. 匯入工作流:在 n8n 中匯入 workflows/LLM_wiki.jsonworkflows/create_wiki_page.json
  2. 準備 Google 檔案
    • index.xlsx 上傳 Google Drive 並轉成 Google Sheets
    • 在 Drive 建一個資料夾放 wiki 條目(例:wiki/)。
    • (可選)把 wiki/*.docx 上傳並轉成 Google Docs 當範例,或直接刪掉從零開始。
  3. 接憑證:在每個 Google Sheets / Docs / Drive 節點接上你的 Google OAuth 憑證;LLM 節點接上你的金鑰。
  4. 指定目標
    • get_indexs / get_indexs1 / write_index 指向你的 index Google Sheet。
    • create_wiki_page 子工作流的「建立文件」與「Move file」指向你的 wiki 資料夾。
    • 主工作流的 create_wiki_page HTTP 節點 URL 改成你自己 n8n 的 webhook 網址(範本內是作者的網址,務必替換)。
  5. 啟用並測試
    • 用表單上傳一份 .md / .txt → 看 index 是否新增、wiki 資料夾是否多出 Doc。
    • 在 chat 觸發器問一個問題 → 看它是否查目錄、讀 Doc、回答。

注意事項

  • Token 燒得較兇:因為是讓 LLM 真的去「讀、整理、改寫」資料,比向量法耗 token。處理大量文件前先評估成本。
  • 範本內含作者的 webhook 網址,請替換成自己的。
  • 這套設計重整理輕堆疊 — 它整理出來的是一個「知識」,而不是無限長大的「知識倉庫」。

致謝

觀念來自 Andrej Karpathy 的 LLM Wiki原文 gist)。本專案只是把同一個觀念換成人人都有的 Google 工具,方便教學與實際使用。

授權

MIT License,詳見 LICENSE