メインコンテンツへスキップ
この記事では、aiocqhttpアダプターを例として、LangBotの新しいメッセージプラットフォームアダプターを実装し、WhatsAppやDiscordなどの新しいメッセージプラットフォームプロトコルを統合する方法を説明します。

登録

新しいメッセージプラットフォームアダプターを追加します。例: WhatsApp、Discordなどを統合

- 基底クラス: `pkg.platform.adapter.MessageSourceAdapter`
- デコレーター: `pkg.platform.adapter.adapter_class(name: str)`
- 参考実装: `pkg.platform.sources/`
メッセージプラットフォームアダプターを実装するには、基本的に基底クラスを継承するクラスを実装し、デコレーターを使用して登録する必要があります。最後に、実行時にユーザーが選択して使用できるようになります。

メインリポジトリへの貢献

pkg/platform/sources/ディレクトリに新しいファイルaiocqhttp.pyを作成します:
from .. import adapter

@adapter.adapter_class("aiocqhttp")
class AiocqhttpAdapter(adapter.MessageSourceAdapter):
    pass
また、pkg/platform/manager.pyの40行目でこのモジュールをインポートします:
        from .sources import nakuru, aiocqhttp, qqbotpy
最後に、他のアダプターのマニフェストファイルを参考にして、独自のマニフェストファイルを作成します。

イベントとメッセージコンバーター

メッセージプラットフォームアダプターの主な作業は、メッセージプラットフォームプロトコルからイベントを受信し、LangBotの形式に変換することです。これをコアコンポーネントに渡し、LangBotのコアコンポーネントが処理した後、返信する必要のあるコンテンツをメッセージプラットフォームアダプターに渡します。次に、コンテンツをプラットフォームプロトコル形式に変換してメッセージプラットフォームに送信します 次の図は、2つのシナリオの処理パターンを示しています: SDKのないメッセージプラットフォームプロトコルと成熟したSDKを持つプロトコル。最初のケースでは、メッセージプラットフォームプロトコルのドキュメントに従って、接続管理とネットワーク形式データのLBメッセージPythonオブジェクトへの変換を実装する必要があります。2番目のケースでは、メッセージプラットフォームに成熟したSDKがあり、SDKドキュメントに従って接続を作成し、イベントリスナーを登録し、メッセージコンバーターを実装するだけです。 alt text pkg.platform.sources.aiocqhttpファイルでは、AiocqhttpAdapterだけでなく、class AiocqhttpMessageConverter(adapter.MessageConverter):class AiocqhttpEventConverter(adapter.EventConverter):も確認できます。
  • MessageConverterは、LangBotメッセージとプラットフォームメッセージ間の変換に使用されます。
  • EventConverterは、LangBotイベントとプラットフォームイベント間の変換に使用されます。
TBC…