クイック統合ツール
「ツール」は「プラグイン」エコシステムに完全アップグレードされました。詳しい開発手順についてはプラグイン開発をご参照ください。以下の内容はアーカイブされています。
ここでは、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-input、text-input、selectの3種類をサポートしており、それぞれパスワード入力、テキスト入力、選択ボックスに対応します。secret-inputの場合、前端で入力内容が非表示となり、後端で入力内容が暗号化されます。
3. ツールのyamlを準備
一つのプロバイダーには複数のツールがあり、それぞれのツールには基本情報、パラメーター、出力などを記述したyamlファイルが必要です。
GoogleSearchを例にとって、googleモジュール内にtoolsモジュールを作成し、その中にtools/google_search.yamlを作成します。内容は以下の通りです。
identityフィールドは必須です。名前、著者、ラベル、説明などの基本情報が含まれています。parametersパラメーターリストnameパラメーター名、唯一無二で、他のパラメーターと重複してはいけません。typeパラメータータイプ。現在はstring、number、boolean、selectの4種類をサポートしており、文字列、数値、ブール値、選択ボックスに対応します。required必須かどうかllmモードでは、パラメーターが必須の場合、エージェントは必ずこのパラメーターを推論する必要があります。formモードでは、パラメーターが必須の場合、ユーザーは対話開始前に前端でこのパラメーターを入力する必要があります。
optionsパラメーターオプションllmモードでは、DifyはすべてのオプションをLLMに渡し、LLMはこれらのオプションを基に推論します。formモードでは、typeがselectの場合、前端にこれらのオプションが表示されます。
defaultデフォルト値labelパラメーターラベル、前端表示用human_description前端表示用の紹介文、複数言語対応llm_descriptionLLMに渡す紹介文。LLMがこのパラメーターをよりよく理解できるように、できるだけ詳細な情報を書いておくことをお勧めします。formフォームタイプ。現在はllm、formの2種類をサポートしており、それぞれエージェントによる推論と前端入力に対応します。
4. ツールコードを準備
ツールの設定が完了したら、次にツールのロジックを実装するためのコードを作成します。
google/toolsモジュール内にgoogle_search.pyを作成し、以下の内容を記述します。
パラメーター
ツールの全体のロジックは_invokeメソッド内にあります。このメソッドはuser_idとtool_Parametersの2つのパラメーターを受け取ります。これらはそれぞれユーザーIDとツールパラメーターを表します。
返却データ
ツールの返却時に、1つまたは複数のメッセージを返すことができます。ここでは、1つのメッセージを返す例を示しており、create_text_messageとcreate_link_messageを使用してテキストメッセージまたはリンクメッセージを作成しています。
5. プロバイダーコードを準備
最後に、プロバイダーモジュール内にプロバイダークラスを作成し、認証情報の検証ロジックを実装します。認証情報の検証に失敗した場合、ToolProviderCredentialValidationError例外が投げられます。
googleモジュール内にgoogle.pyを作成し、以下の内容を記述します。
完成
上記のステップが完了すると、このツールがフロントエンドに表示され、エージェントでこのツールを使用することができます。
もちろん、google検索は資格情報を必要とするため、使用前にフロントエンドで資格情報を設定する必要があります。

Last updated