這篇來介紹怎麼在 n8n 把你的資料寫入向量資料庫,這邊以 Supabase 為例,記得先去建立資料表以及取得 API Key。
Step 1: 抓取 Google Drive 的資料
首先我們在 n8n 建立一個開始的節點 Manul,然後因為要餵給向量資料庫的資料有非常多方法,我們這邊用 Google Drive 來說明,記得到 Google Cloud 去設定專案並取得 API Key,也記得要開啟操作 Google Drive API 的權限。
接著因為我們要取得 Google Drive 特定資料夾的所有內容,所以我先建了一個叫 RAG 的資料夾,之後只要把檔案放進去就可以讀取裡面的資料了。

建立 Google Drive 的節點,選擇 Search files and folders,然後輸入 RAG 之後執行,就會看到以下結果:

記下 id 之後,把 Search Method 改成 Advanced Search,並輸入以下內容:
'資料夾id' in parents and trashed = false and mimeType = 'application/pdf'

這樣就會把指定資料夾裡的 pdf 檔都抓出來了。
Step 3: 下載檔案
因為要把檔案下載下來才可以在抓出文字後丟給 AI 去儲存,所以接著一樣建立一個 Gogole Drive 的節點,選擇 Download file
條件設定為 By ID: {{$json["id"]}}

Step 4: 萃取文字
由於 PDF 檔無法直接給 AI 去讀取,所以我們需要把文字抓出來,這邊可以使用 n8n 內建的 Extract from File,裡面可以選擇檔案種類,這邊選擇 Extract from PDF,如果有別種檔案格式就要分別處理,並把 Binary Field 設定為 data。

Step 5: 整理資料
接著新增 Code 節點,並輸入以下程式碼:
return items.map(item => {
return {
json: {
content: item.json.text,
metadata: {
title: item.json.info.Title || "Untitled",
language: item.json.info.Language || "unknown",
producer: item.json.info.Producer || "unknown"
}
}
};
});
這個步驟是把資料整理完後,方便丟給 AI 去處理。
Step 6: 寫入 Supabase Vector Store
這個步驟就是這次的重點啦,我們要把資料給寫入 Supabase 的向量資料庫,這裡建立 Supabase Vector Store 節點。
選擇 Add documents to vector store

這邊要跟 Supabase 連線,從設定 Data API 那邊找到 Project URL

把 Project URL 貼到 Host,下面那個欄位貼上 Secret Key,沒問題的話應該會看到成功的訊息。

選擇目標資料表,以這次示範來說應該是 nhi_drug_1536。

Supabase Vector Store 下面會有兩條線,左邊那條選嵌入模型,這邊選擇 Embeddings OpenAI ,一樣要先去開通 API Key。

這邊還要選擇模型。

都完成了按執行,就可以看到資料被寫入向量資料庫了。

Step 7(可選): 刪除向量資料庫資料
因為每次都是把資料夾的檔案讀取後寫入,所以如果有重複的檔案也會一直累加上去,這樣到後來資料就會太臃腫,可以的話要清空會比較好,這邊我就建立 Supabase 節點,並選擇 Delete a row,然後選擇刪除的目標是 id > 0

這樣就大功告成啦,完整的工作流長這樣:
另外我在天地人有開一門「3 小時掌握自動化工作新手應用實作 – n8n AI Agent」,輸入折扣碼 TC1600UY 還可以額外獲得 NT$500 優惠喔。
