⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
プロジェクトの背景
Difyプラグインエコシステムは、統合をよりシンプルでアクセスしやすくすることに焦点を当てています。このガイドでは、Slackを例として、Slack Botプラグインの開発プロセスを順を追って説明します。これにより、チームはSlack内でLLMと直接チャットでき、AIの活用効率が大幅に向上します。 Slackは、堅牢なAPIを備えたオープンなリアルタイムコミュニケーションプラットフォームです。その機能の中には、webhookベースのイベントシステムがあり、開発が非常に簡単です。このシステムを活用してSlack Botプラグインを作成します。以下の図に示されています:
混乱を避けるため、以下の概念を説明します:動作の仕組み(簡単な概要):
- Slack Bot Slackプラットフォーム上のチャットボットで、リアルタイムでやり取りできる仮想ユーザーとして機能します。
- Slack Botプラグイン DifyアプリケーションとSlackを接続するDify Marketplace内のプラグインです。このガイドでは、そのプラグインの開発方法に焦点を当てています。
- Slack Botにメッセージを送信する Slack内のユーザーがBotにメッセージを送信すると、Slack Botは即座にDifyプラットフォームにwebhookリクエストを発行します。
- メッセージをSlack Botプラグインに転送する Difyプラットフォームは、Slack Botプラグインをトリガーし、詳細をDifyアプリケーションに中継します。これは、メールシステムで受信者のアドレスを入力するのと似ています。SlackのAPIを通じてSlack webhookアドレスを設定し、Slack Botプラグインに入力することで、この接続が確立されます。プラグインはSlackリクエストを処理し、Difyアプリケーションに送信します。そこでLLMがユーザーの入力を分析し、応答を生成します。
- Slackに応答を返す Slack BotプラグインがDifyアプリケーションから応答を受け取ると、同じルートを通じてLLMの回答をSlack Botに送り返します。Slack内のユーザーは、チャットしている場所で、よりインテリジェントでインタラクティブな体験を得られます。
前提条件
- Difyプラグイン開発ツール:詳細については、開発ツールの初期化を参照してください。
- Python環境(バージョン ≥ 3.12):このPythonインストールチュートリアルを参照するか、LLMに完全なセットアップガイドを尋ねてください。
- Slack Appを作成してOAuthトークンを取得する
- Webhooksを有効にする:
- Slackワークスペースにアプリをインストールする:
- 将来のプラグイン開発のためにOAuthトークンを取得する:
1. プラグインの開発
ここから実際のコーディングに入ります。開始する前に、クイックスタート:拡張プラグインの開発を読んでいるか、すでにDifyプラグインを構築した経験があることを確認してください。1.1 プロジェクトの初期化
以下のコマンドを実行して、プラグイン開発環境をセットアップします:extensionテンプレートを選択し、AppsとEndpointsの両方の権限を付与します。
プラグイン内でDifyサービスを逆呼び出しする方法の詳細については、逆呼び出し:Appを参照してください。
1.2 設定フォームの編集
このプラグインは、どのDifyアプリが応答を処理するか、およびBotの応答を認証するためのSlack Appトークンを知る必要があります。そのため、プラグインのフォームにこれら2つのフィールドを追加します。 groupディレクトリ内のYAMLファイルを修正します。例えば、group/slack.yamlです。フォームのファイル名は、プラグイン作成時に入力した情報によって決まるので、適宜調整してください。
サンプルコード:
slack.yaml
- type: app-selectorに設定すると、ユーザーはこのプラグインを使用する際にメッセージを特定のDifyアプリに転送できます。
- scope: chatに設定すると、プラグインはエージェント、チャットボット、またはchatflowなどのアプリタイプとのみやり取りできます。
endpoints/slack.yamlファイルで、受信するSlackメッセージを適切に処理するためにリクエストメソッドをPOSTに変更します。
サンプルコード:
endpoints/slack.yaml
2. 関数コードの編集
endpoints/slack.pyファイルを修正し、以下のコードを追加します:
2. プラグインのデバッグ
Difyプラットフォームに移動し、プラグインのリモートデバッグアドレスとキーを取得します。
プラグインプロジェクトに戻り、.env.exampleファイルをコピーして.envにリネームします。
python -m mainを実行してプラグインを起動します。Difyのプラグイン管理ページで、ワークスペースにプラグインがインストールされているのが確認できるはずです。他のチームメンバーもアクセスできるようになります。
プラグインエンドポイントの設定
Difyのプラグイン管理ページから、新しくインストールされたテストプラグインを見つけ、新しいエンドポイントを作成します。名前、Botトークンを入力し、接続するアプリを選択します。
保存後、POSTリクエストURLが生成されます:
次に、Slack Appのセットアップを完了します:
-
Event Subscriptionsを有効にする
上記で生成したPOSTリクエストURLを貼り付けます。
-
必要な権限を付与する
3. プラグインの検証
コード内で、self.session.app.chat.invokeがDifyアプリケーションを呼び出すために使用され、app_idやqueryなどのパラメータを渡します。応答はSlack Botに返されます。python -m mainを再度実行してプラグインをデバッグ用に再起動し、SlackがDify Appの応答を正しく表示するかどうかを確認します:
4. プラグインのパッケージ化(オプション)
プラグインが正しく動作することを確認したら、以下のコマンドでパッケージ化して名前を付けることができます。実行後、現在のディレクトリにslack_bot.difypkgファイルが作成されます。これが最終的なプラグインパッケージです。詳細なパッケージ化手順については、ローカルファイルとしてパッケージ化して共有を参照してください。
5. プラグインの公開(オプション)
Dify Marketplaceリポジトリにアップロードして公開できます。公開前に、プラグインがDify Marketplace公開ガイドラインに準拠していることを確認してください。承認されると、コードはメインブランチにマージされ、プラグインはDify Marketplaceで公開されます。関連リソース
- プラグイン開発の基礎 - Difyプラグイン開発の包括的な概要
- プラグイン開発クイックスタートガイド - ゼロからプラグイン開発を始める
- 拡張プラグインの開発 - 拡張プラグイン開発について学ぶ
- Difyサービスの逆呼び出し - Difyプラットフォームの機能を呼び出す方法を理解する
- 逆呼び出し:App - プラットフォーム内でアプリを呼び出す方法を学ぶ
- プラグインの公開 - 公開プロセスを学ぶ
- Dify Marketplaceへの公開 - Marketplace公開ガイド
- エンドポイントの詳細定義 - 詳細なエンドポイント定義
さらに読む
完全なDifyプラグインプロジェクトの例については、GitHubリポジトリをご覧ください。完全なソースコードと実装の詳細を含む追加のプラグインも見つかります。 プラグイン開発についてさらに探求したい場合は、以下を確認してください: クイックスタート: プラグインインターフェースドキュメント:- Manifestファイルによるプラグイン情報の定義 - Manifest構造
- エンドポイント - エンドポイントの詳細定義
- 逆呼び出し - Dify機能の逆呼び出し
- 一般仕様 - ツール仕様
- モデルスキーマ - モデル
Edit this page | Report an issue