⚠️ このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
1 ナレッジベースの引用プロセス
ナレッジベースは、大言語モデルに対して外部知識を提供し、ユーザーの質問に正確に回答するために使用されます。Difyのすべてのアプリタイプ内で作成されたナレッジベースを関連付けることができます。 チャットボットを例にすると、以下の手順で進めます:- スタジオ — アプリを作成 — チャットボットを作成に進む
- コンテキスト設定に進み、追加をクリックし、作成済みのナレッジベースを選択
- コンテキスト設定 — パラメータ設定内でリコール策略を設定
- ナレッジベース内のドキュメント検索を最適化するには、メタデータフィルタリングを活用します。
- コンテキスト設定 - 検索設定で検索パラメータを構成します。
- 機能追加内で引用と帰属をオンにする
- デバッグとプレビュー内でナレッジベース関連のユーザー質問を入力してデバッグ
- デバッグが完了したら、保存して公開し、AIナレッジベースQ&Aアプリケーションとして公開
ナレッジベースの関連付けとリコールモードの設定
現在のアプリケーションのコンテキストが複数のナレッジベースに関連している場合、検索結果をより正確にするためにリコールモードを設定する必要があります。コンテキスト→パラメータ設定→リコール設定 に進み、ナレッジベースのリコールモードを選択します。検索設定
複数リコールモードでは、検索器はアプリに関連付けられたすべてのナレッジベースから、ユーザーの問題に関連するテキスト内容を検索します。そして、複数リコールの関連文書結果を統合します。以下は複数リコールモードの技術フローチャートです:

重み設定
この設定には外部のRerankモデルの構成は不要で、コンテンツの再並べ替えに追加コストは発生しません。セマンティクスまたはキーワードの重み比率を設定します。- セマンティック値が1の場合 セマンティック検索モードが有効になります。このモードでは、埋め込みモデルを利用して、クエリに正確な単語がナレッジベースに存在しない場合でも、ベクトル距離を計算することで検索の精度を向上させ、適切なコンテンツを返すことができます。また、複数言語のコンテンツを扱う場合には、セマンティック検索が異なる言語間の意味を把握し、より正確なクロス言語検索結果を提供します。
- キーワード値が1の場合 この場合、キーワード検索モードが有効になります。ユーザーが入力した情報テキストがナレッジベース全体と一致し、ユーザーが正確な情報や用語を把握している場合に適しています。この方法は計算リソースを少なく消費し、大量の文書を迅速に検索するのに適しています。
- カスタムキーワードとセマンティックの重み セマンティック検索またはキーワード検索モードのいずれかを選択する代わりに、柔軟なカスタム重み設定も利用可能です。両者の重みを調整し続けることで、ビジネスシナリオに最も適した重み比率を見つけることができます。

- TopK ユーザーの質問に最も類似したテキストセグメントを選択するために使用されます。システムはモデルの選択に基づいてコンテキストウィンドウサイズを動的に調整し、セグメントの数を増やします。数値が高いほど、リコールされるテキストセグメントの数が増加します。
- スコアの閾値 テキストセグメントの選択に使用される類似性の閾値を設定します。ベクトル検索の類似性スコアは、設定したスコアを超える必要があり、数値が高いほどリコールされるテキストの数が減少します。
メタデータを使用して知識をフィルタリングする
チャットフロー/ワークフロー
チャットフロー/ワークフローの知識検索ノードでは、メタデータフィルタリング機能を使用して文書を正確に検索できます。この機能は、文書のメタデータフィールド(タグ、カテゴリ、アクセス権限など)に基づいて検索結果を最適化するのに役立ちます。 設定手順-
フィルタリングモードを選択する
- 無効モード(デフォルト):メタデータフィルタリング機能を無効にし、フィルタリング条件を設定しません。
- 自動モード:システムは知識検索ノードに渡されるクエリ変数に基づいてフィルタリング条件を自動的に設定します。簡単なフィルタリング要件に適しています。
自動モードを有効にした後も、モデル欄で文書検索タスクを実行するための適切な大規模モデルを選択する必要があります。

- 手動モード:ユーザーが手動でフィルタリング条件を設定し、フィルタリングルールを自由に設定できます。複雑なフィルタリング要件に適しています。

-
手動モードを選択した場合は、以下の手順でフィルタリング条件を設定してください:
- 条件ボタンをクリックすると、設定ボックスが表示されます。

-
設定ボックスの**+条件を追加**ボタンをクリックします:
- ドロップダウンリストから選択したナレッジベース内の既存のメタデータフィールドを選択し、フィルタリング条件リストに追加できます。
複数のナレッジベースを同時に選択した場合、ドロップダウンリストにはこれらのナレッジベースに共通するメタデータフィールドのみが表示されます。
- メタデータを検索検索ボックスで必要なフィールドを検索し、フィルタリング条件リストに追加することもできます。

- 複数のフィールドを追加する必要がある場合は、+条件を追加ボタンを繰り返しクリックします。

- フィールドタイプごとのフィルタリング条件を設定します:
-
メタデータフィルタリング値を選択して追加します:
- 変数:変数(Variable)を選択し、そのチャットフロー/ワークフロー内で文書のフィルタリングに使用する変数を選択します。

- 定数:**定数(Constant)**を選択し、必要な定数値を手動で入力します。
时间フィールドタイプは定数のみを使用した文書フィルタリングをサポートしています。时间フィールドを使用して文书をフィルタリングする場合、システムは时间选択ツールを表示し、特定の时点を选択できるようにします。

定数フィルタリング值を入力する場合、そのフィルタリング值はそのメタデータフィールド值のテキストと完全に一致する必要があり、システムはその文書を返します。例えば、フィルタリング条件をstarts with "アプリ"またはcontains "アプリ"に設定した場合、システムは「Apple」とマークされた文書を返しますが、「apple」や「APPLE」とマークされた文书は返しません。- フィルタリング条件间の论理関系
ANDまたはORを设置します。AND:文书がすべてのフィルタリング条件を满足する場合にのみ、その文书を検索できます。OR:文书がいずれかのフィルタリング条件を满足する場合、その文书を検索できます。

- ポップアップを闭じると、システムは自动的に选択内容を保存します。

ナレッジベースでリンクされたアプリを表示する
ナレッジベースの左侧に関連するアプリを表示し、アプリケーションページでの变更をサポートします。
よくある質問
- 複数のリコールモードでのRerank設定の選択方法は?
- 「重み设置」が见つからない、またはRerankモデルの设定が必要な场合、どのように対処すれば良いですか?

- 複数のナレッジベースを引用する际、「重み设置」を调整できず、エラーが表示される场合はどう対処すれば良いですか?
- 複数のリコール方法が使用されている场合、「重み设置」オプションが见つからず、Rerankモデルしか表示されない理由は何ですか?