メインコンテンツへスキップ
⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。

はじめに

知識検索ノードを使用すると、既存のナレッジベースを Chatflow や Workflow に統合できます。 このノードは指定されたナレッジからクエリに関連する情報を検索し、その結果を下流ノード(例:LLM)で利用できるコンテキスト情報として出力します。 以下は Chatflow における 知識検索ノード の利用例です:
  1. ユーザー入力 ノードがユーザーの質問を収集します。
  2. 知識検索 ノードが選択されたナレッジベースから関連情報を検索し、結果を出力します。
  3. LLM ノードがユーザー質問と検索結果の両方をもとに回答を生成します。
  4. 回答 ノードが LLM の出力をユーザーへ返します。
知識検索ノードの使用例
知識検索ノードを使用する前に、少なくとも1つの利用可能なナレッジベースが存在することを確認してください。ナレッジベースの作成方法については、ナレッジ を参照してください。

知識検索ノードの設定

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

クエリの指定

ノードが選択されたナレッジベースで検索する対象を指定します。
  • クエリテキスト:テキスト変数を選択します。たとえば、Chatflow では userinput.query(ユーザー入力ノードの入力)を指定できます。Workflow ではテキスト型のユーザー入力変数を利用します。 クエリ画像:画像検索を行う場合は、ユーザー入力ノードを通じてアップロードされた画像など、画像変数を選択してください。最大サイズは 2 MB です。
    自己ホスティング環境では、環境変数 ATTACHMENT_IMAGE_FILE_SIZE_LIMIT を変更することで画像サイズ上限を調整できます。
    クエリ画像オプションは、少なくとも1つのマルチモーダルナレッジベースが追加されている場合のみ利用できます。そのようなナレッジベースにはVisionアイコンが表示されており、マルチモーダル埋め込みモデルを使用していることを示しています。

検索対象ナレッジベースの選択

ノードで検索対象とするナレッジベースを1つ以上追加します。 複数のナレッジベースを追加した場合、すべてのナレッジベースから同時に検索を行い、その結果を統合してノードレベルの検索設定に従って処理します。
Visionアイコンが付いたナレッジベースは、セマンティックな関連性に基づいてテキストと画像の両方をクロスモーダルで検索できます。
ノード内で任意のナレッジベースの 編集 アイコンをクリックすると、直接その設定を変更できます。詳細な設定方法については、ナレッジ設定の管理をご覧ください。

ノードレベルの検索設定

ナレッジベースから取得した検索結果を、ノード内でどのように絞り込み・再ランク付けするかを調整できます。
検索設定には2つのレイヤー(階層)があります。ナレッジベースレベルの設定が最初の検索プールを決定し、ノードレベルの設定がその結果を再スコアリングまたは絞り込みします。
  • Rerank 設定
    • ウェイト設定: 再ランク付け時におけるセマンティック類似度(意味の近さ)とキーワード一致の比重を調整します。セマンティックの比重を高くすると意味的関連性を重視し、キーワードの比重を高くすると正確な一致を重視します。
      ウェイト設定 は、追加したナレッジベースがすべて「高品質」タイプである場合に利用できます。
    • Rerank モデル: クエリとの関連度に基づいてすべての検索結果を再スコアリング・並べ替えします。
      選択したナレッジベースの中にマルチモーダル対応のものが含まれている場合は、Visionアイコンが表示されたマルチモーダル再ランクモデルを選択してください。そうでない場合、検索された画像は再ランクおよび最終出力から除外されます。
  • トップ K: 再ランク後に返す最大件数を指定します。 Rerank モデルを選択している場合、この値はモデルが処理可能な最大入力サイズ(トークン上限)に応じて自動的に調整されます。
    選択したナレッジベースの中にマルチモーダル対応のものが含まれている場合は、Visionアイコンが表示されたマルチモーダル再ランクモデルを選択してください。そうでない場合、検索された画像は再ランクおよび最終出力から除外されます。
  • スコア閾値: 結果を返す際の最低スコア(類似度)を指定します。この閾値未満の結果は除外されます。高めに設定すると関連性の厳密な検索が行われ、低めにするとより広範なマッチを含めることができます。

メタデータフィルタの有効化

ナレッジベース内のドキュメントメタデータを利用して、特定の条件に合致するドキュメントのみを検索対象とすることができます。これにより、大規模または多様なナレッジベース内での検索精度が向上します。
ドキュメントメタデータの作成と管理については、メタデータ を参照してください。

出力

知識検索ノードの出力は result という変数として返されます。この変数は検索されたドキュメントチャンクの配列で、各チャンクには内容・メタデータ・タイトルなどの情報が含まれます。 検索結果に画像が含まれる場合、result 変数には画像の詳細が格納された files フィールドも含まれます。

LLM ノードとの連携

検索結果を活用して LLM ノードで質問応答を行うには:
  1. コンテキスト フィールドで、知識検索ノードの result 変数を選択します。
  2. LLM のプロンプト入力欄では、コンテキスト 変数とユーザー入力変数(例:Chatflow の userinput.query)の両方を参照してください。
  3. (任意)LLMがVision機能に対応している場合は、Visionを有効にすると、コンテキスト変数内の画像添付を解釈できるようになります。
    Visionを有効にすると、LLMはコンテキスト変数内の画像を直接理解できます。別途Vision入力変数を設定する必要はありません。
LLM ノード設定の例
Dify Cloud では、知識検索の操作は契約プランに応じたレートリミット(リクエスト上限)が適用されます。詳細は ナレッジベースの要求頻度制限 を参照してください。