> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yahont.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Бот для Discord

> Настройка вашего бота для Discord

## Обзор

Доступ к вашему инстансу Yahont можно получить через бота для Discord.

> [!NOTE]
>
> Нужно создать собственное приложение Discord в Developer Portal.

## Конфигурация

### Бот для Discord с самостоятельным размещением

Если вы хотите развернуть собственного бота для Discord со своим инстансом Yahont с самостоятельным размещением,
вам нужно создать собственное приложение Discord.

> [!NOTE]
>
> В Developer Portal вы увидите упоминания «Guilds». Так в Discord внутренне называются серверы.

**1. Создайте новое приложение Discord**

Откройте [Discord Developer Portal](https://discord.com/developers/applications) и нажмите **New Application**.

Задайте приложению имя и нажмите **Create**.

![Создание нового приложения Discord](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/new_discord_app.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=48d5026156698befcb9921f8ee6712bb)

**2. Настройте разрешения и параметры установки**

Откройте вкладку **Installation**.

Снимите флажок **User Install**. Приложение Discord нельзя устанавливать для личного использования.
Его нужно устанавливать только на серверы.

Добавьте следующие области:

```
- bot
- applications.commands
```

Добавьте следующие разрешения:

```
- View channels
- Send messages
- Send messages in threads
- Create public threads
- Create private threads
- Read message history
- Add reactions
```

![Конфигурация установки Discord](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/installation_config.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=77279664ea7761e84c36f5fd6b4be486)

**3. Включите Privileged Gateway Intents**

На вкладке **Bot** прокрутите до раздела **Privileged Gateway Intents** и включите все 3 переключателя:

* Presence Intent
* Server Members Intent
* Message Content Intent

![Privileged gateway intents Discord](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/privileged_gateway_intents.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=3b1648ae702f5a9b09f7416930112eec)

**4. Установите приложение на ваш сервер Discord**

Используйте **Install Link** на вкладке **Installation**, чтобы установить приложение на ваш сервер Discord.

**5. Разрешите приложению доступ к приватному текстовому каналу**

Откройте настройки канала и перейдите на вкладку «Разрешения».

Добавьте своё приложение в список «Разрешённые пользователи».

![Доступ YahontBot к приватному текстовому каналу](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/discord_private_channel_config.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=1f60c6eebdfda7d6f1a90b571724fa3b)

**6. Получите токен бота**

В Developer Portal откройте вкладку **Bot** и найдите раздел **Token**.

Нажмите **Reset Token** и скопируйте токен бота.

![Настройка токена бота Discord](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/bot_token_config.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=c0a572ab94e589828e0675ed85f44b69)

**7. Настройте приложение в Yahont**

Откройте панель администратора Yahont > Боты Discord.

Вставьте токен бота в поле **Токен бота** и нажмите **Создать!**

![Токен бота Discord](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/configure_discord_bot_token.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=5b419b157fe9478c7c291dbd42549579)

**8. Создайте ключ регистрации в Yahont**

Нажмите кнопку **Добавить сервер** и скопируйте ключ регистрации.

> [!NOTE]
>
> Ключ регистрации показывается только один раз. Если вы его потеряете,
> удалите конфигурацию сервера и создайте новую.
>
> Ключ становится недействительным сразу после использования и не даёт никакого другого доступа к вашему инстансу
> Yahont.

**9. Зарегистрируйте сервер в Yahont**

Отправьте ключ регистрации в приватном канале, к которому вы разрешили доступ своему приложению.

Ваш бот Yahont должен ответить сообщением, подтверждающим регистрацию сервера.

![YahontBot зарегистрирован в Yahont](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/register_server.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=fc2210b434f4c3a8ce5421cd4846f709)

В Yahont вы должны увидеть статус сервера **Зарегистрирован**.

![YahontBot зарегистрирован в Yahont](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/configured_discord_server.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=a27e6397a7f74dfb53ef1cef8a9f6ae5)

**10. Настройте поведение в каналах**

Нажмите значок карандаша рядом с названием сервера, чтобы настроить поведение бота.

> [!TIP]
>
> По умолчанию бот не отвечает ни в каких каналах. Нужно выбрать каналы, в которых бот должен отвечать.
>
> Настоятельно рекомендуем настроить для бота **пользовательского агента** с определённым доступом к данным.
> Иначе он может отвечать на основе приватно проиндексированных данных.

Можно настроить:

* Агента по умолчанию, который формирует ответы бота
* Переопределения агента для отдельных каналов
* Должен ли бот отвечать на все сообщения или только на сообщения с упоминанием `@OnyxBot`
* Отвечает ли бот в ответах или в ветках

![Настройка поведения в каналах](https://mintcdn.com/yahont-ai/UKtfkv0aQHzrYqTA/assets/admins/discord_bot/discord_channel_configs.png?fit=max\&auto=format\&n=UKtfkv0aQHzrYqTA\&q=85\&s=ea3fe4f822e15379ab62d382a3e256a4)

## FAQ

### Почему я не вижу все свои каналы в Yahont?

Если вы добавили или удалили каналы на сервере Discord, их нужно синхронизировать с Yahont.

Выполните `!sync-channels` в любом текстовом канале, к которому у YahontBot есть доступ.

### `!` уже занят другой командой!

`!sync-channels` — пока единственная команда, поддерживаемая YahontBot.

При самостоятельном размещении можно изменить префикс команд, задав переменную окружения `DISCORD_BOT_INVOKE_CHAR`.

Если вы используете официального YahontBot, к сожалению, мы не можем изменить префикс.
Однако вы всё равно можете выполнить команду, создав приватный канал, к которому есть доступ только у YahontBot.

### Мой бот для Discord подключён, но не отвечает ни на какие сообщения

Если вы наблюдаете такое поведение, возможно, вы столкнулись со следующей ошибкой (в фоновом контейнере):

```
api_client.py  182: Failed to connect to API: Cannot connect to host 127.0.0.1:8080
```

Чтобы это исправить, убедитесь, что у вас последние файлы docker-compose.yml,
выполнив `git pull` в вашем репозитории Yahont. Убедитесь,
что `API_SERVER_PROTOCOL` и `API_SERVER_HOST` есть в вашем compose-файле.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.