Программа по реализации бота для условного онлайн-издательства, помогающего продвигать авторские блоги и публиковать книги.
Бот умеет отвечать на все типичные вопросы, а те что-то посложнее – перенаправляет на операторов.
По предварительной оценке, это на 70% сократит время ожидания ответа и на 90% повысит довольство жизнью сотрудников службы поддержки.
Примеры работающих ботов: Бот Telegram, Бот Vk
Dialogflow — это платформа от Google для понимания естественного языка, которую можно использовать для создания омниканальных чат-ботов.
Если описать работу платформы несколькими фразами, то это выглядит примерно так. Dialogflow пытается распознать намерения пользователя на основе обучающих фраз, которые ему дают на этапе проектирования. Основываясь на этих обучающих фразах, Dialogflow понимает, какой ответ дать на тот или иной вопрос пользователя.
-
В модуле bot_tg.py реализовано взаимодествие пользователя через интерфейс telegram
-
В модуле bot_vk.py реализовано взаимодествие пользователя через сообщество Вконтакте
-
В модуле logger.py реализован класс собственного обработчика логов
-
В пакете google_methods реализованы методы взаимодействия с сервисом Dialogflow:
detect_intent.py - получение ответного сообщения от сервиса Dialogflow на сообщение пользователя
create_intents.py - загрузка обучающих фраз из json-файла с ответами и создание intents на их основе
Для работы программы необходимо создать файл .env
в корне проекта, содержащий переменные окружения:
TOKEN_VK=<Ключ доступа для группы с ботом Vk>
TOKEN_TG=<Токен от основного бота Tg>
TOKEN_TG_LOG=<Токен от бота Tg для отправки сообщений от логгера>
CHAT_ID_LOG=<Id чата Tg для получения сообщений от логгера>
ADMINS_VK=<Id администраторов Vk для общения с пользователями (через запятую без пробелов)>
GOOGLE_APPLICATION_CREDENTIALS=<Путь до файла в формате json с ключами доступа к проекту в сервисе Google Cloud>
PROJECT_ID=<Id проекта в Google Cloud>
В Google Cloud в разделе IAM&Admin>Service accounts для проекта необходимо получить файл в формате json с ключами доступа и разместить его по пути, указанному в GOOGLE_APPLICATION_CREDENTIALS.
Файл должен иметь следующий вид:
{
"type": "service_account",
"project_id": "your app XXXXXX",
"private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"private_key": "-----BEGIN PRIVATE KEY-----xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"client_email": "xxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxx.iam.gserviceaccount.com",
"client_id": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxxxxxx.iam.gserviceaccount.com"
}
Файлы .profile
и Procfile
необходимы для деплоя на сервие Heroku
git clone https://github.com/Sergryap/verb_game.git
cd verb_game/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
nano .env
python3 google_methods/create_intents.py
Этой командой создадутся Intents в сервие DialogFlow на основании данных файла /google_methods/questions.json
python3 bot_tg.py | python3 bot_vk.py