描述問題/錯誤/疑問
我在 Mac(Docker)上安裝了 n8n,並嘗試連線到我的 Supabase RAG,但連線失敗。按照「主機」中的要求,我從 Supabase(專案設定 >> 資料 API)複製了連結,看起來像「https://bmactddfrfrmvegzlrvt.supabase.co/rest/v1/」,在「服務節點祕密」中,我使用了來自設定 >> API 金鑰(Supabase)的 API 金鑰,看起來像「sb_secret_x7O7Ea-PvGcWd_0MNMdgdQ_tsE7IkIH」。我使用的是祕密金鑰,而不是可發佈金鑰。但我得到「無法使用這些設定進行連線。更多詳情」。當我點擊「更多詳情」連結時,我得到「找不到您要求的資源」。
錯誤訊息是什麼(如果有的話)?
請分享您的工作流程
(選擇畫布上的節點並使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製及貼上工作流程。)
分享最後一個節點返回的輸出
關於您的 n8n 設定的資訊
- n8n 版本:
- 資料庫(預設:SQLite):
- n8n EXECUTIONS_PROCESS 設定(預設:own、main):
- 透過以下方式執行 n8n(Docker、npm、n8n cloud、桌面應用程式):
- 作業系統:
嗨 @subroto,歡迎!
404 錯誤來自你的 Host 欄位。n8n 會自動添加 /rest/v1/ 部分,所以當你也包含它時,路徑就會重複,Supabase 會返回「找不到資源」的錯誤。將 Host 設置為只是基礎項目 URL,例如 https://your-project.supabase.co,.co 後面不要添加任何內容,這樣連接應該就能建立。
還有,這很重要:輪換那個密鑰。你在貼文中貼了一個活躍的 sb_secret 密鑰,所以任何讀到這篇文章的人都可以使用它。在 Supabase 中生成一個新密鑰並替換掉它。
不客氣!請隨時將其中一個回覆標記為解決方案,祝你有美好的一天!
非常感謝。我試試看了你的建議,而且成功了。
謝謝並祝好,
我切換到 n8n 自主託管(Hostinger)並嘗試了這些步驟。(a) 在 Supabase 上,我已移除該專案並重新建立一個新專案 (b) 建立了「documents」表並執行 ‘select schemaname from pg_tables where tablename = ‘documents’ limit 100;’ >> 這返回了 ‘public’ (c) 從 n8n 成功設定認證(用於 Supabase Vector Store)。(d) 確保已啟用向量擴充功能。
不過,表名稱仍然沒有出現,我預期能找到 ‘documents’(我繼續收到 404 錯誤)。謝謝
@subroto 很好,認證資訊已成功保存,所以這次 Host 是正確的,404 錯誤現在出現在表格層,而不是連線。有兩個原因:
-
PostgREST 綱要快取。Supabase 的 Data API 會快取綱要,所以剛建立的表格會 404 錯誤,直到它重新載入為止。在 SQL 編輯器中執行:NOTIFY pgrst, ‘reload schema’;(或等待一分鐘 / 重新啟動專案),通常這樣就會讓文件出現。
-
僅有的表格是不夠的。向量存儲需要包含 id、content、metadata、embedding vector(N) 欄位的文件,以及 match_documents 函數。從 Supabase 向量存儲快速入門執行 SQL(連結在節點文件中),將查詢名稱設定為 match_documents,並將向量維度與你的嵌入模型相符(OpenAI small/ada 為 1536)。
另外,節點會忽略自訂表格名稱,一律使用 documents,所以務必將其命名為完全相同的名稱。
嘿 @subroto,想補充一下 @achamm 對向量存儲設置所說的內容。
當你執行 Supabase 快速入門 SQL 時,確保向量維度與你的嵌入模型完全匹配。維度不匹配,例如使用 vector(1536) 但你的模型輸出 vector(3072),會導致無聲失敗或在插入時返回 404。在執行設置腳本之前,請再次檢查你的模型的輸出維度。
還有一點值得確認:match_documents 函數需要存在於 public schema 中,如果它最後在不同的 schema 中,即使表格正確,n8n 也找不到它。
一旦這些都就位了,執行 NOTIFY pgrst, ‘reload schema’; —— 如同 achamm 建議的那樣,你就可以開始了!