# Бот для Discord

> Спілкуйся віч-на-віч в особистих повідомленнях або додай персонажів на сервер і вирішуй, хто може з ними говорити і хто платить.

Source: https://reverie.im/uk/docs/integrations/discord-bot
Language: uk

Бот Reverie приводить персонажів у Discord у двох місцях: у твої **особисті повідомлення** з ботом — для розмов віч-на-віч — і в **канали сервера**, де кожен персонаж говорить від власного імені й зі своїм аватаром. Кожному, хто говорить із персонажем, потрібен акаунт Reverie, прив'язаний до акаунта Discord (вистачить безкоштовного), і кожна відповідь оплачується кредитами з акаунта Reverie.

## Прив'яжи свій акаунт \[#link-your-account]

Один акаунт Discord відповідає рівно одному акаунту Reverie. Поєднати їх можна будь-яким із цих способів:

* **З панелі інтеграцій.** У застосунку перейди в **Лабораторія → Боти для Discord і Telegram** і натисни **Прив'язати через Discord** на картці Discord. Ти підтверджуєш дію в Discord і одразу повертаєшся назад.
* **Через вхід за допомогою Discord.** Вхід у Reverie через Discord заодно прив'язує й бота — якщо тільки бота не було відв'язано на панелі: тоді він лишається відв'язаним, доки ти власноруч не прив'яжеш його знову.
* **З Discord.** Виконай `/link-account` на сервері або в особистих повідомленнях із ботом. Відповідь бачиш лише ти: кнопку **Прив'язати мій акаунт**, яка спрацьовує один раз і діє **10 хвилин**. Відкрий її, увійди — і акаунти поєднано.

## Спілкування віч-на-віч в особистих повідомленнях \[#chat-one-on-one-in-your-dms]

Надішли боту особисте повідомлення або виконай `/chat` на будь-якому сервері, де є бот, — розмова переходить в особисті повідомлення, де її бачиш лише ти. Сама команда `/chat` пропонує персонажів на вибір; додай ім'я, щоб знайти конкретного.

* **Один персонаж за раз.** `/chat` перемикає на когось іншого, а `/chats` показує персонажів, з якими в тебе були розмови в особистих повідомленнях. Кожен зберігає власну розмову, тож після повернення вона продовжиться з того самого місця.
* **На кожне повідомлення є відповідь** — її публікує бот, а над нею дрібним шрифтом указано ім'я персонажа. Зображення, голосові повідомлення й пам'ять працюють так само, як у каналі.
* **Ти платиш** за власні повідомлення. Режими оплати й ліміти сервера тут не діють.
* **Персонажі 18+** залежать від налаштування 18+ у твоєму акаунті: якщо його вимкнено, вони приховані й не можуть спілкуватися в особистих повідомленнях.
* `/remove-character` завершує поточну розмову — вона лишається збереженою для `/chats`, — а `/reset-chat` очищує її після підтвердження.
* Із підкоманд `/settings` в особистих повідомленнях діють лише `model`, `language` і `chat-style`.

Якщо бот повідомляє, що не зміг тобі написати, дозволь особисті повідомлення від учасників сервера в налаштуваннях конфіденційності Discord і спробуй ще раз. Твої нещодавні розмови в особистих повідомленнях також з'являються на панелі інтеграцій у розділі **Особистий чат**, де кнопка **Продовжити на сайті** відкриває розмову в браузері.

## Додай бота на сервер \[#add-the-bot-to-a-server]

### Запроси бота \[#invite-the-bot]

Натисни **Додати бота на сервер** на картці Discord на панелі інтеграцій і вибери сервер. Залиш позначеними всі запитувані дозволи — у таблиці нижче пояснено, навіщо кожен із них. Приєднавшись, бот публікує коротке повідомлення для початку роботи там, де сервер показує повідомлення про нових учасників.

### Додай персонажа в канал \[#add-a-character-to-a-channel]

У текстовому каналі виконай `/add-character` і вибери персонажа з автодоповнення — воно охоплює публічних персонажів і твоїх власних приватних. Тобі потрібен дозвіл **Manage Channels** і прив'язаний акаунт. Бот створює вебхук, щоб персонаж міг писати від власного імені, а потім надсилає привітання.

### Задай правила \[#set-the-rules]

Необов'язково. `/settings` визначає, як відповідають персонажі каналу і хто за них платить; `/server` визначає, хто взагалі може з ними говорити. Обидві команди описано нижче.

## Дозволи, які запитує запрошення \[#permissions-the-invite-requests]

| Дозвіл              | Навіщо він потрібен                                                                |
| ------------------- | ---------------------------------------------------------------------------------- |
| **View Channels**   | Читати канал, у якому використовують бота                                          |
| **Send Messages**   | Публікувати відповіді й результати команд                                          |
| **Manage Messages** | Прибирати відповіді персонажа, коли повідомлення, на яке він відповідав, видаляють |
| **Embed Links**     | Результати команд і оголошення розіграшу спільноти публікуються як вбудовані блоки |
| **Manage Roles**    | Видавати роль, яку використовує розіграш спільноти на власному сервері Reverie     |
| **Manage Webhooks** | **Обов'язковий.** Персонажі говорять через окремий вебхук для кожного персонажа    |

Без **Manage Webhooks** команда `/add-character` не спрацьовує, і персонажа не буде додано.

## Команди \[#commands]

На сервері команди, позначені **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` означає без обмежень                                                                                               |

Ті самі налаштування є на вебпанелі для кожного каналу: **Режим оплати**, **Денний ліміт кредитів**, **Стиль чату**, **Режим відповідей**, **Мова відповідей** і **Твоя модель**. Мова й модель там лишаються неактивними, доки хтось не надішле повідомлення в канал.

## Коли персонаж відповідає \[#when-a-character-replies]

Персонаж відповідає, коли його **@згадують**, коли хтось **відповідає** на одне з його повідомлень або коли в каналі ввімкнено автовідповіді. Автовідповіді **за замовчуванням вимкнені**, тож щойно доданий персонаж мовчить, доки до нього не звернуться.

Якщо в каналі кілька персонажів, канал поводиться як один груповий чат: у промпті перелічено всіх присутніх персонажів, і модель вирішує, хто говорить. Згадка імені — це підказка, яка передається разом із твоїм повідомленням, а не перемикач, що змушує саме цього персонажа відповісти. [Групові чати →](https://reverie.im/uk/docs/chatting/group-chats)

## Гілки \[#threads]

Гілка в текстовому каналі говорить із персонажами цього каналу й дотримується його режиму оплати, режиму відповідей і стилю чату, але має власну історію — місце для побічної сцени, яка не захаращує канал. Вона починає з мовою відповідей каналу; `/settings language` і `/settings model`, використані в гілці, діють лише для неї. Витрати гілки враховуються в денному ліміті каналу. Команди, що змінюють склад персонажів чи інші налаштування каналу, як-от `/add-character`, `/list-characters`, `/plugins` або `/settings chat-style`, відсилають тебе до батьківського каналу. У дописах форуму й гілках інших типів персонажів немає.

## Хто платить \[#who-pays]

| Режим оплати                           | Хто платить                                                                                                          | Які ліміти діють                                                                  |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| **Платить власник** (за замовчуванням) | Господар сервера: акаунт Reverie, який першим додав персонажа на сервер, доки хтось інший не перебере оплату на себе | Денний ліміт кредитів каналу та денний ліміт на учасника, заданий через `/server` |
| **Платить користувач**                 | Власний баланс кожного, хто надсилає повідомлення                                                                    | Немає — кожен учасник обмежений власним балансом                                  |

Повідомлення коштують стільки ж, скільки у вебзастосунку: за токени, помножені на множник кредитів моделі. Денні лічильники скидаються о **00:00 UTC**, а діалог налаштувань каналу на панелі показує сьогоднішнє використання порівняно з лімітом.

Щоб оплачувати рахунок зі свого акаунта — скажімо, якщо людина, яка налаштувала бота, пішла, — відкрий `/server` і натисни **Платити з мого акаунта**. Це діє для кожного каналу сервера, де платить господар.

## Правила сервера \[#server-rules]

`/server` відкриває панель, яку бачиш лише ти. Відкрити її можуть учасники з дозволом **Manage Server**, а також той, хто платить за персонажів сервера. Панель показує використання за сьогодні й за останні сім днів, учасників, які сьогодні витратили найбільше, і три правила:

| Правило                      | Варіанти                                                                                                                                        |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Хто може говорити**        | **Усі** (за замовчуванням), **Лише адміністратори** або **Учасники з певними ролями** — ролі вибирають у другому меню                           |
| **Денний ліміт на учасника** | Скільки кредитів господаря один учасник може витратити за добу за UTC, або **Без ліміту** (за замовчуванням). Діє лише там, де платить господар |
| **Заблоковані учасники**     | Вибрані тут учасники не можуть говорити з персонажами ніде на сервері                                                                           |

Адміністратор тут — це учасник із дозволом **Manage Server**. Ні блокування, ні режим доступу ніколи не відрізають адміністраторів і акаунт, що платить, а доки не вибрано жодної ролі, **Учасники з певними ролями** дозволяє говорити лише їм. Учасник, якого режим доступу не охоплює, один раз отримує повідомлення, що з персонажами можуть говорити лише деякі учасники; заблокований учасник не отримує жодної відповіді.

## Персонажі з віковими обмеженнями \[#age-restricted-characters]

Персонаж 18+ відповідає лише в каналі з віковими обмеженнями, у каналі всередині категорії з віковими обмеженнями або будь-де на сервері з позначкою 18+ — гілка дотримується свого каналу. Деінде бот пояснює, чому не відповідає. В особистих повідомленнях такі персонажі натомість залежать від налаштування 18+ у твоєму акаунті.

## Що працює в каналі \[#what-works-in-a-channel]

* **Зображення.** Персонажі можуть генерувати зображення в Discord.
* **Голос від персонажа.** Персонажі можуть надсилати голосові повідомлення.
* **Голос від тебе.** Голосові повідомлення, які ти надсилаєш, транскрибуються, якщо їхній розмір не перевищує **25 МБ**.
* **Пам'ять.** Персонажі зберігають, оновлюють і видаляють спогади, якщо модель підтримує інструменти, а канон із книг світу входить до їхнього контексту.
* **Історія.** Довгі канали автоматично підсумовуються в міру зростання.
* Другий персонаж, доданий у канал, переймає стиль чату, режим оплати й денний ліміт цього каналу.

## Сповіщення й щоденний вхід \[#notifications-and-check-ins]

`/notify` налаштовує дві речі. **Персонажі пишуть першими** — це рівень проактивності твого акаунта, те саме налаштування, що й на сайті: з підпискою персонаж, з яким ти говориш в особистих повідомленнях, може написати тобі першим — див. [Проактивні повідомлення](https://reverie.im/uk/docs/chatting/proactive-messages). **Також надсилати сюди** визначає, які зі сповіщень Reverie додатково надходитимуть тобі в особисті повідомлення; спочатку ввімкнено лише **Акаунт і оплата** — див. [Сповіщення](https://reverie.im/uk/docs/account/notifications). Панель інтеграцій пропонує ті самі варіанти.

`/daily` отримує винагороду за [щоденний вхід](https://reverie.im/uk/docs/rewards/daily-check-in) — той самий, що й на сайті, — і дає посилання на розіграш.

## Редагування й видалення повідомлень \[#editing-and-deleting-messages]

Якщо відредагувати своє останнє повідомлення, відповідь на нього згенерується заново.

> Видалення повідомлення в Discord видаляє з історії персонажа це повідомлення
> **і всі повідомлення після нього**, а також спогади й вкладення, створені
> після цього моменту. Відповіді персонажа також зникають із каналу. Цю дію не
> можна скасувати.

## Що читає бот \[#what-the-bot-reads]

Бот отримує кожне повідомлення в каналах, які він бачить, — так до нього доходять згадки й відповіді. Перед кожною відповіддю він також читає **нещодавні повідомлення каналу за останню годину**, зокрема й ті, що адресовані не йому, і передає їх моделі як контекст, щоб персонаж розумів, що відбувається в каналі.

Вважай канал, де є бот, каналом, який бот слухає. Якщо тобі це не підходить, розмісти персонажів в окремому каналі.

## Ліміти \[#limits]

| Ліміт                          | Значення                      |
| ------------------------------ | ----------------------------- |
| Персонажів на канал            | 5                             |
| Довжина повідомлення в Discord | 2 000 символів                |
| Розмір голосового повідомлення | 25 МБ                         |
| Вебхуків на канал Discord      | 15 (власне обмеження Discord) |
| Повідомлень у черзі на канал   | 3                             |

Кілька повідомлень поспіль від однієї людини, надісланих швидко, об'єднуються в один хід.

## Відв'язування \[#unlinking]

Відв'яжи акаунт на панелі інтеграцій кнопкою **Відв'язати акаунт**. Видалення бота із сервера чи вихід із сервера не відв'язує твій акаунт. Після відв'язування вхід через Discord більше не прив'язує бота автоматично — коли захочеш повернути зв'язок, скористайся **Прив'язати через Discord** або `/link-account`.

## Пов'язане \[#related]

* [Бот для Telegram](https://reverie.im/uk/docs/integrations/telegram-bot) — ті самі персонажі в Telegram
* [Reverie Labs](https://reverie.im/uk/docs/integrations/labs) — де розміщено панель інтеграцій
* [Групові чати](https://reverie.im/uk/docs/chatting/group-chats) — як працюють розмови з кількома персонажами
* [Кредити](https://reverie.im/uk/docs/billing/credits) — скільки коштує повідомлення
