- workflows/LLM_wiki.en.json: English, credentials/IDs scrubbed for template submission - templates/SUBMISSION.md: title, description and checklist for n8n.io Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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。目錄裡不只篇名,還有
keywords、summary、last_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 File → AI Agent(知識寫入助手)
寫入 Agent 的邏輯:
- 先讀目錄
get_indexs(鐵律:沒讀過 index 不准做任何事)。 - 把上傳文件拆成一個或多個主題。
- 逐一判斷:
- 主題已存在 →
write_wiki(Append 到既有 Doc)+update_wiki(更新該條目的 keywords / summary)。 - 主題不存在 →
create_wiki_page(建新 Doc,呼叫子工作流)+write_wiki(寫入初始內容)+write_index(在目錄新增一行)。
- 主題已存在 →
- 確認每個主題都完成最後一步(更新過 index)才回報結果。
2️⃣ 資料查詢(讀取)
When chat message received → AI Agent1(知識查詢助手)
查詢 Agent 的邏輯:
get_indexs讀目錄,瀏覽所有 keywords / summary。- 判斷哪個(些)
doc_id與問題最相關。 read_wiki讀取對應 Doc 全文。- 根據讀到的內容回答(只讀不寫;目錄裡找不到就老實說「Wiki 尚未收錄此主題」)。
子工作流 create_wiki_page.json
因為 Google Docs 節點無法直接在指定資料夾建立文件,所以拆成子工作流:用 Webhook 觸發 → Create a document → Move file(移到指定 wiki 資料夾)→ 回傳 doc_id。主工作流用 HTTP Request 節點呼叫它。
安裝與設定
需求
- 一個可用的 n8n 實例(自架或雲端)。
- Google 帳號(Docs / Sheets / Drive 權限)。
- 一個 LLM。本專案範例用 Google Gemini(
lmChatGoogleGemini節點),可自行換成其他 LLM 節點。
步驟
- 匯入工作流:在 n8n 中匯入
workflows/LLM_wiki.json與workflows/create_wiki_page.json。 - 準備 Google 檔案:
- 把
index.xlsx上傳 Google Drive 並轉成 Google Sheets。 - 在 Drive 建一個資料夾放 wiki 條目(例:
wiki/)。 - (可選)把
wiki/*.docx上傳並轉成 Google Docs 當範例,或直接刪掉從零開始。
- 把
- 接憑證:在每個 Google Sheets / Docs / Drive 節點接上你的 Google OAuth 憑證;LLM 節點接上你的金鑰。
- 指定目標:
- 把
get_indexs/get_indexs1/write_index指向你的 index Google Sheet。 - 把
create_wiki_page子工作流的「建立文件」與「Move file」指向你的 wiki 資料夾。 - 主工作流的
create_wiki_pageHTTP 節點 URL 改成你自己 n8n 的 webhook 網址(範本內是作者的網址,務必替換)。
- 把
- 啟用並測試:
- 用表單上傳一份
.md/.txt→ 看 index 是否新增、wiki 資料夾是否多出 Doc。 - 在 chat 觸發器問一個問題 → 看它是否查目錄、讀 Doc、回答。
- 用表單上傳一份
注意事項
- Token 燒得較兇:因為是讓 LLM 真的去「讀、整理、改寫」資料,比向量法耗 token。處理大量文件前先評估成本。
- 範本內含作者的 webhook 網址,請替換成自己的。
- 這套設計重整理輕堆疊 — 它整理出來的是一個「知識庫」,而不是無限長大的「知識倉庫」。
致謝
觀念來自 Andrej Karpathy 的 LLM Wiki(原文 gist)。本專案只是把同一個觀念換成人人都有的 Google 工具,方便教學與實際使用。
授權
MIT License,詳見 LICENSE。