外部ナレッジベースとの接続
Last updated
Last updated
この記事では、Difyプラットフォーム外のナレッジベースのことを 「外部ナレッジベース」 と呼びます。
コンテンツ検索に高度なニーズを持つ上級開発者にとって、Difyプラットフォームに組み込まれているナレッジベース機能やテキスト検索・リコールメカニズムには制約があり、テキストのリコール結果を容易に変更することができません。
テキスト検索とリコールの精度に対する要求が高く、内部情報の管理の必要性があるため、一部のチームは独自にRAGアルゴリズムを開発し、テキストリコールシステムのメンテナンスを行ったり、コンテンツをクラウドベンダーのナレッジベースサービス(例:AWS Bedrock)に統合することを選択しています。
中立的なLLMアプリケーション開発プラットフォームであるDifyは、開発者に多様な選択肢を提供することを目指しています。
外部ナレッジベースとの接続機能を活用することで、Difyプラットフォームと外部ナレッジベースを容易に接続することが可能になります。APIサービスを通じて、AIアプリケーションはより多くの情報ソースにアクセスできるようになります。具体的には、以下のことを意味します:
Difyプラットフォームは、クラウドサービスプロバイダーがホストするナレッジベース内のテキストコンテンツを直接取得できます。そのため、開発者はDify内のナレッジベースにコンテンツを再度移動させる必要がありません。
Difyプラットフォームは、独自に構築したナレッジベース内でアルゴリズムによって処理されたテキストコンテンツを直接取得できます。これにより、開発者は自らのナレッジベースの情報検索メカニズムに注力し、情報のリコール精度を継続的に最適化・向上させることができます。
以下は、外部ナレッジに接続するための詳細な手順です:
APIサービスの設定の前に、適合した外部ナレッジベースAPIを作成してください。外部ナレッジベースとDifyの間の統合が成功するように、Difyの外部ナレッジベースAPI仕様書を参照してください。
外部ナレッジベースに接続する際、Difyは現在、検索権限のサポートのみを行い、外部ナレッジベースの最適化や修正のサポートはしていません。開発者は外部ナレッジベースを自己管理する必要があります。
**「ナレッジ」**ページに移動し、右上隅の **「外部ナレッジAPI」**をクリックし、次に **「外部ナレッジAPIを追加」**をクリックします。次の情報を入力するためにページの指示に従ってください:
Name、異なる外部ナレッジAPIを区別するためのカスタマイズ可能な名前;
API Endpoint、外部ナレッジベースAPIエンドポイントのURL、例:api-endpoint/retrieval;詳しい指示については外部ナレッジAPIを参照してください;
APIキー、外部ナレッジへの接続キー、詳しい指示については外部ナレッジベースAPIを参照してください。
**「ナレッジベース」ページに移動し、「外部ナレッジベースの接続」**をクリックして、パラメータ設定ページに進みます。
以下のパラメータを入力してください:
ナレッジベースの名前と説明
外部ナレッジベースAPI
第2ステップで関連付けた外部ナレッジベースAPIを選択してください。DifyはこのAPIを使用して、外部ナレッジベースに保存されているテキストコンテンツを呼び出します。
外部ナレッジベースID
関連付ける特定の外部ナレッジベースIDを指定してください。詳細については、外部ナレッジベースAPIの定義を参照してください。
リコール設定の調整
Top K: ユーザーが質問を行うと、外部知識APIから関連性の高いコンテンツセグメントを取得します。このパラメータは、ユーザーの問いに類似したテキストセグメントを選定するために使用します。デフォルト値は3で、数値が高いほど、より多くの関連性のあるテキストセグメントが取得されます。
Score 閾値: テキストセグメントの選択における類似性の閾値を設定します。このスコアを超えるテキストセグメントのみが取得されます。デフォルト値は0.5で、数値が高いほどテキストと問いの類似性が強く、取得されるテキストの数は少なくなります。
外部ナレッジベースとの接続が確立された後、ユーザーは **「検索結果」**で可能なキーワードをシミュレーションし、取得されるテキストセグメントをプレビューできます。リコール結果に満足できない場合は、リコールパラメータを調整したり、外部ナレッジベースの検索設定を見直したりすることができます。
チャットボット/エージェントタイプのアプリ
構成ページで外部ナレッジベースを関連付けます
チャットフロー/ワークフロータイプのアプリ
**「ナレッジ検索」**ノードを追加し、外部ナレッジベースを選択します
「ナレッジベース」 ページでは、外部ナレッジベースのカードの右上にEXTERNALラベルが表示されます。変更が必要なナレッジベースに入って 「設定」 をクリックすることで、以下の項目を変更できます:
ナレッジベースの名前と説明
可視範囲
「Only Me」、「All Team Members」、**「Some Team Members」**の3つの権限範囲が提供されます。権限がないユーザーはそのナレッジベースにアクセスできません。ナレッジベースを他のメンバーに公開すると、そのメンバーもナレッジベースを閲覧、編集、削除する権限を持つようになります。
リコール設定
Top K: ユーザーが質問を行った際に、外部知識APIから関連性の高いコンテンツセグメントを取得します。このパラメータは、ユーザーの問いに類似したテキストセグメントを選定するために使用されます。デフォルト値は3で、数値が高いほど、より多くの関連性のあるテキストセグメントが取得されます。
Score閾値: テキストセグメントの選択における類似性の閾値を設定します。このスコアを超えるテキストセグメントのみが取得されます。デフォルト値は0.5で、数値が高いほどテキストと問いの類似性が強く、取得されるテキストの数は少なくなります。
外部ナレッジベースが関連付けられた 「外部ナレッジベースAPI」 と 「外部ナレッジベースID」 は変更できません。変更が必要な場合は、新しい 「外部ナレッジベースAPI」 を関連付けて再接続してください。
外部ナレッジベース API への接続時に例外が発生し、エラーが発生する時
以下は、返された情報の各エラー コードに対応するエラー プロンプトと解決策:
エラーコード | 原因 | 解決方法 |
---|---|---|
1001 | 無効な Authorization header 形式 | リクエストの Authorization header 形式を確認してください |
1002 | 検証異常 | 入力したAPIキーが正しいか確認してください |
2001 | ナレッジベース存在しない | 外部ナレッジベースをチェックしてください |