メインコンテンツへスキップ
⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
ナレッジ検索ノードを使用して、既存のナレッジベースをワークフローに統合します。このノードは特定のナレッジからクエリに関連する情報を検索し、下流ノード(LLM など)で使用するコンテキスト情報として結果を出力します。 以下はチャットフローでナレッジ検索ノードを使用する例です:
  1. ユーザー入力ノードがユーザーのクエリを収集します。
  2. ナレッジ検索ノードが選択されたナレッジベースからユーザーのクエリに関連するコンテンツを検索し、結果を出力します。
  3. LLM ノードがユーザーのクエリと検索されたナレッジの両方に基づいてレスポンスを生成します。
  4. 回答ノードが LLM のレスポンスをユーザーに返します。
ナレッジ検索ノードの使用例 ナレッジ検索ノードを使用する前に、少なくとも1つの利用可能なナレッジベースがあることを確認してください。ナレッジベースの作成方法については、ナレッジを参照してください。
Dify Cloud では、ナレッジ検索の操作は契約プランに応じたレート制限が適用されます。詳細はナレッジリクエストレート制限を参照してください。

ナレッジ検索ノードの設定

ナレッジ検索ノードを正しく機能させるには、以下を指定する必要があります:
  • 何を検索するか(クエリ)
  • どこを検索するか(ナレッジベース)
  • どのように検索結果を処理するか(ノードレベルの検索設定)
また、ドキュメントのメタデータを使用してフィルタベースの検索を有効にし、検索精度をさらに向上させることもできます。

クエリの指定

選択したナレッジベースでノードが検索するクエリ内容を指定します。
  • クエリテキスト:テキスト変数を選択します。例えば、チャットフローでは userinput.query でユーザー入力を参照したり、ワークフローではカスタムのテキスト型ユーザー入力変数を使用したりできます。
  • クエリ画像:画像変数を選択します。例えば、ユーザー入力ノードを通じてユーザーがアップロードした画像を使用して画像検索を行います。画像サイズの上限は 2 MB です。
    セルフホスト環境では、環境変数 ATTACHMENT_IMAGE_FILE_SIZE_LIMIT で画像サイズの上限を調整できます。
    クエリ画像オプションは、少なくとも1つのマルチモーダルナレッジベースが追加されている場合のみ利用可能です。そのようなナレッジベースには Vision タグが付いており、マルチモーダル埋め込みモデルを使用していることを示しています。

検索対象のナレッジを選択

クエリに関連するコンテンツを検索するためのナレッジベースを1つ以上追加します。 複数のナレッジベースを追加した場合、まずすべてから同時に検索が行われ、その後ノードレベルの検索設定に従って結果が統合・処理されます。
Vision タグが付いたナレッジベースはクロスモーダル検索をサポートしており、セマンティックな関連性に基づいてテキストと画像の両方を検索できます。
追加したナレッジベースの横にある編集アイコンをクリックすると、設定を変更できます。

ノードレベルの検索設定

ナレッジベースから取得された検索結果をノードでどのように処理するかを微調整します。
検索設定には2つのレイヤーがあります——ナレッジベースレベルとナレッジ検索ノードレベルです。2つの連続したフィルターと考えてください:ナレッジベースの設定が最初の結果プールを決定し、ノードの設定がさらに結果を再ランク付けまたは絞り込みます。
  • Rerank 設定
    • 加重スコア:再ランク付け時のセマンティック類似度とキーワード一致の相対的な重み。セマンティックの重みを高くすると意味的な関連性が優先され、キーワードの重みを高くすると完全一致が優先されます。
      加重スコアは、追加されたすべてのナレッジベースが高品質タイプの場合にのみ利用可能です。
    • Rerank モデル:クエリとの関連度に基づいてすべての結果を再スコアリング・並べ替えする Rerank モデルです。
      マルチモーダルナレッジベースが追加されている場合は、マルチモーダル Rerank モデル(Vision タグ付き)も選択してください。そうでないと、検索された画像が再ランク付けと最終出力から除外されます。
  • トップ K:再ランク付け後に返す上位結果の最大数。Rerank モデルを選択している場合、この値はモデルの最大入力容量(一度に処理可能なテキスト量)に基づいて自動調整されます。
  • スコア閾値:返される結果の最低類似度スコア。この閾値未満の結果は除外されます。高めの閾値は厳密な関連性を、低めの閾値はより広範なマッチを含めます。

メタデータフィルタリングの有効化

既存のドキュメントメタデータを使用して、ナレッジベース内の特定のドキュメントに検索を制限し、検索精度を向上させます。 メタデータフィルタリングを有効にすると、ナレッジ検索ノードはナレッジベース全体ではなく、指定されたメタデータ条件に一致するドキュメントのみを検索します。大規模で多様なナレッジベースでの絞り込み検索に特に有用です。

出力

ナレッジ検索ノードは result という名前の変数として検索結果を出力します。これはドキュメントチャンクの配列で、各チャンクにはコンテンツ、メタデータ、タイトル、その他の属性が含まれます。 検索結果に画像添付が含まれる場合、result 変数には画像の詳細を含む files フィールドも含まれます。

LLM ノードとの連携

LLM ノードで検索結果をコンテキストとして使用するには:
  1. 高度な設定 > コンテキストで、ナレッジ検索ノードの result 変数を選択します。
  2. システム指示で Context 変数を参照します。
  3. 省略可:LLM が Vision 対応の場合、Vision を有効にして検索結果内の画像添付を処理させます。
    検索結果を Vision の入力として指定する必要はありません。Vision を有効にすると、LLM は検索された画像を自動的に処理します。
チャットフローでは、ナレッジを参照したレスポンスの横に引用がデフォルトで表示されます。キャンバス右上の機能引用と帰属をオフにすることで無効にできます。