コンテンツの分割モードを選択した後、構造化されたコンテンツのインデックス方法検索設定を行います。

インデックス方法の設定

検索エンジンが効率的なインデックスアルゴリズムを通じてユーザーの質問に最も関連するウェブページコンテンツをマッチングするように、インデックス方法の適切さはLLMがナレッジベース内のコンテンツを検索する効率と回答の正確性に直接影響します。

高品質エコノミーの2種類のインデックス方法を提供しており、それぞれ異なる検索設定オプションがあります:

元のQ&Aモード(コミュニティ版のみ対応)は、高品質インデックス方法のオプションになりました。

高品質

高品質モードでは、Embeddingモデルを使用して、分割されたテキストブロックを数値ベクトルに変換し、大量のテキスト情報をより効果的に圧縮・保存します。これによりユーザーの質問とテキスト間のマッチングがより正確になります

コンテンツブロックをベクトル化してデータベースに登録した後、ユーザーの質問にマッチするコンテンツブロックを効果的に取り出す検索方法が必要です。高品質モードでは、ベクトル検索、全文検索、ハイブリッド検索の3つの検索設定を提供しています。各設定の詳細については、検索設定を参照してください。

高品質モードを選択した後、現在のナレッジベースのインデックス方法を後から**「エコノミー」インデックスモード**にダウングレードすることはできません。切り替えが必要な場合は、ナレッジベースを新しく作成し、インデックス方法を再選択することをお勧めします。

Embedding技術とベクトルについての詳細は、「Embedding技術とDify」を参照してください。

Q&Aモードの有効化(オプション、コミュニティ版のみ)

このモードを有効にすると、システムはアップロードされたテキストを分割し、各分割のコンテンツを要約して自動的にQ&Aマッチングペアを生成します。一般的な「Q to P」(ユーザーの質問がテキスト段落にマッチング)戦略とは異なり、QAモードでは「Q to Q」(質問が質問にマッチング)戦略を採用しています。

これは「よくある質問」文書内のテキストが通常、完全な文法構造を持つ自然言語であるため、Q to Qモードによって質問と回答のマッチングがより明確になり、同時に高頻度で類似度の高い質問のシナリオにも対応できるからです。

Q&Aモードは「中国語、英語、日本語」の3言語のみサポートしています。このモードを有効にするとより多くのLLM Tokensを消費する可能性があり、エコノミーインデックス方法は使用できません。

ユーザーが質問すると、システムは最も類似した質問を見つけ、対応する分割を回答として返します。この方法はより精密で、ユーザーの質問に直接マッチングするため、ユーザーが本当に必要とする情報をより正確に検索できます。

検索方法の指定

ナレッジベースはユーザーのクエリを受け取った後、事前設定された検索方法に従って既存の文書内で関連コンテンツを検索し、言語モデルが高品質な回答を生成するために高度に関連する情報の断片を抽出します。これはLLMが取得できる背景情報を決定し、生成結果の正確性と信頼性に影響を与えます。

一般的な検索方法には、ベクトル類似度に基づく意味検索と、キーワードに基づく精密マッチングがあります。前者はテキストコンテンツブロックと質問クエリをベクトルに変換し、ベクトル類似度の計算によってより深いレベルの意味的関連性をマッチングします。後者は検索エンジンでよく使われる検索方法である逆引きインデックスを通じて、質問と重要なコンテンツをマッチングします。

異なるインデックス方法には異なる検索設定があります。

高品質インデックス

高品質インデックス方法では、Difyはベクトル検索、全文検索、ハイブリッド検索の設定を提供しています:

ベクトル検索

定義: ユーザーが入力した質問をベクトル化し、クエリテキストの数学ベクトルを生成し、クエリベクトルとナレッジベース内の対応するテキストベクトル間の距離を比較し、隣接する分割コンテンツを探します。

ベクトル検索設定:

Rerankモデル: デフォルトでは無効です。有効にすると、ベクトル検索によって呼び出されたコンテンツセグメントを第三者のRerankモデルを使用して再度並べ替え、並べ替え結果を最適化します。LLMがより正確なコンテンツを取得し、出力の品質を向上させるのを助けます。このオプションを有効にする前に、「設定」→「モデルプロバイダー」に移動し、RerankモデルのAPIキーを事前に設定する必要があります。

この機能を有効にすると、Rerankモデルのトークンが消費されます。詳細については、対応するモデルの価格説明を参照してください。

TopK: ユーザーの質問との類似度が最も高いテキスト断片をフィルタリングするために使用されます。システムは同時に使用するモデルのコンテキストウィンドウサイズに基づいて断片の数を動的に調整します。デフォルト値は3です。値が高いほど、呼び出されるテキストセグメントの予想数が多くなります。

Scoreしきい値: テキスト断片をフィルタリングする類似度のしきい値を設定するために使用され、設定されたスコアを超えるテキスト断片のみを呼び出します。デフォルト値は0.5です。値が高いほど、テキストと質問の類似度の要求が高くなり、呼び出されるテキストの予想数も少なくなります。

TopKとScore設定はRerankステップでのみ有効であるため、RerankモデルをRerankモデルを追加して有効にする必要があります。


全文検索

定義: キーワード検索、つまり文書内のすべての語彙のインデックス作成です。ユーザーが質問を入力した後、明示的なキーワードによってナレッジベース内の対応するテキスト断片をマッチングし、キーワードに合致するテキスト断片を返します。検索エンジンの明示的な検索と類似しています。

Rerankモデル: デフォルトでは無効です。有効にすると、全文検索によって呼び出されたコンテンツセグメントを第三者のRerankモデルを使用して再度並べ替え、並べ替え結果を最適化します。LLMに再並べ替えされたセグメントを送信し、出力コンテンツの品質を向上させます。このオプションを有効にする前に、「設定」→「モデルプロバイダー」に移動し、RerankモデルのAPIキーを事前に設定する必要があります。

この機能を有効にすると、Rerankモデルのトークンが消費されます。詳細については、対応するモデルの価格説明を参照してください。

TopK: ユーザーの質問との類似度が最も高いテキスト断片をフィルタリングするために使用されます。システムは同時に使用するモデルのコンテキストウィンドウサイズに基づいて断片の数を動的に調整します。システムのデフォルト値は3です。値が高いほど、呼び出されるテキストセグメントの予想数が多くなります。

Scoreしきい値: テキスト断片をフィルタリングする類似度のしきい値を設定するために使用され、設定されたスコアを超えるテキスト断片のみを呼び出します。デフォルト値は0.5です。値が高いほど、テキストと質問の類似度の要求が高くなり、呼び出されるテキストの予想数も少なくなります。

TopKとScore設定はRerankステップでのみ有効であるため、RerankモデルをRerankモデルを追加して有効にする必要があります。


ハイブリッド検索

定義: 全文検索とベクトル検索、またはRerankモデルを同時に実行し、クエリ結果からユーザーの質問に最もマッチする最良の結果を選択します。

ハイブリッド検索設定では、**「重み付け設定」または「Rerankモデル」**の有効化を選択できます。

  • 重み付け設定

    ユーザーが意味的優先度とキーワード優先度にカスタム重みを付けることができます。キーワード検索はナレッジベース内での全文検索(Full Text Search)を指し、意味検索はナレッジベース内でのベクトル検索(Vector Search)を指します。

    • 意味値を1にする

      意味検索モードのみを有効にします。Embeddingモデルを活用することで、クエリに含まれる正確な単語がナレッジベースになくても、ベクトル距離を計算することで検索の深度を高め、正確なコンテンツを返すことができます。また、多言語コンテンツを処理する必要がある場合、意味検索は異なる言語間の意味変換をキャプチャし、より正確なクロス言語検索結果を提供できます。

    • キーワード値を1にする

      キーワード検索モードのみを有効にします。ユーザーが入力した情報テキストをナレッジベース全体でマッチングし、ユーザーが正確な情報や用語を知っているシナリオに適しています。この方法は消費する計算リソースが比較的少なく、大量の文書を含むナレッジベース内での迅速な検索に適しています。

    • キーワードと意味の重みをカスタマイズする

      異なる値を1に引き上げるだけでなく、両者の重みを継続的に調整して、ビジネスシナリオに合った最適な重み比率を見つけることができます。

意味検索とは、ユーザーの質問とナレッジベースコンテンツ内のベクトル間の距離を比較することを指します。距離が近いほど、マッチングの確率が高くなります。参考文献:「Dify:Embedding技術とDifyナレッジベースの設計/計画」


  • Rerankモデル

    デフォルトでは無効です。有効にすると、ハイブリッド検索によって呼び出されたコンテンツセグメントを第三者のRerankモデルを使用して再度並べ替え、並べ替え結果を最適化します。LLMに再並べ替えされたセグメントを送信し、出力コンテンツの品質を向上させます。このオプションを有効にする前に、「設定」→「モデルプロバイダー」に移動し、RerankモデルのAPIキーを事前に設定する必要があります。

    この機能を有効にすると、Rerankモデルのトークンが消費されます。詳細については、対応するモデルの価格説明を参照してください。

**「重み付け設定」「Rerankモデル」**設定では、以下のオプションを有効にすることができます:

TopK: ユーザーの質問との類似度が最も高いテキスト断片をフィルタリングするために使用されます。システムは同時に使用するモデルのコンテキストウィンドウサイズに基づいて断片の数を動的に調整します。システムのデフォルト値は3です。値が高いほど、呼び出されるテキストセグメントの予想数が多くなります。

Scoreしきい値: テキスト断片をフィルタリングする類似度のしきい値を設定するために使用されます。つまり、設定されたスコアを超えるテキスト断片のみを呼び出します。システムはデフォルトでこの設定を無効にしています。つまり、呼び出されたテキスト断片の類似値をフィルタリングしません。有効にするとデフォルト値は0.5です。値が高いほど、呼び出されるテキストの予想数は少なくなります。

もっと読む

検索設定を指定した後、以下のドキュメントを参照して、実際のシナリオでのキーワードとコンテンツブロックのマッチング状況を確認できます。

リコールテスト/引用と帰属

実際のシナリオでのキーワードとコンテンツブロックのマッチング状況を確認する