ネットワーク設定の詳細
INFO
一部のメッセージングプラットフォーム(個人QQアカウントなど)では、メッセージを処理するために独立したプロトコルエンドポイントが必要です。このようなメッセージングプラットフォームを使用している場合は、以下のネットワーク設定を参照してください。 同時に、LangBotインスタンスがコンテナで実行されている他のサービス(Ollamaなど)に接続する必要がある場合も、以下の設定を参照して、メッセージングプラットフォームを接続したいサービスに置き換えてください。
LangBotと一部のメッセージングプラットフォームは、どちらもDockerを使用してデプロイできます。以下は、4つの異なるシナリオのネットワーク設定の詳細です。
目次
LangBotとメッセージングプラットフォームの両方がDockerコンテナで実行されている場合
メッセージングプラットフォーム(NapCat/Lagrange)とLangBotの両方がDockerを使用して起動される場合、Dockerのネットワーク接続を設定する必要があります。
新しいネットワークを作成します:
docker network create langbot-networkLangBotディレクトリのdocker-compose.yamlファイルにネットワーク設定を追加します(services.langbotフィールドに追加し、networksフィールドの下にlangbot-networkネットワーク設定を追加します):
services:
langbot:
...
networks:
- langbot-network
...
networks:
langbot-network:
external: true次に、メッセージングプラットフォームのdocker-compose.yamlファイルに同じネットワーク設定を追加します(docker runコマンドで直接起動する場合は、起動コマンドに--network langbot-networkを追加します)。その後、メッセージングプラットフォームの設定ファイルで、WSリバース接続アドレスのIPアドレスをlangbotに変更します(例: ws://langbot:2280/ws)。
両方のコンテナを再起動します。
LangBotのみがDockerコンテナで実行されている場合
LangBotのみがDockerを使用してデプロイされている場合、ポート2280から2290はデフォルトでコンテナの外部にマッピングされています。この場合、LangBotはWebSocketサーバーとしてのみ動作し、メッセージングプラットフォームからクライアントとしての接続を受け入れることができます。
メッセージングプラットフォームをReverseWebSocket(reverse wsまたはWebSocketクライアントと呼ばれます)に設定し、LangBotのaiocqhttpアダプターによって有効にされたポートに対応するポートで、ローカル127.0.0.1に接続します。
LangBotもメッセージングプラットフォームもDockerデプロイを使用していない場合
ドキュメントに従ってメッセージングプラットフォームとLangBotの設定を行い、両方のポートを同じ未使用のポートに設定し、両方ともローカル127.0.0.1に接続します。
メッセージングプラットフォームのみがDockerコンテナで実行されている場合(推奨されません)
WARNING
Linuxまたはホストモードのdockerネットワークをサポートする他のシステムのみサポートします。
現在、LangBotのaiocqhttpアダプターはリバースWebSocket接続のみをサポートしています。メッセージングプラットフォームがDockerコンテナで実行され、LangBotがホストマシンで直接実行される場合、メッセージングプラットフォームはLangBotに接続するクライアントとして動作する必要があります。この場合、メッセージングプラットフォームのネットワークをhostモードに設定し、そのWS接続アドレスを127.0.0.1に設定し、ポートをLangBotのaiocqhttpアダプターによって有効にされたポートに対応させることしかできません。
