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

これは、1つのPlainコンポーネント(Hello World)と1つのImageコンポーネント(Usagi)を含むメッセージチェーンです。
メッセージチェーンとメッセージチェーンコンポーネントの定義は、langbot_plugin.api.entities.builtin.platform.messageにあります。
まず、langbot_plugin.api.entities.builtin.platform.messageパッケージをインポートして、その中のメッセージコンポーネントを使用してください。
from langbot_plugin.api.entities.builtin.platform.message import *
# テキスト「Hello LangBot」と画像(URLから)を含むメッセージを構築
msg_chain = MessageChain([
Plain(text="Hello LangBot"),
Image(url='https://qchatgpt.rockchin.top/langbot-logo.png')
])
# @全員とテキスト「Hello LangBot」を含むメッセージを構築
msg_chain = MessageChain([
AtAll(),
Plain(text="Hello LangBot")
])
# @特定のメンバーとテキスト「Hello LangBot」を含むメッセージを構築
msg_chain = MessageChain([
At(target=123456),
Plain(text="Hello LangBot")
])現在サポートされているメッセージチェーンコンポーネント:
-
Source- ソースメッセージチェーン情報。メッセージングプラットフォームから受信したメッセージには、メッセージ情報を記録するためにメッセージチェーンの先頭にこのコンポーネントが含まれます -
Plain- プレーンテキストメッセージ -
Quote- 引用メッセージ -
Image- 画像メッセージ -
AtAll- @全員メッセージ -
At- @特定のメンバーメッセージ -
Voice- 音声メッセージ- メッセージングプラットフォームのサポートを確認する必要があります
-
Forward- 転送メッセージ- 多くのプラットフォームでサポートされていないため、推奨されません
-
File- ファイルメッセージ
コンポーネントを作成する際は、名前付きパラメータを使用する必要があります。具体的な使用方法については、ソースコードlangbot_plugin.api.entities.builtin.platform.messageの定義を確認してください。
上記のエンティティに加えて、FriendやGroupなどのエンティティもあります。これらのエンティティはlangbot_plugin.api.entities.platform.entitiesで定義されています。
Warning
4.xには適用されません。
プラットフォームの違いを抽象化するために、LangBotはメッセージングプラットフォームAPIの上に抽象化レイヤーを提供しています。これには、上記で説明した内容と、pkg/platform/sourcesディレクトリ内のさまざまなプラットフォームアダプターが含まれます。 ただし、プラットフォームの違いが大きいため、抽象化レイヤーのエンティティとAPIのカプセル化は完全ではありません。プラグインがプラットフォーム固有の機能にアクセスする必要がある場合は、次の手順に従って基盤APIにアクセスできます。
Note
# 例えばプラグイン内で
@handler(GroupMessageReceived)
async def _(self, ctx: EventContext):
# アダプターオブジェクトを取得
adapter = ctx.query.adapter| プラットフォーム | アダプター | アクセス方法 | 説明 |
|---|---|---|---|
| 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を参照してください |
Automatically synchronized from langbot-app/langbot-wiki.
简体中文
指南
开发者
- 插件开发
- 插件 SDK API
- 核心开发
文章
- 浏览
- 产品动态
- 技术解析
- 教程与集成
- 公告
API 参考
- Service API
English
Guides
Developers
-
Plugin Development
- Plugin Development Tutorial
- Completing Plugin Configuration Information
- Plugin Directory Structure
- Component Development
- Code Style Guide
- Migration Guide
- Publish Plugin
- Plugin SDK API
- Core Development
Articles
- Browse
- Product Updates
- Engineering
-
Tutorials & Integrations
- LangTARS: Open-Source AI Agent for Remote PC Control — Works with Dify, n8n & 10+ Messaging Platforms
- How to Connect DeepSeek R1 to WeChat, Discord & Telegram in 5 Minutes (FREE)
- Deploy Your Own AI Bot to Discord, Telegram & WeChat in 5 Minutes
- Finally Got My Dify Agent Working in Discord, Telegram and Slack
- How I Built a Multi-Platform AI Bot with Langflow's Drag-and-Drop Workflows
- How I Built a Multi-Platform AI Chatbot with n8n and LangBot
- LangBot 4.6.0 External Knowledge Base Tutorial: Integrating Dify with LangBot for RAG-powered Conversations
- Announcements
API Reference
- Service API
Other pages
日本語
ガイド
開発者
- プラグイン開発
- プラグイン SDK API
- コア開発
記事
- 一覧
- 製品アップデート
- エンジニアリング
-
チュートリアルと連携
- LangTARS:Dify・n8n と連携するオープンソース PC 操作 Agent
- DeepSeek R1 を WeChat・Discord・Telegram に5分で接続する方法
- AI Bot を Discord・Telegram・WeChat に5分でデプロイ
- Dify Agent を Discord・Telegram・Slack で動かす
- Langflow のドラッグ&ドロップでマルチプラットフォーム AI Bot を構築
- n8n と LangBot でマルチプラットフォーム AI Chatbot を構築
- LangBot 4.6.0 外部ナレッジベース入門:Dify と連携した RAG 会話
- お知らせ
API リファレンス
- Service API