この文書では、Difyプラットフォームとは独立したナレッジベースを総称して**「外部ナレッジベース」**と呼びます。

機能概要

高度なコンテンツ検索の要件を持つ上級開発者にとって、Difyプラットフォームに組み込まれたナレッジベース機能とテキスト検索・取得メカニズムには制約があり、検索結果を簡単に変更することができません。

テキスト検索と取得の精度に高い要求を持ち、内部資料の管理ニーズを満たすために、一部のチームは独自にRAGアルゴリズムを開発し、自社のテキスト取得システムを維持したり、コンテンツをクラウドプロバイダのナレッジベースサービス(例:AWS Bedrock)に統合したりしています。

中立的なLLMアプリケーション開発プラットフォームであるDifyは、開発者にさまざまな選択肢を提供することを目指しています。

外部ナレッジベースに接続する機能を使うことで、Difyプラットフォームと外部ナレッジベースを接続できます。APIサービスを通じて、AIアプリケーションはより多くの情報源からデータを取得できるようになります。具体的には:

  • Difyプラットフォームは、クラウドサービスプロバイダのナレッジベースにホスティングされているテキストコンテンツを直接取得でき、開発者はDify内のナレッジベースに再度コンテンツを転送する必要がありません。
  • Difyプラットフォームは、独自に構築したナレッジベース内のアルゴリズムで処理されたテキストコンテンツを直接取得でき、開発者は独自のナレッジベースの情報検索メカニズムに焦点を当て、情報取得の精度を継続的に最適化できます。

Principle of external knowledge base connection

以下は外部ナレッジベースに接続するための詳細な手順です:

1

要件を満たす外部ナレッジベースAPIを構築する

Difyとの接続を成功させるためには、外部ナレッジベースがDifyが作成した外部ナレッジベースAPI仕様を慎重に読み、APIサービスを構築する必要があります。

2

外部ナレッジベースを関連付ける

現在、Difyは外部ナレッジベースに対する最適化や変更をサポートしておらず、検索権限のみを有しています。開発者は外部ナレッジベースを自己管理する必要があります。

“ナレッジベース” ページに移動し、右上の “外部ナレッジベースAPI” をクリックし、 “外部ナレッジベースAPIを追加” を選択します。

ページの指示に従い、以下の内容を順番に入力してください:

  • ナレッジベースの名前:カスタム名を設定でき、接続された異なる外部ナレッジAPIを区別するために使用します。
  • APIインターフェースアドレス:外部ナレッジベースの接続アドレス(例:api-endpoint/retrieval);詳細な説明は外部ナレッジベースAPIを参照してください。
  • APIキー:外部ナレッジベース接続のためのキー;詳細な説明は外部ナレッジベースAPIを参照してください。
3

外部ナレッジベースに接続する

“ナレッジベース” ページに移動し、追加したナレッジベースカードの下にある “外部ナレッジベースに接続” をクリックして、パラメーター設定ページに移動します。

以下のパラメータを入力してください:

  • ナレッジベースの名称と説明

  • 外部ナレッジベースAPI: 第二ステップで関連付けられた外部ナレッジベースAPIを選択します。DifyはAPI接続を通じて、外部ナレッジベースに保存されているテキスト内容を呼び出します。

  • 外部ナレッジベースID: 関連付ける特定の外部ナレッジベースIDを指定します。詳細については外部ナレッジベースAPIを参照してください。

  • 召回設定の調整

    Top K: ユーザーが質問を発起した際に、外部知識APIに関連性の高いコンテンツ片を要求します。このパラメータは、ユーザーの質問との類似度が高いテキスト片をフィルタリングするために使用されます。デフォルト値は3で、数値が大きいほど関連性のあるテキスト片が多く召回されます。

    スコア閾値: テキスト片フィルタリングの類似度閾値で、設定されたスコアを超えるテキスト片のみが召回されます。デフォルト値は0.5です。数値が高いほど、テキストと質問要求の類似度が高く、召回されるテキストの数が少なくなり、結果的により精度が高まります。

4

外部ナレッジベースの接続と召回のテスト

接続が確立された後、開発者は 「召回テスト」 で可能な質問キーワードをシミュレーションし、外部ナレッジベースから召回されたテキスト片をプレビューできます。召回結果に満足できない場合は、召回パラメータの変更や外部ナレッジベースの検索設定の調整を試みてください。

5

アプリ内で外部ナレッジベースを統合

  • Chatbot / エージェント型アプリ

Chatbot / エージェント型アプリの編成ページにある 「コンテキスト」 で、EXTERNALラベルの付いた外部ナレッジベースを選択します。

  • チャットフロー / ワークフロー型アプリ

チャットフロー / ワークフロー型アプリに 「知識検索」 ノードを追加し、EXTERNALラベルの付いた外部ナレッジベースを選択します。

6

外部ナレッジベースの管理

「ナレッジベース」ページでは、外部ナレッジベースのカードの右上にEXTERNALラベルが表示されます。変更が必要なナレッジベースに入って、**「設定」**をクリックして以下の内容を変更します:

  • ナレッジベースの名称と説明

  • 可視範囲: 「自分だけ」、「全チームメンバー」、「一部のチームメンバー」の3つの権限範囲を提供します。権限のない人はそのナレッジベースにアクセスできません。ナレッジベースを他のメンバーに公開することを選択した場合、他のメンバーもそのナレッジベースの閲覧、編集、および削除権限を持つことになります。

  • 召回設定

    Top K: ユーザーが質問をした際に、外部知識APIに関連性の高いコンテンツ片を要求します。このパラメータは、ユーザーの質問との類似度が高いテキスト片をフィルタリングするために使用されます。デフォルト値は3で、数値が大きいほど関連性のあるテキスト片が多く召回されます。

    スコア閾値: テキスト片フィルタリングの類似度閾値で、設定されたスコアを超えるテキスト片のみが召回されます。デフォルト値は0.5です。数値が高いほど、テキストと質問要求の類似度が高く、召回されるテキストの数が少なくなり、結果的により精度が高まります。

外部ナレッジベースに関連付けられた 「外部ナレッジベースAPI」「外部知識ID」 は変更できません。変更が必要な場合は、新しい「外部ナレッジベースAPI」を関連付けて再接続してください。

ナレッジベースの設置

よくある質問

外部ナレッジベースAPI接続時に異常が発生し、エラーが表示された場合の対処法は?

以下は、返された各エラーコードに対するエラーメッセージと解決策です:

エラーコードエラーメッセージ解決策
1001無効なAuthorization header形式リクエストのAuthorization header形式を確認してください
1002認証異常入力したAPIキーが正しいか確認してください
2001ナレッジベースが存在しない外部ナレッジベースを確認してください

このページは役に立ちましたか?