> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# アプリ内でのナレッジベース統合

> アプリにナレッジベースを関連付け、検索設定を構成して回答の精度を高めます

## ナレッジベースの引用プロセス

ナレッジベースは、大規模言語モデルに対して外部知識を提供し、ユーザーの質問に正確に回答するために使用されます。Dify の [すべてのアプリタイプ](/ja/2.7.x/learn/key-concepts#difyアプリ) 内で作成されたナレッジベースを関連付けることができます。

チャットボットを例にすると、以下の手順で進めます：

1. **ナレッジ** > **ナレッジを作成** > **ファイルをアップロード** に進みます。
2. **スタジオ** > **アプリを作成** > **チャットボットを選択** に進みます。
3. **コンテキスト** に進んで **追加** をクリックし、作成済みのナレッジベースを選択します。
4. **コンテキスト設定** で **検索設定** を構成します。
5. **機能を追加** で **引用と帰属** を有効にします。
6. **デバッグとプレビュー** で、ナレッジベースに関連するユーザーの質問を入力してデバッグします。
7. デバッグが完了したら、**公開** ボタンをクリックして、自社のナレッジベースに基づく AI アプリケーションを公開します。

## ナレッジベースの関連付けと検索モードの設定

複数のナレッジベースを利用するアプリケーションでは、検索されるコンテンツの精度を高めるために検索モードを設定することが重要です。ナレッジベースの検索モードを設定するには、**コンテキスト** > **検索設定** > **Rerank 設定** に進みます。

### 検索設定

複数リコールモードでは、検索器はアプリに関連付けられたすべてのナレッジベースから、ユーザーの問題に関連するテキスト内容を検索します。そして、複数リコールの関連文書結果を統合します。以下は複数リコールモードの技術フローチャートです：

<Frame>
  ![複数リコールモードの技術フローチャート](https://assets-docs.dify.ai/2025/04/745b9de1cdd9465bfbad2ddc5f27bd12.png)
</Frame>

ユーザーの意図に基づいて、すべての **コンテキスト** に追加されたナレッジベースを同時に検索し、関連するテキスト断片を複数のナレッジベースからクエリし、ユーザーの問題に最も一致する内容を選択します。最適なコンテンツを Rerank 戦略で見つけてユーザーに回答します。この方法はより科学的な検索原理です。

<Frame>
  ![Rerank 戦略による複数ナレッジベースの検索](https://assets-docs.dify.ai/2025/04/7bbd3dd734d9ebc83cef0e3244fa4fb7.png)
</Frame>

例：アプリ A のコンテキストには、K1、K2、K3 の 3 つのナレッジベースが関連付けられています。ユーザーが問い合わせを入力すると、3 つのナレッジベースで検索を行い、複数の内容をまとめます。最適な内容を見つけるためには、Rerank 戦略を使用してユーザーの問題に最も関連する内容を特定し、結果をより正確で信頼性の高いものにします。

実際の質疑応答シーンでは、各ナレッジベースのコンテンツの出典や検索方法が異なる場合があります。複数の混合コンテンツが返される検索に対して、Rerank 戦略はより科学的なコンテンツの並べ替えメカニズムです。これにより、候補コンテンツリストをユーザーの問題に一致させ、複数の知識間の結果の順序を改善し、最も一致するコンテンツを見つけて回答の質とユーザーエクスペリエンスを向上させることができます。

Rerank の使用コストとビジネス要件を考慮すると、複数リコールモードは次の 2 つの Rerank 設定を提供します：

### 重み設定

この設定には外部の Rerank モデルの構成は不要で、コンテンツの再並べ替えに **追加コストは発生しません**。セマンティクスまたはキーワードの重み比率を設定します。

* **セマンティック値が 1 の場合**

  セマンティック検索モードが有効になります。このモードでは、埋め込みモデルを利用して、クエリに正確な単語がナレッジベースに存在しない場合でも、ベクトル距離を計算することで検索の精度を向上させ、適切なコンテンツを返すことができます。また、複数言語のコンテンツを扱う場合には、セマンティック検索が異なる言語間の意味を把握し、より正確なクロス言語検索結果を提供します。
* **キーワード値が 1 の場合**

  この場合、キーワード検索モードが有効になります。ユーザーが入力した情報テキストがナレッジベース全体と一致し、ユーザーが正確な情報や用語を把握している場合に適しています。この方法は計算リソースを少なく消費し、大量の文書を迅速に検索するのに適しています。
* **カスタムキーワードとセマンティックの重み**

  セマンティック検索またはキーワード検索モードのいずれかを選択する代わりに、柔軟なカスタム重み設定も利用可能です。両者の重みを調整し続けることで、ビジネスシナリオに最も適した重み比率を見つけることができます。

**Rerank モデル**

Rerank モデルは外部のスコアリングシステムで、ユーザーの質問と各候補ドキュメントの類似度スコアを計算します。これにより、セマンティックランキングの結果が改善され、類似度スコアの高い順に並べ替えたドキュメントリストが返されます。

この方法には追加のコストが発生しますが、ナレッジベースのコンテンツが複雑な場合に特に適しています。セマンティッククエリとキーワードマッチングのコンテンツが混在している場合や、複数言語のコンテンツが含まれる場合に優れた結果を提供します。

Dify は現在、複数の Rerank モデルをサポートしており、**モデルプロバイダー** ページで Rerank モデル（例：Cohere、Jina AI など）の API キーを入力することができます。

<Frame>
  ![モデルプロバイダーでの Rerank モデル設定](https://assets-docs.dify.ai/2025/04/f4f4906edc67f6052a38c0a605b58469.png)
</Frame>

**調整可能なパラメータ**

* **Top K**

  ユーザーの質問に最も類似したテキストセグメントを選択するために使用されます。システムはモデルの選択に基づいてコンテキストウィンドウサイズを動的に調整し、セグメントの数を増やします。数値が高いほど、リコールされるテキストセグメントの数が増加します。
* **スコアの閾値**

  テキストセグメントの選択に使用される類似性の閾値を設定します。ベクトル検索の類似性スコアは、設定したスコアを超える必要があり、数値が高いほどリコールされるテキストの数が減少します。

複数のリコールモードを利用することで、高品質なリコール効果を得ることができるため、リコールモードを複数のリコールモードに設定することを強くお勧めします。
