メッセージエンティティフォーマットがあります。これらの違いを抽象化するために、統一された標準を実装しました。プラグイン開発者は、プラグイン内でこのページに記載されているメッセージエンティティを習得して使用するだけで、LangBotの内部メッセージ処理ロジックがメッセージの解析と変換を自動的に処理します。
メッセージチェーン
メッセージングプラットフォーム上のメッセージは、AI対話に使用されるメッセージとは異なります。メッセージングプラットフォーム上のメッセージは、メッセージチェーンの形式で記述されます。QQに表示される各独立したメッセージはメッセージチェーンであり、テキスト、画像、@メンションなどのさまざまなメッセージチェーンコンポーネントを含むことができます。例えば:

langbot_plugin.api.entities.builtin.platform.messageにあります。
メッセージチェーンの構築
まず、langbot_plugin.api.entities.builtin.platform.messageパッケージをインポートして、その中のメッセージコンポーネントを使用してください。
Source- ソースメッセージチェーン情報。メッセージングプラットフォームから受信したメッセージには、メッセージ情報を記録するためにメッセージチェーンの先頭にこのコンポーネントが含まれますPlain- プレーンテキストメッセージQuote- 引用メッセージImage- 画像メッセージAtAll- @全員メッセージAt- @特定のメンバーメッセージVoice- 音声メッセージ- メッセージングプラットフォームのサポートを確認する必要があります
Forward- 転送メッセージ- 多くのプラットフォームでサポートされていないため、推奨されません
File- ファイルメッセージ
langbot_plugin.api.entities.builtin.platform.messageの定義を確認してください。
その他のエンティティ
上記のエンティティに加えて、FriendやGroupなどのエンティティもあります。これらのエンティティはlangbot_plugin.api.entities.platform.entitiesで定義されています。
基盤プラットフォームAPIへのアクセス
プラットフォームの違いを抽象化するために、LangBotはメッセージングプラットフォームAPIの上に抽象化レイヤーを提供しています。これには、上記で説明した内容と、pkg/platform/sourcesディレクトリ内のさまざまなプラットフォームアダプターが含まれます。 ただし、プラットフォームの違いが大きいため、抽象化レイヤーのエンティティとAPIのカプセル化は完全ではありません。プラグインがプラットフォーム固有の機能にアクセスする必要がある場合は、次の手順に従って基盤APIにアクセスできます。
| プラットフォーム | アダプター | アクセス方法 | 説明 |
|---|---|---|---|
| OneBot v11 | aiocqhttp | adapter.bot | botオブジェクトはaiocqhttp CQHttpオブジェクトに対応します。詳細な使用方法についてはaiocqhttpドキュメントを参照してください |
| QQ公式API | qqofficial | adapter.bot | botオブジェクトはlibs/qq_official_api以下のSDKオブジェクトです。詳細な使用方法については、libs/qq_official_api/api.pyのQQOfficialClient内のsend_group_text_msgメソッドを参照してHTTPリクエストメソッドを確認し、具体的なインターフェースドキュメントについてはQQ公式APIドキュメントを参照してください |
| WeCom(企業微信) | wecom | adapter.bot | libs/wecom_api/api.pyのWecomClient内のsend_imageメソッドを参照してHTTPリクエストメソッドを確認し、具体的なインターフェースドキュメントについてはWeCom APIドキュメントを参照してください |
| WeChat公式アカウント | officialaccount | - | インターフェースドキュメントについてはWeChat公式アカウントAPIドキュメントを参照してください。認証情報はadapter.botから取得できます |
| Lark | lark | adapter.api_client | Lark SDKのAPI Clientオブジェクトです。詳細についてはoapi-sdk-pythonを参照してください |
| DingTalk | dingtalk | - | DingTalk APIドキュメントを参照してください。認証情報はadapter.botから取得できます |
| Discord | discord | adapter.bot | botオブジェクトはRapptz/discord.py Discordオブジェクトです。詳細な使用方法についてはドキュメントを参照してください |
| Telegram | telegram | adapter.bot | botオブジェクトはpython-telegram-bot Telegramオブジェクトです。詳細な使用方法についてはドキュメントを参照してください |
| Slack | slack | adapter.bot | botオブジェクトはlibs/slack_api/api.py内にあります。詳細な使用方法についてはそのコードとSlack SDKを参照してください |
