📚
ナレッジベース・RAGパイプライン
DifyのRAG機能——文書取り込みからチャンキング・インデックス・検索戦略まで。精度を上げるための設計を解説。
RAG(Retrieval-Augmented Generation)とは
LLM に「知識」を与える手法。LLM 自体のパラメータには含まれない社内文書・最新情報・専門知識を、検索して文脈に差し込むことで回答品質を上げる。
通常の LLM 推論:
ユーザー質問 → [LLM] → 回答
(学習データの知識のみ)
RAG:
ユーザー質問 ──→ [ベクトル検索] ──→ 関連文書チャンク
│ │
└──────────────────────────────┘
↓
[LLM + 文書コンテキスト] → 根拠ある回答
RAGパイプライン全体図
【インデックス時(1回)】
文書ファイル
│
▼
[テキスト抽出](PDF/PPT/MD/TXT/Notion/Web)
│
▼
[チャンキング](文書を小さな断片に分割)
│
▼
[埋め込み生成](テキスト → ベクトル)
│
▼
[ベクトルDB保存](Weaviate / Qdrant / Milvus 等)
【検索時(各クエリ)】
ユーザークエリ
│
▼
[クエリ埋め込み生成]
│
▼
[類似度検索](コサイン類似度等)
│
▼
[上位Kチャンクを取得] → LLM コンテキストへ差し込む
文書取り込みソース
| ソース種別 | 対応形式・サービス |
|---|---|
| ローカルファイル | PDF, DOCX, TXT, Markdown, HTML, CSV, EPUB |
| クラウドストレージ | Amazon S3, Azure Blob, Alibaba OSS |
| Webクローラー | Jina Reader, Firecrawl |
| SaaSサービス | Notion |
| カスタム | API経由でデータプッシュ可 |
チャンキング戦略
文書を小さな「チャンク」に分割する。チャンクの質が検索精度に直結する。
一般(General)チャンキング
文書全体を固定サイズで分割:
├── 最大チャンクサイズ:1000トークン(デフォルト)
├── オーバーラップ:50トークン(文脈の連続性を保つ)
└── 区切り文字:改行・句点を優先して分割
向いている文書: 一般的な文章・メール・Wiki
親子(Parent-Child)チャンキング
大きな親チャンク + 検索用の小さな子チャンク:
[親: 1000トークン]──┬──[子: 200トークン]
├──[子: 200トークン]
└──[子: 200トークン]
検索: 子チャンクでヒット → 親チャンクを LLM へ渡す
→ 文脈を保ちながら精度の高いヒットが可能
向いている文書: 技術文書・長い論文・マニュアル
Q&A ペアチャンキング
文書からQ&Aペアを自動生成してインデックス:
元文書:「製品Aの返品期限は購入から30日以内です。」
↓
Q: 製品Aの返品期限はいつまでですか?
A: 購入から30日以内です。
検索: ユーザー質問 → Q に対して類似度検索
→ FAQ・サポートドキュメントに特に有効
インデックスモード
| モード | 仕組み | コスト | 精度 |
|---|---|---|---|
| 高品質 | ベクトル埋め込み | 高(API課金) | 高(意味的な類似度) |
| エコノミー | キーワード転置インデックス | 低(無料) | 低(キーワードのみ) |
検索方法
ベクトル検索(Semantic Search)
クエリ埋め込み ←→ チャンク埋め込み のコサイン類似度でランキング
強み: 意味的な言い換えに強い(「値段」「コスト」「費用」が同じ文書をヒット)
弱み: 固有名詞・型番・専門用語には弱い
全文検索(Full-text Search)
BM25 アルゴリズムによるキーワードマッチング
強み: 固有名詞・コード・モデル番号の完全一致に強い
弱み: 言い換えや同義語に弱い
ハイブリッド検索(Hybrid Search)
ベクトル検索スコア × α + 全文検索スコア × (1-α)
α = 0.7 の場合: ベクトル70% + 全文30%
両者の弱点を補い合うため、実プロダクトではハイブリッドが最も安定する
Knowledge Retrieval ノードの設定
ノード設定:
knowledge_base: my-docs # 対象のナレッジベース
retrieval_mode: hybrid # vector / fulltext / hybrid
top_k: 5 # 取得するチャンク数
score_threshold: 0.5 # この類似度以下は除外(0〜1)
rerank: # オプション:リランキングモデル
enabled: true
model: cohere-rerank-v3
マルチモーダルRAG(v1.11.0+)
テキストだけでなく画像も検索対象にできる:
対応検索パターン:
テキスト → テキスト(従来のRAG)
テキスト → 画像(文章で画像を検索)
画像 → テキスト(画像で関連文書を検索)
画像 → 画像(類似画像検索)
実装例: 製品カタログ(画像+仕様テキスト)を統一空間でインデックス
引用・出典表示
Knowledge Retrieval ノードは参照したチャンクの情報も返す:
- 出典ドキュメント名
- ページ番号
- テキスト断片
Chatflow の Answer ノードで「出典を表示」設定を有効にすると
ユーザーへの回答に [出典: 社内規定2024.pdf - p.12] が付く
実践ユースケース
- RAGチャットボット構築 — ナレッジベースと Chatflow を組み合わせた実装例
- PDFドキュメント分析パイプライン — Workflow で PDF を自動解析する例
- 1. 🧩Dify概要・アプリ種別・アーキテクチャ
- 2. 🔀ワークフロー vs チャットフロー
- 3. ⚙️ノード一覧と制御フロー(並列・イテレーション)
- 4. 📚ナレッジベース・RAGパイプライン
- 5. 🤖モデルプロバイダー統合(OpenAI・Anthropic・OSS)
- 6. 🤖エージェント機能(自律推論・ReAct)
- 7. 🔧ツール・プラグインエコシステム
- 8. 📊変数システムとデータフロー
- 9. 🚀API・公開・デプロイオプション
- 10. 🔍可観測性・デバッグ・評価(LangSmith等)
出典: Dify公式ドキュメント https://docs.dify.ai