Telegram Botとの統合プラグイン開発
Last updated
Last updated
LLMサービスを一般的なリアルタイムチャットプラットフォーム(IM)と連携させることは、常に重要な取り組みとして注目されています。Difyプラグインのエコシステムは、よりシンプルで使いやすい連携方法を提供することを目指しています。この記事では、Telegramを例に、Telegram Botに接続するプラグインを開発する方法を詳しく解説します。
Telegramは、豊富なAPIを提供する無料のオープンなリアルタイムコミュニプラットフォームです。イベントベースの仕組みである使いやすいWebhook機能も備えています。この仕組みを利用して、次の図に示すようにTelegram Botプラグインを作成します。
連携の流れ:
ユーザーがTelegram Botを使用
ユーザーがTelegramでメッセージを送信すると、TelegramはDifyプラグインにHTTPリクエストを送信します。
メッセージがTelegram Botプラグインに転送される
メールシステムで受信者のアドレスが必要なように、Telegram Botを使用する場合、メッセージは処理のためにDifyアプリに転送される必要があります。これは、Telegram APIを通じてTelegram Webhookアドレスを設定し、そのアドレスをプラグインに入力することで実現できます。
プラグインがメッセージを受信し、Difyアプリに返す
プラグインはTelegramからのリクエストを処理し、ユーザーが入力した内容を解析します。そして、Difyアプリを呼び出して、返信内容を取得します。
Difyアプリが応答し、Telegram Botにメッセージを返す
Difyアプリからの応答を受信した後、プラグインは同じ経路でTelegram Botにメッセージを返します。これにより、ユーザーはTelegramを使いながらDifyアプリと直接対話できます。
Telegram Botの作成
Difyプラグインのスキャフォールディングツール
Python環境(バージョン3.10以上)
@BotFatherのガイドに従って、新しいBotを作成してください。詳しい作成手順については、Telegramの公式ドキュメントを参照してください。
作成後、次のステップで使用するHTTP APIトークンが発行されます。
Difyプラグインのスキャフォールディングツールのインストール
詳細については、https://github.com/langgenius/dify-docs/blob/main/jp/plugins/initialize-development-tools.mdを参照してください。
Python環境の準備
詳しい手順については、Pythonインストールチュートリアルを参照するか、LLMに詳しいインストール手順を問い合わせてください。
それでは、実際のプラグインのコーディング作業を開始しましょう。始める前に、クイックスタート:拡張タイププラグインの開発 を確認するか、Difyプラグインの開発経験があることを確認してください。
次のコマンドを実行して、プラグイン開発プロジェクトを初期化します:
プロンプトに従って、プロジェクトの基本情報を入力し、extension
テンプレートを選択します。権限設定では、Apps
とEndpoints
の両方にチェックを入れてください。
Difyプラットフォームの機能に対するプラグインからのリクエスト(逆呼び出し)については、逆呼び出し:Appを参照してください。
このプラグインでは、返信に使用するDifyアプリを指定する必要があります。また、返信時にTelegramボットトークンが必要になるため、これらの2つのフィールドをプラグインフォームに追加する必要があります。
group/your-project.yaml
のように、グループパスにあるyamlファイルを編集してください。フォームの設定ファイル名は、プラグイン作成時に入力した基本情報によって決まります。対応するyamlファイルを編集してください。
コード例:
your-project.yaml
コードデータ構造の説明:
プラグインを利用すると、特定のDifyアプリにアクセスし、メッセージを転送できます。
scope
フィールドはチャットフィールドとして定義されており、エージェント、チャットボット、チャットフローといったアプリでのみ利用可能です。
例:
endpoints/your_path.yaml
endpoints/your_project.py
ファイルを編集し、以下のコードを追加してください:
Difyではリモートデバッグ機能が利用できます。「プラグイン管理」ページで、デバッグキーとリモートサーバーアドレスを取得してください。
プラグインプロジェクトに戻り、.env.example
ファイルをコピーして.env
にリネームします。そして、リモートサーバーアドレスとデバッグキーを.env
ファイルに記入してください。
.env
ファイルの内容は以下の通りです:
python -m main
コマンドを実行してプラグインを起動します。プラグインページで、プラグインがワークスペースにインストールされたことを確認できます。他のチームメンバーもこのプラグインにアクセス可能です。
Difyのプラグイン管理ページで、自動的にインストールされたテストプラグインを見つけます。新しいエンドポイントを作成し、名前、Botトークンを入力し、接続先のアプリを選択してください。
プラグインからURLをコピーし、以下のコマンドと組み合わせてテストリクエストコマンドを作成します。
ここで、<hook_url>
には先ほどコピーしたアドレスを、<bot_token>
には準備で取得したTelegram HTTP APIトークンを入力します。
実行すると、以下の結果が表示されるはずです。
Telegramボットにメッセージを送信すると、送信したメッセージがそのまま繰り返されることを確認できます。これは、プラグインがTelegramボットとの接続を正しく確立したことを示しています。
Difyアプリを使用して返信するコードを追加するために、関数コードを修正します:
このコードでは、self.session.app.chat.invoke
を使用してDifyプラットフォーム内のアプリを呼び出します。app_id
や query
などの情報を渡し、最終的にその応答をTelegram Botに返します。
プラグインを再起動し、再度デバッグを実行すると、Telegram BotがDifyアプリからの返信メッセージを正しく出力していることを確認できます。
プラグインが正常に動作することを確認したら、以下のコマンドラインツールでプラグインをパッケージ化できます。実行すると、現在のフォルダに telegram.difypkg
ファイルが作成されます。これがプラグインの最終的なパッケージです。
おめでとうございます!ツールタイプのプラグイン開発、デバッグ、パッケージ化の全工程が完了しました。
作成したプラグインは、Dify Plugins コードリポジトリ にアップロードして公開できます。アップロード前に、プラグインがプラグイン公開ガイド に準拠していることを確認してください。承認されると、コードはmasterブランチにマージされ、Dify Marketplace で自動的に公開されます。
Difyプラグインのプロジェクトコード全体を確認したい場合は、Githubコードリポジトリ を参照してください。他のプラグインの完全なコードとその詳細も確認できます。
プラグインに関する詳細は、以下のコンテンツをご覧ください。
クイックスタート:
プラグイン仕様定義ドキュメント: