Dify RAGガイド2026: 自分のドキュメントから質問に答える
Retrieval-Augmented Generation(RAG)はDifyの最も強力な機能です。このガイドでは、回答する前にドキュメントを検索するAIの構築方法を詳しく説明します — 幻覚された推測ではなく、正確で根拠のある回答を提供できます。
Dify RAGとは?
RAGはRetrieval-Augmented Generation(検索強化生成)の略です。このテクニックによって、AIは一般的なトレーニングデータだけで回答するのではなく、まず独自のコンテンツを検索し、見つかった内容に基づいて回答を生成します。
GPT-4やClaudeなどの標準的なLLMは、内部ドキュメント、製品仕様、社内ポリシーについて質問されると幻覚(ハルシネーション)を起こします — そのデータを知らないからです。Dify RAGは、ファイルからナレッジベースを作成し、モデルが回答する前に最も関連性の高いテキストセクションをコンテキストとして注入することでこれを解決します。
結果:実際のデータから正確に回答し、ソースを引用し、情報が得られない場合は「わかりません」と言うAIチャットボット — 何かを作り上げることはありません。
Dify RAGの内部的な仕組み
パイプラインを理解することで、より良い設定ができます。ドキュメントをアップロードしてチャットボットに質問したときの処理の流れ:
ドキュメント取り込み
ファイルをアップロードすると、DifyがPDF、Wordドキュメント、Markdownなどからテキストコンテンツを抽出します。
チャンキング
テキストは検索精度を高めるために小さなセクション(通常500〜1000トークン)に分割されます。
埋め込み
各セクションはtext-embedding-3-smallのような埋め込みモデルを使ってベクトル(数値のリスト)に変換されます。
ベクトル保存
ベクトルはベクトルデータベースに保存されます(組み込み、pgvector、Qdrant、Weaviate、Milvus、またはPinecone)。
クエリ検索
ユーザーが質問すると、その質問も埋め込まれ、ベクトルストアから最も類似したセクションが取得されます。
コンテキスト注入
取得したセクションがLLMプロンプトにコンテキストとして注入されます。モデルはこの実際のデータに基づいて回答します。
ナレッジベースの設定
ナレッジベースはドキュメントをアップロードしてインデックス化する場所です。以下の手順に従ってください:
Difyを開く → 「ナレッジ」タブ
ナビゲーションの上部にある「ナレッジ」をクリック。すべてのドキュメントコレクションがここにあります。
新しいナレッジベースを作成
「+ナレッジを作成」をクリック。わかりやすい名前をつけてください(例:「製品ドキュメント」、「サポートFAQ」)。
ファイルをアップロード
ファイルをドラッグ&ドロップするか、ブラウザで選択。サポート形式:PDF、Word(.docx)、TXT、Markdown(.md)、HTML、CSV。複数ファイルを同時にアップロード可能。
チャンキング戦略を選択
ほとんどの場合は「自動」を選択。段落や見出しでドキュメントを分割します。密な技術的ドキュメントには:800トークンチャンクと150トークンオーバーラップで「カスタム」を使用。
埋め込みモデルを選択
埋め込みモデルを選択。OpenAIのtext-embedding-3-smallを推奨 — 高速で安価かつ正確。セルフホスティングでは、Ollamaを通じたnomic-embed-textがオフラインでも動作します。
ドキュメントをインデックス化
「保存して処理」をクリック。Difyがすべてをチャンク化・埋め込みします。ドキュメントのサイズによって1〜5分かかります。進捗バーで状況が確認できます。
アプリとRAGを連携させる
ナレッジベースがインデックス化されたら、チャットボットまたはエージェントに接続します:
スタジオのチャットボットまたはエージェントを開く
左パネルの「コンテキスト」セクションを探す
「+コンテキストを追加」をクリックしてナレッジベースを選択
取得モードを「セマンティック検索」(推奨、意味ベースの取得)または「全文検索」(キーワードマッチング)に設定
「Top K」を3〜5に設定(リクエストごとに取得するセクション数)。3から始めてください。
「スコアしきい値」を0.5で有効にして、無関係な結果をフィルタリング
プレビューパネルでドキュメントの質問を使ってテスト。ボットが正しい情報を提供しているか確認。
対応ベクトルデータベース
Difyは複数のベクトルストアをサポートしています。ほとんどのユーザーには組み込みストアで十分です。大規模なデプロイメント(数百万のドキュメント)には専用のベクトルデータベースに切り替えてください:
| ベクトルストア | セットアップ | 最適なケース | コスト |
|---|---|---|---|
| 組み込み(デフォルト) 推奨 | 不要 | ほとんどのユーザー — 最大約10万ドキュメント | 無料 |
| pgvector | PostgreSQL拡張機能 | 既存のPostgreSQLユーザー | 無料(セルフホスト) |
| Qdrant | Dockerコンテナ | セルフホスト、高パフォーマンス | 無料(セルフホスト) |
| Weaviate | DockerまたはCloud | マルチモーダルデータ(テキスト+画像) | 無料/有料Cloud |
| Milvus | DockerまたはZilliz Cloud | 数十億ベクトル、エンタープライズ | 無料/有料Cloud |
| Pinecone | APIキーのみ | フルマネージド、インフラ不要 | 有料SaaS |
最良の結果を得るRAGのヒント
これらの設定のヒントでRAGの精度が大幅に向上します:
最適なチャンクサイズ: 500〜1000トークン
小さすぎるとコンテキストが不足します。大きすぎると関連性が薄れます。ほとんどのドキュメントには、100トークンのオーバーラップで600トークンが最適です。
ソースドキュメントをクリーンアップ
繰り返されるヘッダー、フッター、ページ番号、ナビゲーション要素を削除してください。これらは検索品質を低下させるノイズを生み出します。
メタデータフィルタリングを活用
ドキュメントをカテゴリでラベル付け(例:「製品: 請求」、「タイプ: FAQ」)。フィルターにより関連するサブセットから精密な取得が可能になります。
トピック別にナレッジベースを分離
製品マニュアルと人事ポリシーを混在させないでください。別々のデータセットにより精度が向上します。複数のベースを1つのアプリに接続できます。
ハイブリッド検索を使用
Difyはハイブリッドモード(セマンティック+キーワード検索の組み合わせ)をサポートしています。製品コードや固有名詞などの正確な用語に最適です。
ログで取得を監視
アプリの「ログと注釈」で各リクエストに取得されたチャンクを確認できます。不良な回答のデバッグに活用してください。
取得モードの説明
Difyは3つの取得モードを提供しています。コンテンツタイプに応じて選択してください:
セマンティック検索
正確な単語が一致しなくても概念的に類似したコンテンツを見つけます。複雑なトピックへの自然言語の質問に最適。ベクトル類似度を使用します。
全文検索
従来の検索エンジンのようなキーワードベースの検索。製品コード、名前、IDなどの正確な用語に優れています。高速で予測可能。
ハイブリッド検索
セマンティック検索と全文検索をリランカーで組み合わせます。全体的な精度が最高ですが、低速です。リランカーモデルが必要(例:cohere-rerank)。
Difyをセルフホストして最大限に活用
Dify RAGはセルフホスティングで最も強力になります — 無制限のドキュメント、カスタムベクトルデータベース、完全なデータプライバシー。Hetznerで月額€3.79から始められます。