Skip to content

Araime/support-bot

Repository files navigation

Чат-боты для Telegram и Вконтакте(Общение с группой), с использованием DialogFlow

Скрипт состоит из нескольких частей: бот для общения в Telegram, бот для общения в группе во Вконтакте. Боты используют сервис Dialogflow от Google, который отвечает на запросы с использованием обучаемой нейросети. В проект входит дополнительный telegram-бот для получения сообщений об ошибках. В проект входит отдельный скрипт для загрузки новых вопросов и ответов.

vk-bot tg-bot

Пример чат-бота telegram.

Как установить

Скачать

Python3 должен быть уже установлен. Скачать этот репозиторий себе на компьютер.

Рекомендуется использовать virtualenv/venv для изоляции проекта.

Быстрая настройка venv

Начиная с Python версии 3.3 виртуальное окружение идёт в комплекте в виде модуля venv. Чтобы его установить и активировать нужно выполнить следующие действия в командной строке:

Указать скачанный репозиторий в качестве каталога.

cd C:\Usersаш_пользователь\Downloads\папка_репозитория

Установить виртуальное окружение в выбранном каталоге.

Python -m venv env

В репозитории появится папка виртуального окружения env

image

Активировать виртуальное окружение.

env\scripts\activate

Если всё сделано правильно, вы увидите в командной строке (env) слева от пути каталога.

2

Установить зависимости

Используйте pip (или pip3, есть конфликт с Python2) для установки зависимостей:

pip install -r requirements.txt

Получение токенов, ключей, привязка Dialogflow

  1. Создать двух ботов для Telegram, получить их токены у Отца Ботов. Один для общения, другой для сбора логов.
  2. Получить свой chat_id у телеграм-бота userinfobot.
  3. Создайте группу в Vk, она будет доступна во вкладке управление. В настройках группы включите отправку сообщений, создайте ключ доступа. 8
  4. Создайте проект на Google cloud, следуя документации. Вы получите уникальный Project id:
    photo-2021-07-27-15-19-41
  5. Следуя документации, после выполнения пункта "Create a service account and download the private key file", ключевой json-файл загрузится на ваш компьютер. Переименуйте в google-credentialsa.json и положите в данный репозиторий.
  6. На сайте DialogFlow создайте агента, привязав к нему идентификатор проекта из шага 4(Project id). Выберите русский язык для корректной работы агента. Инструкция. Вы увидите меню агента:
    agent

Переменные окружения

Создайте в корне репозитория файл .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

  1. Зарегистрируйтесь на Heroku и создайте приложение (app):

Screenshot-from-2019-04-10-17-43-30

  1. Опубликуйте код репозитория на свой GitHub.
  2. Привяжите свой аккаунт на GitHub к Heroku:

123

  1. Задеплойте проект на Heroku:

5353

  1. В разделе Resources включите ботов vk и telegram:

666

  1. Перейдите в раздел Settings и в пункте Config Vars укажите из вашего файла .env TG_DIALOG_BOT, TG_SERVICE_BOT, TG_CHAT_ID, VK_GROUP_TOKEN, PROJECT_ID:

8

  1. В тот же Config Vars необходимо прописать ваш ключ google-credentials.json. Сделать это нужно следующим образом:
    1. Создайте ключ Config Vars GOOGLE_CREDENTIALS и вставьте содержимое JSON-файла учетных данных учетной записи службы как есть.
    2. Создайте ключ в Config Vars GOOGLE_APPLICATION_CREDENTIALS и установите значение как google-credentials.json.

3gxMn

  1. В разделе Buildpacks добавьте билд и вставьте в него строку https://github.com/gerywahyunugraha/heroku-google-application-credentials-buildpack. Если билд heroku/python отсутствует, добавьте его. Конечный результат:

photo-2021-07-27-15-19-41

Примечание: добавление билдпака в шаге 8 необходимо для создания файла google-credentials.json и корректной работы скрипта.

  1. Задеплоить повторно(пункт 4).

Вы увидите сообщение о запуске в чате бота-логгера:

agent

Обучение новым агента dialogflow новым фразам

Для обучения новым фразам в корне репозиторий создайте файл 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 Имя-Приложения

Руководство по Heroku CLI

Цель проекта

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

Releases

No releases published

Packages

No packages published