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

Dify は外部ナレッジベースに対して検索アクセスのみを持ちます。外部コンテンツの変更や管理はできません。ナレッジベースとその検索ロジックは独立して管理してください。
Step 1: 検索 API の構築
外部ナレッジベース API 仕様に準拠した API サービスを構築します。検索クエリを受け取り、類似度スコア付きのテキストチャンクを返す単一のPOST エンドポイントが必要です。
Step 2: 外部ナレッジベース API の登録
外部ナレッジベース API には、エンドポイント URL と認証情報が保存されます。複数のナレッジベースで 1 つの API 接続を共有できます。- ナレッジ に移動し、右上の 外部ナレッジベース API をクリックし、外部ナレッジベース API を追加 をクリックします。
-
以下のフィールドに入力します:
- 名前:この API 接続を他と区別するためのラベルです。
- API エンドポイント:外部ナレッジサービスのベース URL です。Dify はリクエスト送信時に
/retrievalを自動的に付加します。 - API キー:サービスの認証情報です。Dify はこれを
Authorizationヘッダーの Bearer トークンとして送信します。
Step 3: 外部ナレッジベースの作成
API の登録後、外部ナレッジソースを Dify に接続します。これにより、外部システムにリンクされたナレッジベースが Dify 内に作成されます。-
ナレッジ に移動し、外部ナレッジベースに接続 をクリックします。

-
以下のフィールドに入力します:
- 外部ナレッジベース名 と ナレッジベースの説明(任意)。
- 外部ナレッジベース API:登録した API 接続を選択します。
-
外部ナレッジベース ID:外部システム内の特定のナレッジソースの識別子で、API に
knowledge_idフィールドとして渡されます。 外部サービスがナレッジベースを区別するために使用する ID です。たとえば、Bedrock のナレッジベース ARN や、独自システムで定義した ID が該当します。外部ナレッジベース API と 外部ナレッジベース ID は作成後に変更できません。別の API やナレッジソースを使用する場合は、新しい外部ナレッジベースを作成してください。 -
検索設定:
- Top K:クエリごとに取得するチャンクの最大数です。値を大きくすると結果が増えますが、関連性の低いコンテンツが含まれる可能性があります。
- スコアしきい値:返されるチャンクの最小類似度スコアです。有効にすると、関連性の低い結果をフィルタリングできます。値を高くすると厳密な関連性で絞り込み、低くすると幅広い結果を含めます。 無効の場合、スコアに関係なく Top K の上限まですべての結果が返されます。
トラブルシューティング
接続拒否またはタイムアウト(セルフホスト環境)
Dify は送信 HTTP リクエストを Squid ベースの SSRF プロキシ経由でルーティングします。外部ナレッジサービスが Dify と同じホスト上で稼働している場合、またはドメインが許可リストに登録されていない場合、プロキシがリクエストをブロックします。 接続を許可するには、docker/ssrf_proxy/squid.conf.template の allowed_domains ACL にサービスのドメインを追加してください:
API レスポンス形式の問題
検索が失敗する場合や予期しない結果が返される場合は、外部ナレッジベース API 仕様に照らして API レスポンスを確認してください。 よくある問題:- 各レコードの
metadataフィールドはオブジェクト({})である必要があります。nullは使用できません。null値は検索パイプラインでエラーを引き起こします。 contentフィールドとscoreフィールドはすべてのレコードに必須です。