Боты VK/Telegram для автоматизированного ответа пользователям на их вопросы. Диалоги реализованы с помощью DialogFlow от Google. Проект содержит скрипт для автоматизированного обучения агента DialogFlow.
Демки бота:
Если бот получит непонятное сообщение, в Телеграме он так и скажет, что не понял собеседника. ВКонтакте бот не будет отвечать на сообщения, которые не понял, это удобно для того, чтобы на такое сообщение мог ответить оператор и оно не потерялось.
Ниже представлена инструкция, как развернуть проект и запустить ботов на локальной машине.
Первым делом, скачайте код:
git clone https://github.com/pas-zhukov/support-bot.git
Для работы скрипта понадобятся библиотеки, перечисленные в reqirements.txt
.
Устанавливаем их командой:
pip install -r requirements.txt
Бот генерирует ответы с использованием сервиса DialogFlow. Чтобы настроить его под себя, необходимо сделать следующее:
- Создать проект DialogFlow. Как создать.
- Создать "агента", прикрепить его к ранее созданному проекту по id. Как создать агента. Не забудьте выбрать русский язык.
- Натренировать "агента": создать новые intent по выбранной теме, сконфигурировать для него фразы, ожидаемые от пользователя (по этой теме) и создать варианты ответа бота на эти фразы. Т.к. в сердце DialogFlow лежит нейросеть, улавливаться будут не только четко совпадающие фразы, а ещё и фразы, совпадающие по смыслу.
- Включить API DialogFlow.
- Установить консольную утилиту Google Cloud CLI.
- Запустить GCloud CLI и последовательно ввести следующие команды (это авторизует Вас для текущего компьютера и установит рабочий проект):
gcloud auth login
gcloud config set project <id-вашего-проекта-dialogflow>
gcloud auth application-default login
Последняя команда также создаст файл credentials.json
с данными для авторизации, сохраните путь к нему, это может пригодиться в дальнейшем.
Если вам понадобится получить API-ключ самого DialogFlow, воспользуйтесь функцией create_api_key
. После авторизации по инструкции выше использование ключа не понадобится.
Если у Вас есть подготовленные данные для тренировки агента, можно сохранить их в json-файл (пример правильной структуры файла), а затем использовать специальный скрипт для их загрузки в агента DialogFlow:
python dialogflow.py -jf <Путь/ссылка к Вашему json-файлу>
-
Для создания Телеграм-бота нужно написать отцу ботов и сохранить полученный токен. Инструкция по созданию бота и получению токена: ссылка.
-
Бот ВКонтакте работает от имени группы. Нужно создать группу (либо использовать имеющуюся под управлением), в настройках включить сообщения сообщества и разрешить боту на них отвечать. Там же, в настройках, необходимо сгенерировать API-ключ и сохранить его. Как получить токен ВК-бота.
Для работы ботов необходимо в корне с программой создать файл .env
и заполнить его следующим содержимым:
TG_BOT_TOKEN=<API-токен Вашего Телеграм-бота>
VK_BOT_TOKEN=<API-токен бота ВКонтакте>
DIALOGFLOW_PROJECT_ID=<ID проекта DialogFlow>
Бот также поддерживает логирование важных ошибок в админский телеграм-канал (или просто Вам в личку). Чтобы это заработало, нужно задать следующие переменные в .env
:
ADMIN_TG_BOT_TOKEN=<Токен админского Телеграм-бота>
ADMIN_CHAT_ID=<ID чата, в который будут отправляться логи бота>
Телеграм-бот запускается следующей командой:
python tg_bot.py
Бот ВКонтакте запускается следующей командой:
python vk_bot.py
Чтобы приостановить работу бота, используйте сочетание клавиш Ctrl+C.
Код написан в учебно-развлекательных целях.