目次

n8n RAG チュートリアル:ドキュメントに基づいて回答する AI ナレッジベースを構築

AI モデルは、あなたの会社の規則、製品マニュアル、FAQ を知りません。RAG では、まずドキュメントを「ベクトルデータベース」に保存します。ユーザーが質問すると、関連性の高い段落を検索し、その内容に基づいてモデルに回答させます。

n8n では、RAG は通常 2 つのワークフローに分かれます。

① ドキュメントの取り込み:[ドキュメントを取得] ─▶ [Vector Store:挿入] ← [Embeddings] + [Document Loader + Text Splitter]

② 質問応答:            [Chat Trigger] ─▶ [AI Agent] ← [Chat Model] + [Memory] + [Vector Store ツール ← Embeddings]

仕組みについては、Ollama のテキスト埋め込みと RAG を参照してください。

ベクトルデータベースを選ぶ

ノード特徴適した用途
Simple Vector Storen8n のメモリに保存され、インストール不要学習、テスト(再起動するとデータは消えます)
Qdrant Vector Store専用のベクトルデータベースで、Docker でセルフホスト可能本番利用
Postgres PGVector StorePostgreSQL + pgvector 拡張機能すでに PostgreSQL を利用している場合
Pinecone、Supabase などクラウドサービス自分で管理したくない場合

ここではまず Simple Vector Store を使って説明し、最後に Qdrant への切り替え方法を紹介します。

ワークフロー ①:ドキュメントの取り込み

1. トリガーとドキュメントの取得

  • テストでは、Form Trigger にファイルアップロード欄を追加して、PDF を直接アップロードできます。
  • 本番利用では、フォルダーに新しいファイルが追加されたときに起動する Google Drive Trigger と、ファイルをダウンロードする Google Drive ノードを使えます。

2. Vector Store ノードを追加する

Simple Vector Store を追加し、操作モードに Insert Documents を選択します。Memory Key に company_docs などの名前を入力します(質問応答でも同じ名前を使います)。

3. Embeddings を接続する

Embeddings の入力に埋め込みモデルを選択します。

  • Embeddings OpenAI
  • Embeddings Ollama(ローカルで無料。日本語と中国語には bge-m3 がおすすめです)

取り込みと検索には、必ず同じ埋め込みモデルを使用してください。異なるモデルではベクトルを照合できません。

4. Document Loader と Text Splitter を接続する

  • Default Data Loader:Type of Data で Binary(ファイル)または JSON(テキストデータ)を選択します。
  • Data Loader の下に Recursive Character Text Splitter を接続します。
    • Chunk Size:各チャンクの文字数です。日本語のドキュメントでは、まず 500~800 を試してください。
    • Chunk Overlap:隣接するチャンク間で重ねる文字数です。例:100

一度実行すると、ドキュメントが分割され、ベクトルに変換されて保存されます。

ワークフロー ②:質問応答

  1. When chat message received → AI Agent の順に接続します。
  2. AI Agent に Chat Model と Memory を接続します(AI Agent 入門 と同様です)。
  3. Tool の入力に Simple Vector Store を追加し、操作モードに Retrieve Documents (As Tool for AI Agent) を選択します。
    • Memory Key:company_docs
    • Description:社内規則と製品ドキュメントを検索します。会社のポリシーや製品仕様に関する質問には、回答する前に必ず使用してください。
    • Limit:取得するチャンク数です。例:4
  4. この Vector Store にも同じ Embeddings モデルを接続します。
  5. AI Agent のシステムプロンプトを設定します。
あなたは社内ナレッジベースのアシスタントです。日本語で回答してください。
回答する前に、必ずナレッジベースツールで検索してください。
検索結果の内容だけに基づいて回答してください。関連情報が見つからない場合は、「ナレッジベースに関連情報がありません」とそのまま伝え、推測で補わないでください。

Open chat をクリックしてテストし、ドキュメントの内容について質問します。

Simple Vector Store のデータはメモリに保存されます。2 つのワークフローは同じ n8n インスタンスで実行する必要があり、n8n の再起動後はドキュメントを再度取り込む必要があります。

Qdrant に切り替える(本番利用)

Docker Compose に Qdrant を追加します。

  qdrant:
    image: qdrant/qdrant
    volumes:
      - qdrant_data:/qdrant/storage
    restart: unless-stopped

(volumes: セクションに qdrant_data: を追加してください。)

2 つのワークフローで Simple Vector Store を Qdrant Vector Store に置き換え、認証情報の URL に http://qdrant:6333 を入力します。両方で同じ Collection 名を指定してください。データは永続的に保存されます。

回答の品質を高める

  • ドキュメントの品質が最も重要です:スキャン PDF は先にテキストに変換する必要があります。表や画像内の情報は正しく読み取れないことがあります。
  • チャンクのサイズを調整します:回答に文脈が足りない場合は Chunk Size を大きくし、無関係な内容が混ざる場合は小さくします。
  • メタデータを追加します:Data Loader にドキュメント名やカテゴリなどの metadata を追加すると、回答で出典を示したり、カテゴリで絞り込んだりできます。
  • ドキュメントを更新します:同じドキュメントを更新したときは、古いベクトルを削除してから再度取り込みます。そうしないと新旧の内容が同時に検索されます。
  • 適切な埋め込みモデルを選びます:日本語のコンテンツには多言語埋め込みモデルがおすすめです。

ドキュメント以外にも使う

同じ方法を次の用途にも使えます。

  • カスタマーサポートの過去の Q&A → よくある質問への自動回答
  • 製品カタログ → 製品推薦アシスタント
  • 会議メモ → 「前回の会議では何が決まりましたか?」

更新日 2026年10月12日