Supabase Vector Store / n8n

電子楽器のマニュアルを読み込んで、質問をするというRAGのテストをSupabase Vector Store & n8nでやってみました。
n8nの環境は下記参考。LLMはローカル。
https://decode.red/ed/archives/1802

参考動画

下記、完成したワークフロー。まず左側を実行して、ベクトルを保存。そのあと右側のチャットを実行。

SupabaseはDBにPostgreSQLを使っており、これはベクトルDBではないため、拡張機能を使います。
https://supabase.com/docs/guides/ai/langchain?queryGroups=database-method&database-method=sql

ローカルのモデルを使っているため、ベクトルの次元数があわず、下記のように修正しました。(動画のOpenAI Small Embeddingは1536)

ALTER TABLE documents
ALTER COLUMN embedding TYPE vector(192);

マニュアルがSupabaseに保存された様子。

前後しますが、マニュアルは GoogleDriveからダウンロードしました。

「Google Drive API / Create and manage resource in Google Drive」「有効にする」「このAPIを試す」
上記画面で、「有効」にします。


Redirect URLはGoogleCloudの設定の方に、GoogleCloudのClientIDとClientSecretはここに設定。
「Sign in with Google」で、「このアプリはGoogleで確認されていません」というポップアップが出ますが、「安全なページに戻る」ではなく「詳細」から設定を進めます。
localhostからアクセスしているためと思われます。

まずは動作を優先させるため次元数を大幅に減らしたり、ローカルLLMということもあるのか、精度が今一つでした。
やり方はあっていると思いますので、またパラメータ調整など改善していきたいです。
SupaBaseはローカルでも動作させることができますので、これもまた試したいと思います。