ステータス: 🟢 現役 最終更新: 2026-07-13 作成者: にしむら(学習キュレーター)
このファイルでできること
Difyのナレッジベース(RAG)を、既定値まかせではなく実務品質でチューニングできる。チャンクの分け方・埋め込みモデルの選び方・Rerankの入れ方を、顧客のドキュメント種別に合わせて判断できる。
使うタイミング:
- 顧客のRAGボットが「うまく答えない」時のチューニング
- 提案時に「どの精度を出せるか」を見積もる時
入門を先に読みたい人へ: RAGとは何かの概念は入門 ../04-rag.md を先に。Difyに依存しないRAGの一般理論は ../../tools/rag/ にあります。このファイルはDifyでの設計パラメータに絞った辞典です。
1. 処理フロー
` ドキュメント投入 ↓ [Document Parser] PDFパーサ・HTMLパーサ・表抽出 ↓ [Chunking] チャンキング戦略を選択 ↓ [Embedding] 埋め込みモデルでベクトル化 ↓ [Vector DB] インデックス保存(Weaviate等) ↓ [Retrieval] ユーザークエリ → ベクトル検索 → Rerank ↓ [LLM] コンテキスト付きで回答生成 `
品質を左右するのは主に Chunking と Retrieval の2工程。ここを調整する。
2. チャンキング戦略3種
| 戦略 | 特徴 | 向いているドキュメント | |---|---|---| | General(汎用) | 段落単位で分割。シンプル | 大量ドキュメントの一括処理 | | Parent-Child(親子) | 親チャンク(文脈保持)+子チャンク(精度重視) | 長い技術文書・仕様書・報告書 | | Q&A形式 | 質問-回答ペアを自動抽出 | FAQ・表形式データ・マニュアル |
パラメータ目安: Chunk Size 600トークン / Chunk Overlap 100トークン。
チューニングの順序: まず既定値(自動 or General)で作る → うまく答えない箇所を見つける → チャンクが大きすぎて無関係情報が混ざるなら小さく、文脈が切れているなら Parent-Child へ、という順で調整する。最初から凝らない。
3. 埋め込みモデル選定
| 用途 | 推奨モデル | |---|---| | 日本語対応・低コスト | text-embedding-3-small(OpenAI) / Jina AI Embeddings | | 高精度・多言語 | text-embedding-3-large(OpenAI) / multilingual-e5-large | | ローカル実行(プライバシー重視) | nomic-embed-text(Ollama経由) |
埋め込みモデルはLLMとは別に設定する。ナレッジ作成後にモデルを変えると再インデックスが必要になるので、最初の選定が重要。機密要件が厳しい顧客は Ollama 経由のローカル埋め込みを検討する。
4. Reranking(本番では必須)
ベクトル検索で拾った候補を、質問との関連度で並べ替え直す工程。
- 組み込みで選べるもの: Jina Reranker / Cohere Rerank
- なぜ必須か: ベクトル検索だけだと「似ているが的外れ」なチャンクが上位に来ることがある。Rerankで関連度順に整えると回答精度が体感で上がる。本番のRAGでは入れる前提で設計する。
関連ドキュメント
- Dify公式Docs — Knowledge
features.md— ナレッジベースの対応ファイル形式・チャンキングUI設定architecture.md— Vector DB を含むコンポーネント構成../../tools/rag/— Dify非依存のRAG一般理論README.md— 辞典の索引に戻る