クイック統合ツール

ここでは、GoogleSearchを例にとって、ツールを迅速に接続する方法をご紹介します。

1. ツールプロバイダーのyamlを準備

イントロダクション

このyamlには、プロバイダーの名前、アイコン、著者などの詳細情報が含まれており、前端で柔軟に表示できるようにします。

サンプル

core/tools/provider/builtinフォルダーにgoogleモジュール(フォルダー)を作成し、その中にgoogle.yamlを作成します。名前はモジュール名と一致する必要があります。

以降、このツールに関するすべての操作はこのモジュール内で行います。

identity: # ツールプロバイダーの基本情報
  author: Dify # 著者
  name: google # 名前、唯一無二で、他のプロバイダーと重複してはいけません
  label: # ラベル、前端表示用
    en_US: Google # 英語ラベル
    zh_Hans: Google # 中国語ラベル
    ja_JP: : Google # 日本語ラベル
    pt_BR: : : Google # プルトガル語ラベル
  description: # 説明、前端表示用
    en_US: Google # 英語説明
    zh_Hans: Google # 中国語説明
    ja_JP: : Google # 日本語説明
    pt_BR: : Google # プルトガル語説明
  icon: icon.svg # アイコン、現在のモジュールの_assetsフォルダーに配置する必要があります
  • identity フィールドは必須です。著者、名前、ラベル、説明、アイコンなどの基本情報が含まれています。

    • アイコンは現在のモジュールの_assetsフォルダーに配置する必要があります。参考例:api/core/tools/provider/builtin/google/_assets/icon.svg

2. プロバイダーの認証情報を準備

GoogleはSerpApiが提供するAPIを使用しているため、SerpApiのAPIキーが必要です。一方で、wikipediaのようなツールでは認証情報フィールドを記入する必要はありません。参考例:api/core/tools/provider/builtin/wikipedia/wikipedia.yaml

認証情報フィールドを設定すると以下のようになります:

  • type:認証情報フィールドタイプ、現在はsecret-inputtext-inputselectの3種類をサポートしており、それぞれパスワード入力、テキスト入力、選択ボックスに対応します。secret-inputの場合、前端で入力内容が非表示となり、後端で入力内容が暗号化されます。

3. ツールのyamlを準備

一つのプロバイダーには複数のツールがあり、それぞれのツールには基本情報、パラメーター、出力などを記述したyamlファイルが必要です。

GoogleSearchを例にとって、googleモジュール内にtoolsモジュールを作成し、その中にtools/google_search.yamlを作成します。内容は以下の通りです。

  • identity フィールドは必須です。名前、著者、ラベル、説明などの基本情報が含まれています。

  • parameters パラメーターリスト

    • name パラメーター名、唯一無二で、他のパラメーターと重複してはいけません。

    • type パラメータータイプ。現在はstringnumberbooleanselectの4種類をサポートしており、文字列、数値、ブール値、選択ボックスに対応します。

    • required 必須かどうか

      • llmモードでは、パラメーターが必須の場合、エージェントは必ずこのパラメーターを推論する必要があります。

      • formモードでは、パラメーターが必須の場合、ユーザーは対話開始前に前端でこのパラメーターを入力する必要があります。

    • options パラメーターオプション

      • llmモードでは、DifyはすべてのオプションをLLMに渡し、LLMはこれらのオプションを基に推論します。

      • formモードでは、typeselectの場合、前端にこれらのオプションが表示されます。

    • default デフォルト値

    • label パラメーターラベル、前端表示用

    • human_description 前端表示用の紹介文、複数言語対応

    • llm_description LLMに渡す紹介文。LLMがこのパラメーターをよりよく理解できるように、できるだけ詳細な情報を書いておくことをお勧めします。

    • form フォームタイプ。現在はllmformの2種類をサポートしており、それぞれエージェントによる推論と前端入力に対応します。

4. ツールコードを準備

ツールの設定が完了したら、次にツールのロジックを実装するためのコードを作成します。

google/toolsモジュール内にgoogle_search.pyを作成し、以下の内容を記述します。

パラメーター

ツールの全体のロジックは_invokeメソッド内にあります。このメソッドはuser_idtool_Parametersの2つのパラメーターを受け取ります。これらはそれぞれユーザーIDとツールパラメーターを表します。

返却データ

ツールの返却時に、1つまたは複数のメッセージを返すことができます。ここでは、1つのメッセージを返す例を示しており、create_text_messagecreate_link_messageを使用してテキストメッセージまたはリンクメッセージを作成しています。

5. プロバイダーコードを準備

最後に、プロバイダーモジュール内にプロバイダークラスを作成し、認証情報の検証ロジックを実装します。認証情報の検証に失敗した場合、ToolProviderCredentialValidationError例外が投げられます。

googleモジュール内にgoogle.pyを作成し、以下の内容を記述します。

完成

上記のステップが完了すると、このツールがフロントエンドに表示され、エージェントでこのツールを使用することができます。

もちろん、google検索は資格情報を必要とするため、使用前にフロントエンドで資格情報を設定する必要があります。

Last updated