外部データツール

外部データツールは、エンドユーザーがデータを送信した後、外部ツールを使用して追加のデータを取得し、それをプロンプトに組み込むことで、LLMの追加のコンテキスト情報として利用します。Difyはデフォルトで外部API呼び出しツールを提供しており、詳細はAPI 拡張を参照してください。

ローカルにDifyをデプロイする開発者向けには、よりカスタマイズされたニーズに対応するため、または追加のAPIサーバーを開発したくない場合、Difyサービスの基盤にカスタムの外部データツールをプラグインとして直接挿入することができます。カスタムツールを拡張した後、ツールタイプのドロップダウンリストにカスタムツールオプションが追加され、チームメンバーはカスタムツールを使用して外部データを取得できるようになります。

クイックスタート

ここでは、天気検索外部データツール拡張を例として、以下の手順を説明します:

  1. ディレクトリの初期化

  2. フロントエンドフォーム規格の追加

  3. 実装クラスの追加

  4. 拡張のデバッグ

1. ディレクトリの初期化

新しいカスタムタイプWeather Searchを追加するには、api/core/external_data_toolディレクトリに関連するディレクトリとファイルを新規作成します。

.
└── api
    └── core
        └── external_data_tool
            └── weather_search
                ├── __init__.py
                ├── weather_search.py
                └── schema.json

2. フロントエンドコンポーネント規格の追加

  • schema.json、ここではフロントエンドコンポーネントの規格を定義します。詳細はコード拡張を参照してください。

3. 実装クラスの追加

weather_search.pyのコードテンプレートです。ここに具体的な業務ロジックを実装します。

circle-exclamation

4. 拡張のデバッグ

これで、DifyアプリケーションオーケストレーションインターフェースでカスタムWeather Search外部データツール拡張タイプを選択してデバッグできます。

実装クラステンプレート

実装クラスの詳細な説明

def validate_config

schema.jsonフォーム検証メソッド、ユーザーが「公開」をクリックして設定を保存するときに呼び出されます。

  • config フォームパラメータ

    • {variable} フォームカスタム変数

def query

ユーザーがカスタムデータクエリを実装し、返される結果は指定された変数に置き換えられます。

  • inputs :エンドユーザーが入力した変数値

  • query :エンドユーザーが現在の会話で入力した内容、対話型アプリケーションの固定パラメータ。

Last updated