⚠️ このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
プロジェクトの背景
Slack Botプラグインを使用すると、チームはSlack内でLLMと直接チャットでき、会話がすでに行われている場所にAIを配置できます。 Slackは、堅牢なAPIを備えたオープンなリアルタイムコミュニケーションプラットフォームです。webhookベースのイベントシステムがあり、開発が非常に簡単です。このガイドでは、そのシステムを使用してSlack Botプラグインを作成します。以下の図に示されています:
このガイドでは、2つの類似した用語が登場します:
- Slack Bot:Slackプラットフォーム上のチャットボットで、リアルタイムでやり取りできる仮想ユーザーです。
- Slack Botプラグイン:DifyアプリケーションとSlackを接続するDifyマーケットプレイス内のプラグインです。このガイドでは、その構築方法を説明します。
動作の仕組み
- ユーザーがSlack Botにメッセージを送信する Slack内のユーザーがBotにメッセージを送信すると、Slack Botは即座にDifyプラットフォームにwebhookリクエストを発行します。
- SlackがメッセージをSlack Botプラグインに転送する Difyプラットフォームは、Slack Botプラグインをトリガーし、メッセージをDifyアプリケーションに中継します。これは、メールシステムが受信者のアドレスに配信するのと似ています。SlackのAPIを通じてSlack webhookアドレスを設定し、プラグインに入力することで、この接続を確立します。プラグインはSlackリクエストを処理し、Difyアプリケーションに転送します。そこでLLMが入力を分析し、応答を生成します。
- プラグインがSlackに応答を返す プラグインがDifyアプリケーションから応答を受け取ると、同じルートを通じてLLMの回答をSlack Botに送り返し、ユーザーはチャットしている場所で応答を受け取ります。
前提条件
- Difyプラグイン開発ツール:開発ツールの初期化を参照してください。
- Python環境(バージョン 3.12):Python公式ダウンロードページを参照してください。
- OAuthトークンを持つSlack App:以下の手順を参照してください。

- Webhooksを有効にする:

- Slackワークスペースにアプリをインストールする:

- プラグイン開発のためにOAuthトークンを取得する:

1. プラグインの開発
コーディングを開始する前に、クイックスタート:拡張プラグインの開発を読んでいるか、すでにDifyプラグインを構築した経験があることを確認してください。1.1 プロジェクトの初期化
以下のコマンドを実行して、プラグイン開発環境をセットアップします:extensionテンプレートを選択し、AppsとEndpointsの両方の権限を付与します。
プラグイン内でDifyサービスを逆呼び出しする方法の詳細については、逆呼び出し:Appを参照してください。

1.2 設定フォームの編集
プラグインは2つの情報を必要とします:どのDifyアプリが応答を処理するか、およびBotの応答を認証するためのSlack Appトークンです。プラグインのフォームに両方のフィールドを追加します。groupディレクトリ内のYAMLファイル(例:group/slack.yaml)を修正します。フォームのファイル名は、プラグイン作成時に入力した情報によって決まるので、適宜パスを調整してください。
サンプルコード:
slack.yaml
type:app-selectorに設定すると、ユーザーはこのプラグインを使用する際にメッセージを特定のDifyアプリに転送できます。scope:chatに設定すると、プラグインはAgent、チャットボット、またはチャットフローなどのアプリタイプとのみやり取りできます。
endpoints/slack.yamlファイルで、受信するSlackメッセージを処理できるようにリクエストメソッドをPOSTに変更します。
サンプルコード:
endpoints/slack.yaml
2. 関数コードの編集
endpoints/slack.pyファイルを修正し、以下のコードを追加します:
3. プラグインのデバッグ
Difyプラットフォームに移動し、プラグインのリモートデバッグアドレスとキーを取得します。
.env.exampleファイルをコピーして.envにリネームし、デバッグ詳細を入力します:
プラグインエンドポイントの設定
Difyのプラグイン管理ページから、新しくインストールされたテストプラグインを見つけ、新しいエンドポイントを作成します。名前とBotトークンを入力し、接続するアプリを選択します。

-
Event Subscriptionsを有効にする
上記で生成したPOSTリクエストURLを貼り付けます。


-
必要な権限を付与する

4. プラグインの検証
プラグインはself.session.app.chat.invokeを通じてDifyアプリケーションを呼び出し、app_idやqueryなどのパラメータを渡し、応答をSlack Botに返します。python -m mainを再度実行してプラグインを再起動し、SlackがDifyアプリの応答を表示するか確認します:

5. プラグインのパッケージ化(オプション)
プラグインが正しく動作することを確認したら、以下のコマンドでパッケージ化します。コマンドは現在のディレクトリにslack_bot.difypkgファイルを生成します。これが最終的なプラグインパッケージです。詳細なパッケージ化手順については、ローカルファイルとしてパッケージ化して共有を参照してください。
6. プラグインの公開(オプション)
Difyマーケットプレイスリポジトリにアップロードして公開できます。公開前に、プラグインがDifyマーケットプレイス公開ガイドラインに準拠していることを確認してください。承認されると、コードはメインブランチにマージされ、プラグインはDifyマーケットプレイスで公開されます。関連リソース
- プラグイン開発の基礎:Difyプラグイン開発の包括的な概要
- プラグイン開発クイックスタートガイド:ゼロからプラグイン開発を始める
- 拡張プラグインの開発:拡張プラグイン開発
- Difyサービスの逆呼び出し:Difyプラットフォームの機能を呼び出す方法
- 逆呼び出し:App:プラットフォーム内でアプリを呼び出す方法
- プラグインの公開:公開プロセス
- Difyマーケットプレイスへの公開:マーケットプレイス公開ガイド
- エンドポイントの詳細定義:エンドポイントリファレンス
さらに読む
完全なDifyプラグインプロジェクトの例については、GitHubリポジトリをご覧ください。完全なソースコードと実装の詳細を含む追加のプラグインも見つかります。 プラグイン開発についてさらに探求するには、以下を参照してください: クイックスタート: プラグインインターフェースドキュメント:- Manifestファイルによるプラグイン情報の定義:Manifest構造
- エンドポイント:エンドポイントリファレンス
- 逆呼び出し:プラグインからDify機能を呼び出す
- 一般仕様:ツール仕様
- モデルスキーマ:モデルスキーマリファレンス
Edit this page | Report an issue