Discord 메시지 미러
Discord 메시지 미러는 채팅하는 동안 채팅 메시지를 Discord 채널로 복사합니다. Conversation(대화), Roleplay(롤플레이), Game(게임) 모드에서 작동합니다.
미러는 단방향 중계입니다. Marinara가 메시지를 내보내기만 하고 Discord는 아무것도 돌려보낼 수 없으므로, 양방향 봇이 아닙니다. 미러는 Discord 웹훅을 사용합니다. 웹훅은 한 앱이 Discord 채널에 메시지를 올릴 수 있게 해 주는 특수한 URL입니다. 미러는 채팅마다 설정합니다. 채팅마다 웹훅 URL을 따로 가지며, 다른 채팅은 각각 URL을 붙여넣기 전까지 꺼진 상태로 남습니다.
Discord 웹훅 URL 만들기
웹훅은 Marinara가 아니라 Discord 안에서 만듭니다. 사용할 Discord 채널을 관리할 수 있는 권한이 필요합니다.
- Discord 서버를 열고 메시지를 받을 채널을 고르세요.
- 그 채널의 설정을 열고 Integrations(연동), Webhooks 순서로 여세요.
- 새 웹훅을 만들고 웹훅 URL을 복사하세요.
Discord 웹훅 URL은 다음과 같은 형태입니다.
https://discord.com/api/webhooks/123456789012345678/AbCdEf-example-token이 URL은 비공개로 두세요. URL을 가진 사람은 누구나 해당 Discord 채널에 메시지를 올릴 수 있습니다.
미러 켜기
웹훅 입력란은 각 채팅의 설정 중 Connected Chats(연결된 채팅) 안에 있습니다. 라벨은 Discord Mirror(Discord 미러)이고, 플레이스홀더는 https://discord.com/api/webhooks/...입니다.
- 미러링할 채팅을 여세요.
- Chat Settings(채팅 설정)를 여세요.
- Connected Chats 섹션을 찾으세요.
- 그 섹션 아래쪽에 있는 입력란에 웹훅 URL을 붙여넣으세요.
이제 그 채팅에서 미러가 켜졌습니다. 끄려면 입력란을 비우세요.
작동하지 않는 경우: 올바른 Discord 웹훅이 아닌 URL을 넣으면 입력란 아래에 "Invalid webhook URL format"이라는 빨간 글씨가 표시됩니다. URL을 고치면 미러 설정이 저장됩니다. 저장할 때 Marinara가 서버에서 URL을 한 번 더 검사합니다.
웹훅 URL은 이 Marinara 설치에만 남습니다. 채팅 내보내기, 내보낸 설정 프로필, Export Profile(프로필 내보내기) 파일에는 들어가지 않으며, 이런 파일을 가져와도 미러가 켜지지 않습니다. 다른 설치로 옮긴 채팅을 미러링하려면 그곳에서 URL을 다시 붙여넣으세요. 이 설치에서 저장한 설정 프로필은 적용할 때 여전히 미러를 설정합니다.
전송되는 내용
Marinara는 내 메시지와 AI 답장을 생성되는 대로 미러링합니다.
- 보낸 사람 이름: 내 메시지에는 현재 페르소나 이름이 붙고, AI 메시지에는 캐릭터 이름이 붙습니다.
- Game Mode에서는 파티원이나 NPC(플레이어가 아닌 캐릭터)의 턴이 "Party"라는 이름으로 전송됩니다. 이야기 내레이션은 "Narrator"라는 이름으로 전송됩니다. 게임에서 Character GM(캐릭터 GM) 옵션을 쓰면 게임 마스터의 답장에는 그 캐릭터의 이름이 대신 붙습니다.
- 그림은 전송되지 않습니다. Discord에는 보낸 사람 이름과 텍스트만 표시됩니다.
- 긴 메시지: Discord는 메시지 하나를 2000자로 제한합니다. 1997자를 넘는 메시지는 잘리며, 미러로 복사된 쪽은 "..."으로 끝납니다.
- 텍스트 안의 @everyone, @here 같은 멘션은 Discord 채널의 누구에게도 알림을 보내지 않습니다.
전송되지 않는 내용
- 재생성한 답장과 스와이프는 다시 미러링되지 않습니다. 스와이프는 같은 메시지에 함께 보관되는 다른 답변입니다. 각 턴의 첫 답장만 전송됩니다.
- Impersonate로 만든 메시지는 미러링되지 않습니다. Impersonate는 AI가 내 대신 메시지를 써 주는 기능입니다.
- 실패한 전송은 다시 보내지 않습니다. Discord가 속도 제한(429)으로 응답한 전송도 다시 보내지 않습니다(아래 참고). 전송이 실패해도 채팅에는 오류가 표시되지 않습니다. 속도 제한 이외의 실패는 서버에만 기록됩니다.
전송 속도 제한
Discord는 앱이 메시지를 올리는 속도를 제한합니다. Marinara는 웹훅 하나당 약 1.2초에 최대 한 건씩 메시지를 보냅니다. 1분에 50건 정도입니다. 그 이상의 메시지는 대기열에서 기다렸다가 순서대로 나갑니다. Discord가 전송에 429(속도를 늦추라는 뜻)로 응답하면 그 메시지는 다시 보내지 않습니다. Marinara는 Discord가 알려 준 Retry-After 시간만큼 기다린 다음 대기열의 다음 메시지로 넘어갑니다.
관련 가이드
- Conversation을 Roleplay나 Game에 연결하기