このドキュメントでは、プロジェクトの初期化、設定フォームの編集、機能コードの実装、プラグインのデバッグ、エンドポイントの設定、効果検証からパッケージ化、リリースまでの完全なSlack Botプラグイン開発ガイドを提供します。Slackプラットフォーム上でAI駆動のチャットボットを構築するために、Difyプラグインスキャフォールディングツールと作成済みのSlack Appが必要です。
本稿では、次のことをお手伝いします。
Slack Bot の構築方法を深く理解し、AI 駆動の Slack チャットボットを作成し、 Slack プラットフォームでユーザーの質問にインテリジェントに応答します。プラグイン開発の経験がない場合は、まずプラグイン開発入門ガイドを読むことをお勧めします。
Dify プラグインエコシステムは、よりシンプルで使いやすいアクセス方法のサポートに取り組んでいます。本稿では Slack を例に、Slack Bot プラグインの開発方法を詳しく説明し、チームメンバーが Slack プラットフォーム内で直接 LLM と対話し、AI サービスの使用効率を向上させるのに役立ちます。
Dify プラグインエコシステムは、よりシンプルで便利なアクセス方法を提供することを目指しています。本稿では Slack を例に、Slack Bot プラグインの開発方法を詳細に解説し、チームメンバーが Slack プラットフォームで直接 AI アプリケーションを使用し、業務効率を向上させるのに役立ちます。
Slack は、自由でオープンなリアルタイムオフィスコミュニケーションプラットフォームであり、豊富な API を備えています。その中でも、イベントベースの Webhook 機能は開発に着手しやすいです。このメカニズムを利用して Slack Bot プラグインを作成します。その原理は下図の通りです。
混乱を避けるため、以下の概念について説明します。
- Slack Bot は Slack プラットフォーム上のチャットボットであり、仮想キャラクターと見なすことができ、チャットで対話することができます。
- Slack Bot プラグインとは、Dify Marketplace 上のプラグインで、Dify アプリケーションと Slack プラットフォームを接続するために使用されます。本稿では、主にこのプラグイン開発について説明します。
原理の概要:
Slack Bot にメッセージを送信
ユーザーが Slack で Bot にメッセージを送信すると、Slack Bot は Dify プラットフォームに Webhook リクエストを送信します。
メッセージを Slack Bot プラグインに転送
ユーザーが Slack bot と対話する際、メッセージを Dify アプリケーションに転送する必要があります。メールシステムが受信者のメールアドレスを必要とするように、Slack の API を介して Slack Webhook のアドレスを設定し、それを Slack Bot プラグインに入力して接続を確立することができます。
プラグインがメッセージを受信後、特定の Dify アプリケーションに返す
Slack Bot プラグインは Slack リクエストを処理し、Dify 内のアプリケーションに送信します。LLM がユーザーの入力内容を分析し、応答します。
Dify アプリケーションが応答後、メッセージを Slack Bot に返し、ユーザーに回答する
Slack Bot は Dify アプリケーションの応答を取得後、プラグインを介してメッセージを元の経路で Slack Bot に返し、ユーザーが Slack を使用しながら直接 Dify アプリケーションと対話できるようにします。
Slack API プラットフォームにアクセスし、scratch 方式で Slack APP を作成し、アプリケーションをデプロイする Slack スペースを選択します。
Webhooks 機能を有効にします。
App を Slack ワークスペースにインストールします。
OAuth トークンを取得し、後続のプラグイン開発に使用します。
ここから実際のプラグインコーディング作業を開始します。開始する前に、Extension プラグインの開発を読んだか、Dify プラグインを一度開発したことがあることを確認してください。
以下のコマンドを実行してプラグイン開発プロジェクトを初期化します。
プロンプトに従ってプロジェクトの基本情報を入力し、extension
テンプレートを選択し、Apps
と Endpoints
の 2 つの権限を付与します。
プラグインが Dify プラットフォームの機能を逆引き呼び出しする方法の詳細については、逆引き呼び出しを参照してください。
このプラグインでは、どの Dify の App を使用して返信するかを指定する必要があり、返信する際には Slack の App token を使用する必要があるため、プラグインフォームにこれらの 2 つのフィールドを追加する必要があります。
group パス以下の yaml ファイルを変更します。例:group/slack.yaml
。フォーム設定ファイルの名前は、プラグイン作成時に記入した基本情報によって決まります。対応する yaml ファイルを変更できます。
サンプルコード:
slack.yaml
コードデータ構造の説明:
type
フィールドは app-selector
フィールドとして指定されます。
ユーザーはプラグイン使用時に特定の Dify アプリケーションにアクセスし、メッセージ転送を行うことができます。
scope
フィールドは chat
フィールドとして指定されます。
agent
、chatbot
、chatflow
などのタイプのアプリのみ使用できます。
最後に endpoints/slack.yaml
ファイル内のリクエストパスとリクエストメソッドを変更し、method を POST 方式に変更する必要があります。
サンプルコード:
endpoints/slack.yaml
endpoints/slack.py
ファイルを変更し、以下のコードを追加します。
テストを容易にするため、プラグイン機能は現在ユーザーの入力内容を繰り返すことしかできず、Dify app の呼び出しは一時的に行いません。
Dify プラットフォームにアクセスし、Dify プラグインのリモートデバッグ接続アドレスとキーを取得します。
プラグインプロジェクトに戻り、.env.example
ファイルをコピーして .env
に名前を変更します。
python -m main
コマンドを実行してプラグインを起動します。プラグインページで、このプラグインがワークスペースにインストールされていることが確認できます。他のチームメンバーもこのプラグインにアクセスできます。
Dify のプラグイン管理ページで、自動インストールされたテストプラグインを見つけ、新しいエンドポイントを作成し、名前、Bot token を入力し、接続するアプリを選択します。
保存後、POST リクエストアドレスが生成されます。
次に、Slack App の設定を完了する必要があります。
上記で生成されたプラグインの POST リクエストアドレスを貼り付けます。
Slack App が持つべき権限にチェックを入れます。
コードは self.session.app.chat.invoke
を使用して Dify プラットフォーム内の App を呼び出し、app_id
や query
などの情報を渡し、最後にレスポンスの内容を Slack Bot に返します。python -m main
コマンドを実行してプラグインを再起動してデバッグし、Slack Bot が Dify App の応答メッセージを正しく出力できるか確認します。
プラグインが正常に動作することを確認した後、以下のコマンドラインツールを使用してプラグインをパッケージ化し、名前を付けることができます。実行後、現在のフォルダに slack_bot.difypkg
ファイルが見つかります。これが最終的なプラグインパッケージです。パッケージ化の詳細な手順については、ローカルファイルとしてパッケージ化して共有を参照してください。
おめでとうございます。これでプラグインの完全な開発、テスト、パッケージ化プロセスが完了しました!
これで、Dify Marketplace リポジトリにアップロードしてプラグインを公開できます!ただし、公開する前に、プラグインがDify Marketplace への公開の規範に従っていることを確認してください。
完全な Dify プラグインのプロジェクトコードを確認したい場合は、GitHub コードリポジトリにアクセスしてください。その他、他のプラグインの完全なコードと詳細を確認できます。
さらに多くのプラグインについて知りたい場合は、以下の内容を参照してください。
クイックスタート:
プラグインインターフェースドキュメント: