2026年3月更新 RAGガイド 上級者向け

Dify RAGガイド2026: 自分のドキュメントから質問に答える

Retrieval-Augmented Generation(RAG)はDifyの最も強力な機能です。このガイドでは、回答する前にドキュメントを検索するAIの構築方法を詳しく説明します — 幻覚された推測ではなく、正確で根拠のある回答を提供できます。

Dify RAGとは?

RAGはRetrieval-Augmented Generation(検索強化生成)の略です。このテクニックによって、AIは一般的なトレーニングデータだけで回答するのではなく、まず独自のコンテンツを検索し、見つかった内容に基づいて回答を生成します。

GPT-4やClaudeなどの標準的なLLMは、内部ドキュメント、製品仕様、社内ポリシーについて質問されると幻覚(ハルシネーション)を起こします — そのデータを知らないからです。Dify RAGは、ファイルからナレッジベースを作成し、モデルが回答する前に最も関連性の高いテキストセクションをコンテキストとして注入することでこれを解決します。

結果:実際のデータから正確に回答し、ソースを引用し、情報が得られない場合は「わかりません」と言うAIチャットボット — 何かを作り上げることはありません。

ドキュメントから回答
幻覚を大幅に削減
特定のテキストパッセージを引用
PDF、Word、TXT、Markdownに対応
モデルのファインチューニング不要
いつでもナレッジベースを更新可能

Dify RAGの内部的な仕組み

パイプラインを理解することで、より良い設定ができます。ドキュメントをアップロードしてチャットボットに質問したときの処理の流れ:

1

ドキュメント取り込み

ファイルをアップロードすると、DifyがPDF、Wordドキュメント、Markdownなどからテキストコンテンツを抽出します。

2

チャンキング

テキストは検索精度を高めるために小さなセクション(通常500〜1000トークン)に分割されます。

3

埋め込み

各セクションはtext-embedding-3-smallのような埋め込みモデルを使ってベクトル(数値のリスト)に変換されます。

4

ベクトル保存

ベクトルはベクトルデータベースに保存されます(組み込み、pgvector、Qdrant、Weaviate、Milvus、またはPinecone)。

5

クエリ検索

ユーザーが質問すると、その質問も埋め込まれ、ベクトルストアから最も類似したセクションが取得されます。

6

コンテキスト注入

取得したセクションがLLMプロンプトにコンテキストとして注入されます。モデルはこの実際のデータに基づいて回答します。

重要なポイント: RAGはLLMを変更しません。生成の前に検索ステップを追加するだけです。つまり、モデルに触れることなくいつでもナレッジベースを更新できます。
1

ナレッジベースの設定

ナレッジベースはドキュメントをアップロードしてインデックス化する場所です。以下の手順に従ってください:

1

Difyを開く → 「ナレッジ」タブ

ナビゲーションの上部にある「ナレッジ」をクリック。すべてのドキュメントコレクションがここにあります。

2

新しいナレッジベースを作成

「+ナレッジを作成」をクリック。わかりやすい名前をつけてください(例:「製品ドキュメント」、「サポートFAQ」)。

3

ファイルをアップロード

ファイルをドラッグ&ドロップするか、ブラウザで選択。サポート形式:PDF、Word(.docx)、TXT、Markdown(.md)、HTML、CSV。複数ファイルを同時にアップロード可能。

4

チャンキング戦略を選択

ほとんどの場合は「自動」を選択。段落や見出しでドキュメントを分割します。密な技術的ドキュメントには:800トークンチャンクと150トークンオーバーラップで「カスタム」を使用。

5

埋め込みモデルを選択

埋め込みモデルを選択。OpenAIのtext-embedding-3-smallを推奨 — 高速で安価かつ正確。セルフホスティングでは、Ollamaを通じたnomic-embed-textがオフラインでも動作します。

6

ドキュメントをインデックス化

「保存して処理」をクリック。Difyがすべてをチャンク化・埋め込みします。ドキュメントのサイズによって1〜5分かかります。進捗バーで状況が確認できます。

ヒント: きれいにフォーマットされたドキュメントはより良くインデックス化されます。検索品質を向上させるために、PDFをアップロードする前にヘッダー、フッター、ページ番号、定型テキストを削除してください。
2

アプリとRAGを連携させる

ナレッジベースがインデックス化されたら、チャットボットまたはエージェントに接続します:

1

スタジオのチャットボットまたはエージェントを開く

2

左パネルの「コンテキスト」セクションを探す

3

「+コンテキストを追加」をクリックしてナレッジベースを選択

4

取得モードを「セマンティック検索」(推奨、意味ベースの取得)または「全文検索」(キーワードマッチング)に設定

5

「Top K」を3〜5に設定(リクエストごとに取得するセクション数)。3から始めてください。

6

「スコアしきい値」を0.5で有効にして、無関係な結果をフィルタリング

7

プレビューパネルでドキュメントの質問を使ってテスト。ボットが正しい情報を提供しているか確認。

プロのヒント: システムプロンプトに追加:「提供されたコンテキストから回答する際は、常にソースドキュメントの名前を述べてください。」これにより、どのドキュメントがソースとして使われたか透明性が増します。
3

対応ベクトルデータベース

Difyは複数のベクトルストアをサポートしています。ほとんどのユーザーには組み込みストアで十分です。大規模なデプロイメント(数百万のドキュメント)には専用のベクトルデータベースに切り替えてください:

ベクトルストア セットアップ 最適なケース コスト
組み込み(デフォルト) 推奨 不要 ほとんどのユーザー — 最大約10万ドキュメント 無料
pgvector PostgreSQL拡張機能 既存のPostgreSQLユーザー 無料(セルフホスト)
Qdrant Dockerコンテナ セルフホスト、高パフォーマンス 無料(セルフホスト)
Weaviate DockerまたはCloud マルチモーダルデータ(テキスト+画像) 無料/有料Cloud
Milvus DockerまたはZilliz Cloud 数十億ベクトル、エンタープライズ 無料/有料Cloud
Pinecone APIキーのみ フルマネージド、インフラ不要 有料SaaS
推奨: まず組み込みベクトルストアから始めてください。設定不要でほとんどのプロジェクトで問題なく動作します。ドキュメントチャンクが10万件を超える場合のみ外部ストアに切り替えてください。
4

最良の結果を得るRAGのヒント

これらの設定のヒントでRAGの精度が大幅に向上します:

最適なチャンクサイズ: 500〜1000トークン

小さすぎるとコンテキストが不足します。大きすぎると関連性が薄れます。ほとんどのドキュメントには、100トークンのオーバーラップで600トークンが最適です。

ソースドキュメントをクリーンアップ

繰り返されるヘッダー、フッター、ページ番号、ナビゲーション要素を削除してください。これらは検索品質を低下させるノイズを生み出します。

メタデータフィルタリングを活用

ドキュメントをカテゴリでラベル付け(例:「製品: 請求」、「タイプ: FAQ」)。フィルターにより関連するサブセットから精密な取得が可能になります。

トピック別にナレッジベースを分離

製品マニュアルと人事ポリシーを混在させないでください。別々のデータセットにより精度が向上します。複数のベースを1つのアプリに接続できます。

ハイブリッド検索を使用

Difyはハイブリッドモード(セマンティック+キーワード検索の組み合わせ)をサポートしています。製品コードや固有名詞などの正確な用語に最適です。

ログで取得を監視

アプリの「ログと注釈」で各リクエストに取得されたチャンクを確認できます。不良な回答のデバッグに活用してください。

取得モードの説明

Difyは3つの取得モードを提供しています。コンテンツタイプに応じて選択してください:

推奨

セマンティック検索

正確な単語が一致しなくても概念的に類似したコンテンツを見つけます。複雑なトピックへの自然言語の質問に最適。ベクトル類似度を使用します。

全文検索

従来の検索エンジンのようなキーワードベースの検索。製品コード、名前、IDなどの正確な用語に優れています。高速で予測可能。

ハイブリッド検索

セマンティック検索と全文検索をリランカーで組み合わせます。全体的な精度が最高ですが、低速です。リランカーモデルが必要(例:cohere-rerank)。

Difyをセルフホストして最大限に活用

Dify RAGはセルフホスティングで最も強力になります — 無制限のドキュメント、カスタムベクトルデータベース、完全なデータプライバシー。Hetznerで月額€3.79から始められます。

Difyセルフホスティングを始める → Dify入門チュートリアル Difyワークフローガイド