Discordメッセージミラー
Discordメッセージミラーは、チャットしている間、チャットのメッセージをDiscordのチャンネルへコピーします。Conversation、Roleplay、Gameの各モードで動作します。
ミラーは一方向の中継です。Marinaraはメッセージを送り出すだけで、Discordから何かを送り返すことはできません。そのため、双方向のボットではありません。ミラーはDiscordのwebhookを使います。webhookとは、あるアプリがDiscordのチャンネルにメッセージを投稿できるようにする専用のURLです。ミラーの設定はチャットごとです。チャットはそれぞれ独自のwebhook URLを持ち、ほかのチャットは、それぞれにURLを貼り付けるまでオフのままです。
DiscordのwebhookのURLを作る
webhookはMarinaraではなくDiscord側で作成します。使いたいDiscordのチャンネルを管理する権限が必要です。
- Discordのサーバーを開き、メッセージを表示したいチャンネルを選びます。
- そのチャンネルの設定を開き、Integrations(連携)、Webhooksの順に進みます。
- 新しいwebhookを作成し、そのwebhook URLをコピーします。
DiscordのwebhookのURLは次のような形です。
https://discord.com/api/webhooks/123456789012345678/AbCdEf-example-tokenこのURLは他人に見せないでください。URLを知っている人は誰でも、そのDiscordのチャンネルにメッセージを投稿できます。
ミラーをオンにする
webhookの入力欄は、チャットごとの設定のConnected Chats(接続チャット)の中にあります。ラベルはDiscord Mirrorで、プレースホルダーはhttps://discord.com/api/webhooks/...です。
- ミラーしたいチャットを開きます。
- Chat Settings(チャット設定)を開きます。
- Connected Chatsのセクションを探します。
- そのセクションの下のほうにある入力欄に、webhook URLを貼り付けます。
これでそのチャットのミラーがオンになります。オフにするには、入力欄を空にします。
うまくいかなかった場合: DiscordのwebhookとしてURLが正しくないと、欄の下に「Invalid webhook URL format」という赤い文字が表示されます。URLを直すと、ミラーの設定が保存されます。保存するとき、Marinaraはサーバー側でもURLをもう一度チェックします。
webhookのURLは、このMarinaraのインストールの中にとどまります。チャットのエクスポート、エクスポートした設定プロファイル、Export ProfileのファイルにはURLが含まれず、それらをインポートしてもミラーがオンになることはありません。別のインストールに移したチャットをミラーするには、移した先でURLを貼り付け直してください。このインストールで保存した設定プロファイルは、適用すれば引き続きミラーを設定します。
送られるもの
Marinaraは、生成されたそばからメッセージとAIの返信をミラーします。
- 送信者の名前: 自分のメッセージには、使用中のペルソナの名前が付きます。AIのメッセージにはキャラクターの名前が付きます。
- Game Modeでは、パーティーメンバーやNPC(プレイヤー以外のキャラクター)のターンは「Party」という名前で送られます。物語の地の文は「Narrator」という名前で送られます。Character GM(キャラクターがGMを担当)を使っている場合は、ゲームマスターの返信にそのキャラクターの名前が付きます。
- 画像は送られません。Discordには送信者の名前とテキストだけが表示されます。
- 長いメッセージ: Discordは1件あたり2000文字までに制限しています。1997文字を超えるメッセージは短縮され、ミラーされたコピーの末尾が「...」になります。
- 本文に@everyoneや@hereが含まれていても、Discordのチャンネルで誰かに通知が飛ぶことはありません。
送られないもの
- 再生成した返信とスワイプは、あらためてミラーされません。スワイプとは、同じメッセージに残しておく別の返答です。送られるのは、各ターンの最初の返信だけです。
- Impersonateで書かれたメッセージはミラーされません。Impersonateは、自分の代わりにAIがメッセージを書く機能です。
- 失敗した送信は再送されません。Discordがレート制限(429)で応答した送信も再送されません。下記を参照してください。送信に失敗しても、チャットにはエラーが表示されません。レート制限以外の失敗は、サーバーにだけ記録されます。
レート制限
Discordはアプリが投稿できる速度を制限しています。Marinaraが送るのは、1つのwebhookにつきおよそ1.2秒に1件までです。1分あたり約50件になります。あふれたメッセージはキューで待ち、順番に送られます。Discordが送信に429(速度を落とすよう求める応答)を返した場合、そのメッセージは再送されません。MarinaraはDiscordが示すRetry-Afterの時間だけ待ってから、キューにある次のメッセージの送信を続けます。
関連ガイド
- ConversationをRoleplayやGameにつなぐ