Skip to content

pas-zhukov/support-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Support Bot

Боты VK/Telegram для автоматизированного ответа пользователям на их вопросы. Диалоги реализованы с помощью DialogFlow от Google. Проект содержит скрипт для автоматизированного обучения агента DialogFlow.

Демки бота:

gif

Если бот получит непонятное сообщение, в Телеграме он так и скажет, что не понял собеседника. ВКонтакте бот не будет отвечать на сообщения, которые не понял, это удобно для того, чтобы на такое сообщение мог ответить оператор и оно не потерялось.

Ниже представлена инструкция, как развернуть проект и запустить ботов на локальной машине.

Установка зависимостей

Первым делом, скачайте код:

git clone https://github.com/pas-zhukov/support-bot.git

Для работы скрипта понадобятся библиотеки, перечисленные в reqirements.txt. Устанавливаем их командой:

pip install -r requirements.txt

Подготовка бэкенда для ботов

Бот генерирует ответы с использованием сервиса DialogFlow. Чтобы настроить его под себя, необходимо сделать следующее:

  1. Создать проект DialogFlow. Как создать.
  2. Создать "агента", прикрепить его к ранее созданному проекту по id. Как создать агента. Не забудьте выбрать русский язык.
  3. Натренировать "агента": создать новые intent по выбранной теме, сконфигурировать для него фразы, ожидаемые от пользователя (по этой теме) и создать варианты ответа бота на эти фразы. Т.к. в сердце DialogFlow лежит нейросеть, улавливаться будут не только четко совпадающие фразы, а ещё и фразы, совпадающие по смыслу.
  4. Включить API DialogFlow.
  5. Установить консольную утилиту Google Cloud CLI.
  6. Запустить GCloud CLI и последовательно ввести следующие команды (это авторизует Вас для текущего компьютера и установит рабочий проект):
gcloud auth login
gcloud config set project <id-вашего-проекта-dialogflow>
gcloud auth application-default login

Последняя команда также создаст файл credentials.json с данными для авторизации, сохраните путь к нему, это может пригодиться в дальнейшем.

Если вам понадобится получить API-ключ самого DialogFlow, воспользуйтесь функцией create_api_key. После авторизации по инструкции выше использование ключа не понадобится.

Обучение DialogFlow агента

Если у Вас есть подготовленные данные для тренировки агента, можно сохранить их в 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.

Цель проекта

Код написан в учебно-развлекательных целях.

About

Бот технической поддержки, диалоги работают на базе DialofFlow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages