📚
概念 #Dify #RAG #ナレッジベース #ベクトル検索 #埋め込み #LLMOps 📚 Dify機能ガイド

ナレッジベース・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課金)高(意味的な類似度)
エコノミーキーワード転置インデックス低(無料)低(キーワードのみ)

検索方法

クエリ埋め込み ←→ チャンク埋め込み のコサイン類似度でランキング

強み: 意味的な言い換えに強い(「値段」「コスト」「費用」が同じ文書をヒット)
弱み: 固有名詞・型番・専門用語には弱い
BM25 アルゴリズムによるキーワードマッチング

強み: 固有名詞・コード・モデル番号の完全一致に強い
弱み: 言い換えや同義語に弱い
ベクトル検索スコア × α + 全文検索スコア × (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] が付く

実践ユースケース

出典: Dify公式ドキュメント https://docs.dify.ai