Автор проекта: Алексей Свирин, телеграм — @svirin
Боты отвечают пользователю на сообщения, боты работают на одной бозе фраз, которая загружена в DialogFlow. Ботов можно быстро обучить благодаря дополнительно реализованным функциям. Также в ботах реализована отправка сообщений на отдельного бота в телеграме для ошибок.
Примечание. Если вы задете сложный вопрос для бота, то бот ничего не ответит.
- Создать бота для пользователй в telegram через Отца ботов и взять токен для авторизации.
- Создать бота для сервисных сообщений в telegram через Отца ботов и взять токен для авторизации.
- Узнать свой ID через специального бота.
- Создать бота для сервисных сообщений в telegram через Отца ботов и взять токен для авторизации.
- Узнать свой ID через специального бота.
- Создать сообщество или выбрать из уже созданных.
- Взять сервисный ключ в разделе "Управление" на вкладке "Работа с API"
- Разрешить отправку сообщений на вкладке "Сообщения"
- Зарегистрироваться на сайте сервиса.
- Создать нового агента — нашего бота в DiaologFlow.
- На вкладке General установить настройку V2 API и перейти по ссылке в поле 'Service Account' в единую панель управления сервисами Google для получения авторизационного ключа.
- У вашего сервисного аккаунта необходимо создать ключ и скачать его. Этот ключ авторизации необходимо будет использовать для получения ответов от Dialogflow.
- На вкладке IAM у вашего сервисного аккаунта установить роль 'Администратор Dialogflow API'
- telegram_token: токен для основного телеграм-бота;
- telegram_token_information_message: токен для сервисного телеграм-бота;
- chat_id_information_message: id пользователя телеграм, который будет получать сервисные сообщения;
- vk_community_token: токен для бота ВКонтакте;
- project_id: id проекта в dialogflow, который можно взять вкладке 'General' в поле 'Project ID';
- GOOGLE_APPLICATION_CREDENTIALS: путь для json-файла с ключом авторизации для dialogflow;
- GOOGLE_CREDENTIALS: данную переменную необходимо использовать только, если вы используете Heroku. В данную переменную необходимо поместить содержимое json-файла авторизации для dialogflow.
python3 bot-tg.py
Все требуемые модули указаны в файле requirements.txt
Для установки запустите команду:
python3 pip install -r requirements.txt
Для запуска на Heroku необходимо:
- Файл Procfile. В файле Procfile прописано какой файл нужно запускать на Heroku;
- Файл Pipfile. В файлах Pipfile и reqirements.txt указаны необходимые модули для работы бота;
- В разделе Settings добавить новый Buildpack;
- В раздел Config Vars добавить все переменные окружения.
- На вкладке Intents создать Intent. Это будет отдельной темой для бота.
- Добавить варианты вопросов и ответов.
- На вкладке Small Talk добавить ответы на самые популярные вопросы.
- Файл example phrases.json — пример файла по которому можно построить темы разговора.
- Файл example_create_intent.py — пример файла для парсинга файла из пункта 1. Функция create_intent — пример кода отправки данных для создания темы разговора. Обратите внимание, что API Dialogflow требует отправка ответов и вопросов в формате list.
— project_id: id проекта, который мы получили в пункте 2.5;
— display_name: название Intent (темы диалога);
— training_phrases_parts: фразы на которые будет реагировать бот;
— message_texts: ответы для бота.