Настройка и развертывание Telegram-бота



Чтобы использовать Telegram-бот с ViTalk необходимо:

  1. Пройти предыдущие шаги настройки ViTalk

  2. Получить Docker-образ vitalk-tg с Telegram-ботом

  3. Получить Token для нового бота

  4. Создать директорию и файл с конфигурацией.

  5. Настроить доступ пользователей Telegram к ViTalk

  6. Настройка распознавания голоса
  7. Запустить docker-образ

Получение Docker-образа vitalk-tg

Для авторизации в Яндекс-репозитории получите oauth-токен по ссылке:

https://cloud.yandex.ru/docs/container-registry/operations/authentication#oauth

Далее, воспользуйтесь командой docker login в bash.

docker login cr.yandex

В качестве username введите oauth, в качестве пароля - полученный токен.

Далее, при наличии доступа к Яндекс-репозиторию Visiology получить Docker образ можно командой:

docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/dev/vitalk-tg:master


Получение токена для нового бота

Токен бота - это средство, при помощи которого конкретный бот связывается с управляющей программой. Чтобы получить токен бота необходимо:

  1. Войти в Telegram

  2. Обратиться к боту @BotFather


  3. Ввести команду /newbot

  4. Выбрать имя бота (которое будет отображаться в диалоге с ним)


  5. Выбрать username бота (по которому его можно найти в Telegram). Это имя должно заканчиваться на ‘bot’.


  6. Сохраните полученный токен

Конфигурация бота

Выберите директорию для хранения конфигурации. В данном примере выберем директорию /docker-volume/vitalk-tg

sudo mkdir /docker-volume/vitalk-tg
cd /docker-volume/vitalk-tg

Создайте в этой директории файл bot_config.json и заполните его:

{
    "token": "<ВАШ_ТОКЕН>",
    "vitalkUrl": "<URL ViTalk>",
    "proxyUrl": "https://telegg.ru/orig/bot"
}

В поле token вставьте заранее полученный токен бота.

Если ViTalk запущен вместе с платформой, в поле vitalkUrl вставьте:

<http или https>://<Адрес платформы>/vitalk-core

Настройка доступа к ViTalk в Telegram

Авторизация Telegram-пользователей осуществляется через белый список id пользователей. Права доступа к данным через Telegram-бот соответствуют роли, прописанной в настройках соединения.

Настройка доступа:

  1. В директории /docker-volume/vitalk-core/configuration создать файл telegram_whitelist.json с содержимым:

{
  "access_mode": "whitelist",
  "whitelist": [
    <telegram_id_1>,
    <telegram_id_2>,
    <telegram_id_N>
  ]
}
  1. На место <telegram_id_*> подставьте telegram-id пользователя как целое число. Чтобы получить свой id, вы можете обратиться к боту @my_id_bot.

  1. Перезапустить контейнер vitalk-core:

sudo docker service update --init visiology_vitalk-core

Если список пользователей поменяется, вы можете в дальнейшем редактировать этот файл, после чего необходимо перезапустить контейнер vitalk-core.

Отключение авторизации

Бот возможно (но не рекомендуется) сделать доступным для всех пользователей Telegram. Для этого нужно изменить файл /docker-volume/vitalk-core/configuration/telegram_whitelist.json следующим образом:

{
  "access_mode": "*"
}

После изменения необходимо перезапустить контейнер vitalk-core:

sudo docker service update --init visiology_vitalk-core

Настройка распознавания голоса (опционально)

Этап 1. Создайте директорию для хранения голосовых сообщений:

sudo mkdir /docker-volume/vitalk-tg/cache

Этап 2. Получите API TOKEN сервиса распознавания голоса.

Wit.ai (пока поддерживается только он):

  1. Для получения токена вам необходимо иметь профиль в Facebook.

  2. Перейдите по ссылке https://wit.ai/ и авторизуйтесь (“Login“ или “Continue with Facebook“).

  3. Добавьте новое приложение на странице https://wit.ai/apps:

  4. Выберите созданный проект и перейдите в раздел “Settings“.

  5. Установите опцию Language: RUSSIAN (RU) .

  6. Нажмите на “Generate new token“ напротив Client Access Token.

  7. Скопируйте сгенерированный Client Access Token в буфер.

Этап 3. Зайдите в файл с конфигурациями bot_config.json:

Внесите полученный токен в конфигурационный файл, добавив опцию "voiceProvider":

bot_config.json
{
    "token": "<ВАШ_ТОКЕН>",
    "vitalkUrl": "<URL ViTalk>",
    "proxyUrl": "https://telegg.ru/orig/bot"
    "voiceProvider": {
      "witAI": {
        "token": "YOUR_TOKEN"
      }
    }
}

Запуск бота

После настройки для запуска бота необходимо выполнить команду:

sudo docker run -d --name vitalk-tg -v "/docker-volume/vitalk-tg:/opt/configuration" cr.yandex/crpe1mi33uplrq7coc9d/visiology/dev/vitalk-tg:master

Убедиться в отсутствии ошибок при запуске можно при помощи команды:

sudo docker logs -f vitalk-tg

Протестируйте бота, обратившись к нему в telegram, по ранее выданному username:

На этой странице: