Бот для Discord
Общайтесь с персонажами один на один в личных сообщениях или добавьте их на сервер и решите, кто может с ними говорить и кто платит.
Бот Reverie приводит персонажей в два места Discord: в ваши личные сообщения с ботом — для разговоров один на один — и в каналы серверов, где каждый персонаж говорит под своим именем и аватаром. Каждому, кто разговаривает с персонажем, нужен аккаунт Reverie, привязанный к его аккаунту Discord (хватит и бесплатного), а каждый ответ списывается кредитами с какого-то аккаунта Reverie.
Привязка аккаунта
Один аккаунт Discord соответствует ровно одному аккаунту Reverie. Связать их можно любым из способов:
- Через панель интеграций. В приложении откройте Labs → Боты для Discord и Telegram и нажмите Привязать через Discord на карточке Discord. Вы подтверждаете в Discord и сразу возвращаетесь.
- Входом через Discord. Вход в Reverie через Discord заодно привязывает и бота — если только вы не отвязали его в панели: тогда он остаётся отвязанным, пока вы сами не привяжете его снова.
- Из Discord. Выполните
/link-accountна сервере или в личных сообщениях с ботом. Ответ видите только вы: кнопка Привязать аккаунт, которая срабатывает один раз и истекает через 10 минут. Откройте её, войдите — и аккаунты связаны.
Один на один в личных сообщениях
Напишите боту в личные сообщения или выполните /chat на любом сервере, где есть бот, — разговор переедет в ваши личные сообщения, где его видите только вы. /chat без аргументов предлагает персонажей на выбор; добавьте имя, чтобы найти нужного.
- Один персонаж за раз.
/chatпереключает на другого, а/chatsпоказывает персонажей, с которыми вы говорили в личных сообщениях. У каждого свой разговор, так что, вернувшись, вы продолжаете с того же места. - На каждое сообщение приходит ответ — его публикует бот, а над ним мелким шрифтом стоит имя персонажа. Картинки, голосовые сообщения и память работают так же, как в канале.
- Свои сообщения оплачиваете вы. Режимы оплаты и лимиты сервера здесь не действуют.
- Персонажи 18+ следуют настройке 18+ вашего аккаунта: если она выключена, они скрыты и не могут общаться в личных сообщениях.
/remove-characterзавершает текущий разговор — он сохраняется для/chats, — а/reset-chatудаляет его, спросив подтверждение.- Из подкоманд
/settingsв личных сообщениях действуют толькоmodel,languageиchat-style.
Если бот говорит, что не смог вам написать, разрешите в настройках конфиденциальности Discord личные сообщения от участников сервера и попробуйте снова. Недавние разговоры в личных сообщениях видны и в панели интеграций в разделе Личный чат, где кнопка Продолжить на сайте открывает разговор в браузере.
Добавление бота на сервер
Пригласите бота
Нажмите Добавить бота на сервер на карточке Discord в панели интеграций и выберите сервер. Оставьте отмеченными все запрошенные разрешения — зачем нужно каждое, объясняет таблица ниже. Зайдя на сервер, бот публикует короткую памятку для начала там, где сервер показывает сообщения о новых участниках.
Добавьте персонажа в канал
В текстовом канале выполните /add-character и выберите персонажа из автодополнения — там есть публичные персонажи и ваши собственные приватные. Нужны разрешение Manage Channels и привязанный аккаунт. Бот создаёт вебхук, чтобы персонаж мог писать под своим именем, и отправляет приветствие.
Задайте правила
Необязательно. /settings определяет, как отвечают персонажи канала и кто за них платит; /server — кто вообще может с ними говорить. Оба описаны ниже.
Права, которые запрашивает приглашение
| Право | Зачем запрашивается |
|---|---|
| View Channels | Читать канал, в котором используется бот |
| Send Messages | Публиковать ответы и вывод команд |
| Manage Messages | Убирать ответы персонажа, когда удаляют вызвавшее их сообщение |
| Embed Links | Вывод команд и объявления о розыгрыше в сообществе — это вложения |
| Manage Roles | Выдавать роль, которую использует розыгрыш сообщества на собственном сервере Reverie |
| Manage Webhooks | Обязательно. Персонажи говорят через отдельный webhook на каждого |
Без Manage Webhooks команда /add-character не сработает, и персонаж не добавится.
Команды
На сервере команды с пометкой Manage Channels или Manage Server предлагаются только участникам с этим разрешением Discord. Ответы на команды аккаунта и управления видите только вы.
| Команда | Параметры | Где | Что делает |
|---|---|---|---|
/help | — | сервер, ЛС | Показывает список команд — только вам |
/link-account | — | сервер, ЛС | Публикует одноразовую ссылку для связи аккаунтов Discord и Reverie |
/chat | name (необязательно) | сервер, ЛС | Выбирает или меняет персонажа в личных сообщениях. На сервере отправляет выбор вам в личные сообщения |
/chats | — | сервер, ЛС | Персонажи, с которыми вы говорили в личных сообщениях, — чтобы переключаться между ними |
/add-character | name (обязательно) | сервер · Manage Channels | Добавляет персонажа в этот канал, и тот здоровается |
/remove-character | name (обязательно) | сервер · Manage Channels, ЛС | Убирает персонажа и удаляет его вебхук. В личных сообщениях завершает текущий разговор |
/list-characters | — | сервер | Список персонажей этого канала, у каждого кнопка удаления |
/character-info | name (обязательно) | сервер, ЛС | Био, изображения, возраст, пол, оценка, категории, теги и пометка NSFW, со ссылкой на страницу персонажа. С привязанным аккаунтом также показывает кнопки оценки 1–5★, когда вы уже получили от персонажа несколько ответов и его отзывы открыты |
/reset-chat | — | сервер · Manage Channels, ЛС | Удаляет сообщения и сводки канала и сообщает, сколько удалено. В личных сообщениях стирает текущий разговор после подтверждения |
/regenerate-reply | model (необязательно) | сервер, ЛС | Перегенерирует последний ответ персонажа, при желании другой моделью для этой попытки |
/reply-suggestions | — | сервер, ЛС | Три варианта ответа кнопками; нажатый отправляется как ваше сообщение |
/settings | подкоманда (обязательно) | сервер, ЛС | Настройки канала и личные настройки |
/plugins | подкоманда (обязательно) | сервер, ЛС | Показывает работающие здесь плагины; устанавливает, удаляет, включает и выключает официальные плагины и ваши собственные |
/server | — | сервер · Manage Server или тот, кто платит | Кто может говорить с персонажами, дневной лимит на участника, заблокированные участники и расход |
/my-account | — | сервер, ЛС | Кредиты, расход по тарифу, дата продления, число чатов |
/daily | — | сервер, ЛС | Забирает ежедневную награду |
/notify | — | сервер, ЛС | Могут ли персонажи писать вам первыми и какие уведомления приходят в личные сообщения |
/plugins принимает list, install, remove, enable или disable. Предлагаются только официальные плагины и ваши собственные, и только плагины промптов и инструментов; плагин, у которого нужно заполнить настройки, из бота не установить. Результат плагина-инструмента публикуется короткой карточкой от имени персонажа. В канале менять плагины может тот, у кого есть Manage Channels или кто добавил в канал персонажа, а смотреть список может любой; в личных сообщениях решаете вы.
Сама по себе /settings не является командой — к ней всегда идёт одна из шести подкоманд:
| Подкоманда | Параметр | Требует | Действие |
|---|---|---|---|
/settings model | model (необязательно) | — | Ваша модель для главного персонажа этого канала. Пусто — покажет текущую или сбросит. Продвинутые модели могут требовать подписку |
/settings language | language (необязательно) | Manage Channels | Язык ответов в канале. Пусто — возврат к английскому |
/settings channel-mode | mode: auto или mention | Manage Channels | Отвечают ли персонажи на каждое сообщение или только когда к ним обращаются |
/settings chat-style | style: RP или NORMAL | Manage Channels | Ролевая проза с действиями или только реплики |
/settings payment-mode | mode: owner или user | Manage Channels | С кого списывать |
/settings daily-limit | credits (обязательно, ≥ 0) | Manage Channels | Потолок кредитов на сутки UTC. 0 — без ограничений |
Те же настройки есть в веб-панели, отдельно по каналам: Payment mode, Daily credit limit, Chat style, Reply mode, Response language и Your model. Язык и модель остаются там неактивными, пока в канале никто не написал сообщение.
Когда персонаж отвечает
Персонаж отвечает, когда его @упомянули, когда кто-то ответил на его сообщение, или когда канал в режиме автоответа. Автоответ по умолчанию выключен, так что только что добавленный персонаж молчит, пока к нему не обратятся.
Если в канале несколько персонажей, канал ведёт себя как один групповой чат: в одном запросе перечислены все присутствующие персонажи, и модель решает, кто заговорит. Упомянуть имя — это подсказка, которая идёт вместе с вашим сообщением, а не выключатель, заставляющий отвечать именно этого персонажа. Групповые чаты →
Ветки
Ветка в текстовом канале говорит с персонажами этого канала и следует его режиму оплаты, режиму ответов и стилю чата, но ведёт собственную историю — место для побочной сцены, которая не засоряет канал. Она начинает на языке ответов канала; /settings language и /settings model, выполненные в ветке, действуют только на неё. То, что тратит ветка, засчитывается в дневной лимит канала. Команды, меняющие состав персонажей или остальные настройки канала, например /add-character, /list-characters, /plugins или /settings chat-style, отправляют вас в родительский канал. У записей форумов и веток других типов персонажей нет.
Кто платит
| Режим оплаты | С кого списывают | Какие лимиты действуют |
|---|---|---|
| Owner pays (по умолчанию) | Хозяин сервера: аккаунт Reverie, который первым добавил персонажа на сервер, пока кто-то другой не возьмёт оплату на себя | Дневной лимит кредитов канала и дневной лимит на участника, заданный в /server |
| User pays | Баланс самого отправителя | Никакие — каждого участника ограничивает его собственный баланс |
Сообщения стоят столько же, сколько в веб-приложении: по токенам, умноженным на кредитный множитель модели. Дневные счётчики обнуляются в 00:00 UTC, а в окне настроек канала в панели видно сегодняшний расход относительно лимита.
Чтобы перевести оплату на свой аккаунт — например, если тот, кто настраивал бота, ушёл, — откройте /server и нажмите Платить с моего аккаунта. Это касается всех каналов сервера, где платит хозяин.
Правила сервера
/server открывает панель, которую видите только вы. Открыть её могут участники с Manage Server и тот, кто платит за персонажей сервера. В ней видно расход за сегодня и за последние семь дней, участников, потративших больше всех сегодня, и три правила:
| Правило | Варианты |
|---|---|
| Кто может общаться | Все (по умолчанию), Только администраторы или Участники с определёнными ролями — роли выбираются во втором меню |
| Дневной лимит на участника | Сколько кредитов хозяина один участник может потратить за сутки UTC, или Без лимита (по умолчанию). Действует только там, где платит хозяин |
| Заблокированные участники | Выбранные здесь участники не могут говорить с персонажами нигде на сервере |
Администратор здесь — участник с Manage Server. Администраторов и платящий аккаунт никогда не отсекают — ни блокировка, ни режим доступа, а пока не выбрано ни одной роли, Участники с определёнными ролями пускают только их. Участнику, которого не пропускает режим доступа, один раз сообщают, что с персонажами могут говорить только некоторые; заблокированный участник не получает ответа вовсе.
Персонажи с возрастным ограничением
Персонаж 18+ отвечает только в канале с возрастным ограничением, в канале из категории с возрастным ограничением или где угодно на сервере с пометкой 18+ — ветка следует своему каналу. В остальных местах бот вместо ответа объясняет причину. В личных сообщениях персонажи 18+ вместо этого следуют настройке 18+ вашего аккаунта.
Что работает в канале
- Изображения. Персонажи умеют генерировать картинки прямо в Discord.
- Голос наружу. Персонажи могут отправлять голосовые сообщения.
- Голос внутрь. Ваши голосовые сообщения расшифровываются, до 25 МБ.
- Память. Когда модель поддерживает инструменты, персонажи сохраняют, обновляют и удаляют воспоминания, а канон из книг мира попадает в их контекст.
- История. Длинные каналы автоматически сворачиваются в сводки по мере роста.
- Второй персонаж, добавленный в канал, перенимает стиль чата, режим оплаты и дневной лимит этого канала.
Уведомления и ежедневная награда
/notify настраивает две вещи. Персонажи пишут первыми — это уровень проактивности вашего аккаунта, та же настройка, что на сайте: с подпиской персонаж, с которым вы сейчас говорите в личных сообщениях, может написать вам первым — см. Сообщения по инициативе персонажа. Также присылать сюда выбирает, какие из ваших уведомлений Reverie будут приходить ещё и в личные сообщения; сначала включено только Аккаунт и оплата — см. Уведомления. В панели интеграций есть те же варианты.
/daily забирает вашу ежедневную награду — ту же, что на сайте, — и даёт ссылку на розыгрыш.
Правка и удаление сообщений
Если отредактировать своё последнее сообщение, ответ на него будет создан заново.
Удаление сообщения в Discord убирает это сообщение и все сообщения после него из истории персонажа вместе с воспоминаниями и вложениями, созданными после этого момента. Ответы персонажа тоже исчезают из канала. Отменить это нельзя.
Что читает бот
Бот получает каждое сообщение в каналах, которые ему видны, — именно так до него доходят упоминания и ответы. Перед каждым ответом он также читает недавние сообщения канала за последний час, включая те, что обращены не к нему, и передаёт их модели как контекст, чтобы персонаж понимал, о чём речь.
Считайте канал с ботом каналом, который бот слушает. Если это не то, чего вы хотите, отведите персонажам отдельный канал.
Ограничения
| Ограничение | Значение |
|---|---|
| Персонажей на канал | 5 |
| Длина сообщения в Discord | 2 000 символов |
| Размер голосового сообщения | 25 МБ |
| Webhook'ов на канал Discord | 15 (ограничение самого Discord) |
| Сообщений в очереди на канал | 3 |
Быстрые сообщения подряд от одного человека объединяются в один ход.
Отвязка
Отвяжите аккаунт в панели интеграций кнопкой Отвязать аккаунт. Если убрать бота с сервера или выйти с сервера, аккаунт не отвяжется. После отвязки вход через Discord больше не привязывает бота сам — когда захотите вернуть его, используйте Привязать через Discord или /link-account.
Смежное
- Бот для Telegram — те же персонажи, но в Telegram
- Reverie Лаборатория — где находится панель интеграций
- Групповые чаты — как устроены разговоры с несколькими персонажами
- Кредиты — сколько стоит сообщение