🔎
概念 #n8n #ユースケース #RAG #ベクターDB #Qdrant #Embeddings #検索拡張生成 📚 n8nワークフロー自動化

ドキュメントRAG検索システムを構築する

社内ドキュメント(Notion/PDF/Confluence)をベクター化してQdrantに格納し、自然言語クエリで関連情報を検索・LLMで回答生成するRAGシステムをn8nで構築する。

ユースケース概要

社内ドキュメントをベクター化してQdrantに格納し、「○○の設定方法は?」「△△の仕様について教えて」という自然言語クエリに対してLLMが関連ドキュメントを参照しながら回答する。

解決する課題: 社内Confluenceやドキュメントが増えすぎて「どこに何があるかわからない」問題を解決する

使用するn8nノード:

  • Schedule Trigger(定期インデックス更新)
  • HTTP Request / Notion(ドキュメント取得)
  • Text Splitter(チャンク分割)
  • OpenAI Embeddings(ベクター化)
  • Qdrant Vector Store(格納・検索)
  • OpenAI Chat Model(回答生成)

ワークフロー構成

ワークフロー1: インデックス構築(定期実行)

[Schedule Trigger: 毎日03:00]

[Notion: 全ページ取得]

[Loop Over Items]
  └── [Text Splitter: Recursive Character]

      [OpenAI Embeddings]

      [Qdrant: Upsert]

ワークフロー2: 検索・回答(オンデマンド)

[Webhook / Chat Trigger]

[Basic LLM Chain with Vector Store Retriever]
  ├── [OpenAI Chat Model]
  └── [Qdrant Vector Store: 類似検索]

[回答返却]

実装手順(インデックス構築)

Step 1: Notionページの取得

Resource: Database Item
Operation: Get Many
Database ID: your-doc-database-id
Filter: Published = true

Step 2: テキスト分割(Text Splitter)

Type: Recursive Character Text Splitter
Chunk Size: 500
Chunk Overlap: 50

チャンクオーバーラップを設定することで文脈の切れ目を軽減する。

Step 3: Embeddingsの生成

Provider: OpenAI Embeddings
Model: text-embedding-3-small

各チャンクをベクター(浮動小数点数の配列)に変換する。

Step 4: Qdrantへのインデックス格納

Operation: Upsert
Collection: company_docs
Mode: Insert Documents with Metadata

Metadata:
  source: notion
  pageId: {{ $json.id }}
  title: {{ $json.properties.Name.title[0].plain_text }}
  url: {{ $json.url }}
  updatedAt: {{ $json.last_edited_time }}

実装手順(検索・回答)

Step 5: Q&A Chainの設定

Node: Question and Answer Chain
Retriever: Vector Store Retriever
  → Qdrant (上記コレクション)
  → Top K: 5

LLM: OpenAI Chat Model (gpt-4o-mini)

System Prompt:
以下の参考情報に基づいてのみ回答してください。
参考情報に答えがない場合は「情報が見つかりませんでした」と回答してください。
回答の根拠となった情報源のURLも示してください。

ポイント・注意事項

  • チャンクサイズはドキュメントの密度に合わせる。短い仕様書は500字、長い技術文書は1000字が目安
  • メタデータ(source・title・url)を付与することで、回答に出典情報を含められる
  • Qdrantはオープンソースでセルフホスト可能。n8nと同じDockerネットワークに配置する

関連機能

  1. 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
  2. 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
  3. 3. n8nトリガーの種類(Webhook・スケジュール・イベント)
  4. 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
  5. 5. 🌐n8n HTTP Request・API連携
  6. 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
  7. 7. 🛡️n8nエラーハンドリング・デバッグ
  8. 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
  9. 9. 💻n8n Codeノード・カスタム処理
  10. 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
  11. 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
  12. 12. 📊GitHubのPRをGoogleシートに自動記録する
  13. 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
  14. 14. 💳StripeのWebhookで決済完了を検知して処理する
  15. 15. 📈スケジュールトリガーで週次レポートを自動生成する
  16. 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
  17. 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
  18. 18. 📨ループ処理でリストを走査し一括メール送信する
  19. 19. 📋複数APIのデータをマージして統合レポートを作成する
  20. 20. 🗄️外部REST APIからデータを取得してDBに保存する
  21. 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
  22. 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
  23. 23. SlackとNotionを連携したチームタスク管理フロー
  24. 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
  25. 25. 🚀GitHubデプロイイベントをSlackに通知する
  26. 26. 🚨APIエラー発生時にSlackへアラートを送る
  27. 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
  28. 28. 📝エラーログをAirtableに自動記録する
  29. 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
  30. 30. 🔎ドキュメントRAG検索システムを構築する
  31. 31. 📬AIでメール内容を自動分類・ルーティングする
  32. 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
  33. 33. 📄npmライブラリを使ったPDF自動生成フロー
  34. 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
  35. 35. 🗂️Gitでワークフローをバージョン管理する
  36. 36. 🌍環境変数で本番・ステージングを切り替える
  37. 37. 👥チームでのワークフロー共同管理フロー
  38. 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
  39. 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
  40. 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
  41. 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
  42. 42. 🔔予約リマインダーを自動送信してノーショーを削減する
  43. 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
  44. 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
  45. 45. 🎉新入社員オンボーディングを完全自動化する

出典: https://docs.n8n.io/advanced-ai/langchain/