Скрипт состоит из нескольких частей: бот для общения в Telegram, бот для общения в группе во Вконтакте. Боты используют сервис Dialogflow от Google, который отвечает на запросы с использованием обучаемой нейросети. В проект входит дополнительный telegram-бот для получения сообщений об ошибках. В проект входит отдельный скрипт для загрузки новых вопросов и ответов.
Python3 должен быть уже установлен. Скачать этот репозиторий себе на компьютер.
Рекомендуется использовать virtualenv/venv для изоляции проекта.
Начиная с Python версии 3.3 виртуальное окружение идёт в комплекте в виде модуля venv. Чтобы его установить и активировать нужно выполнить следующие действия в командной строке:
Указать скачанный репозиторий в качестве каталога.
cd C:\Users\ваш_пользователь\Downloads\папка_репозитория
Установить виртуальное окружение в выбранном каталоге.
Python -m venv env
В репозитории появится папка виртуального окружения env
Активировать виртуальное окружение.
env\scripts\activate
Если всё сделано правильно, вы увидите в командной строке (env) слева от пути каталога.
Используйте pip
(или pip3
, есть конфликт с Python2) для установки
зависимостей:
pip install -r requirements.txt
- Создать двух ботов для Telegram, получить их токены у Отца Ботов. Один для общения, другой для сбора логов.
- Получить свой chat_id у телеграм-бота userinfobot.
- Создайте группу в Vk, она будет доступна во вкладке управление. В настройках группы включите отправку сообщений, создайте ключ доступа.
- Создайте проект на Google cloud, следуя документации.
Вы получите уникальный Project id:
- Следуя документации, после выполнения пункта "Create a service account and download the private key file", ключевой json-файл загрузится на ваш компьютер. Переименуйте в google-credentialsa.json и положите в данный репозиторий.
- На сайте DialogFlow создайте
агента, привязав к нему идентификатор проекта из шага 4(Project id). Выберите
русский язык для корректной работы агента. Инструкция.
Вы увидите меню агента:
Создайте в корне репозитория файл .env
и добавьте в него следующие строки:
TG_DIALOG_BOT=Токен_телеграм_бота
TG_SERVICE_BOT=Токен_бота_логов
TG_CHAT_ID=Чайт_ID_бота_логов
VK_GROUP_TOKEN=Токен_группы_вк
GOOGLE_APPLICATION_CREDENTIALS=Полный_путь_к_файлу_google-credentialsa.json
PROJECT_ID=Ваш_Project_ID
Пример пути к файлу google-credentialsa.json:
C:/Users/Ваш_пользователь/Downloads/Support bot/google-credentials.json
Telegram-бот:
python tg_bot.py
Vk-бот:
python vk_bot.py
- Зарегистрируйтесь на Heroku и создайте приложение (app):
- Опубликуйте код репозитория на свой GitHub.
- Привяжите свой аккаунт на GitHub к Heroku:
- Задеплойте проект на Heroku:
- В разделе Resources включите ботов vk и telegram:
- Перейдите в раздел Settings и в пункте Config Vars укажите из вашего файла .env TG_DIALOG_BOT, TG_SERVICE_BOT, TG_CHAT_ID, VK_GROUP_TOKEN, PROJECT_ID:
- В тот же Config Vars необходимо прописать ваш ключ google-credentials.json.
Сделать это нужно следующим образом:
- Создайте ключ Config Vars GOOGLE_CREDENTIALS и вставьте содержимое JSON-файла учетных данных учетной записи службы как есть.
- Создайте ключ в Config Vars GOOGLE_APPLICATION_CREDENTIALS и установите значение как google-credentials.json.
- В разделе Buildpacks добавьте билд и вставьте в него строку
https://github.com/gerywahyunugraha/heroku-google-application-credentials-buildpack
. Если билд heroku/python отсутствует, добавьте его. Конечный результат:
Примечание: добавление билдпака в шаге 8 необходимо для создания файла google-credentials.json и корректной работы скрипта.
- Задеплоить повторно(пункт 4).
Вы увидите сообщение о запуске в чате бота-логгера:
Для обучения новым фразам в корне репозиторий создайте файл questions.json
и добавьте
в него свои вопросы и ответы. Пример файла:
{
"Устройство на работу": {
"questions": [
"Как устроиться к вам на работу?",
"Как устроиться к вам?",
"Как работать у вас?",
"Хочу работать у вас",
"Возможно-ли устроиться к вам?",
"Можно-ли мне поработать у вас?",
"Хочу работать редактором у вас"
],
"answer": "Если вы хотите устроиться к нам, напишите на почту game-of-verbs@gmail.com мини-эссе о себе и прикрепите ваше портфолио."
},
"Забыл пароль": {
"questions": [
"Не помню пароль",
"Не могу войти",
"Проблемы со входом",
"Забыл пароль",
"Забыл логин",
"Восстановить пароль",
"Как восстановить пароль",
"Неправильный логин или пароль",
"Ошибка входа",
"Не могу войти в аккаунт"
],
"answer": "Если вы не можете войти на сайт, воспользуйтесь кнопкой «Забыли пароль?» под формой входа. Вам на почту прийдёт письмо с дальнейшими инструкциями. Проверьте папку «Спам», иногда письма попадают в неё."
}
}
Затем запустите скрипт обучения:
python agent_training.py
Установить консольный CLI client.
Быстрый старт CLI:
Примечание: для Windows можно открыть командную строку cmd и работать в ней.
Подключение к Heroku:
heroku login
Посмотреть список своих приложений:
heroku apps
Посмотреть логи:
heroku logs --app=имя_приложения
Статус бота:
heroku ps -a имя_приложения
Добавить билдпак(пример):
heroku buildpacks:set https://github.com/gerywahyunugraha/heroku-google-application-credentials-buildpack -a Имя-Приложения
Код написан в учебных целях, это часть курса по созданию чат-ботов на сайте веб-разработчиков Девман.