Бот-помощник онлайн-издательства "Игра слов" для VK и Telegram, который отвечает на типичные вопросы пользователей. Бот обучаем нейросетью. Бот работает на сервисе Heroku.
Python 3.8, 3.9 или 3.10.
- google-cloud-dialogflow==2.14.0
- python-dotenv==0.20.0
- python-telegram-bot==13.12
- requests==2.27.1
- vk-api==11.9.8
- Для телеграм бота необходимо создать бота в Телеграм и получить токен. Разрешить боту отправлять вам уведомления.
- Для бота в VK необходимо создать сообщество в VK. В настройках сообщества включить сообщения и создать ключ API. Пользователям нужно разрешить сообществу отправлять им сообщения.
- На Google Cloud Platform создать проект, создать ключ API и скачать его в виде файла, создать агента в DialoFlow и обучить его.
Для обучения агента можно запустить скрипт
manage_intents.py
, которые обучит его фразами и ответами из файлаquestions.json
.
- Склонировать проект
https://github.com/rs0x069/game_verbs.git
- Перейти в папку
game_verbs
- Установить пакеты
pip install -r requirements.txt
- Создать файл
.env
со следующими переменными окружения:TELEGRAM_TOKEN
- токен телеграм бота.TELEGRAM_RECIPIENT_CHAT_ID
- id чата в Телеграм, в который бот будет отправлять ошибки.VK_TOKEN
- ключ API из VK.GOOGLE_APPLICATION_CREDENTIALS
- имя файла с регистрационными данными из Google Cloud Platform. Этот файл должен лежать в папке проекта.GOOGLE_DIALOGFLOW_PROJECT_ID
- код проекта в Google Cloud Platform
- Для запуска телеграм бота запустить скрипт
bot_tg.py
python bot_tg.py
- Для запуска бота VK запустить скрипт
bot_vk.py
python bot_vk.py
- Для обучения агента в DialogFlow фразами и ответами из файла
questions.json
запустить скриптmanage_intents.py
python manage_intents.py
Можно указать путь вручную, для этого нужно воспользоваться аргументом -f
или --file_name
:
python manage_intents.py -f /path/filename.json
Пример файла:
{
"Устройство на работу": {
"questions": [
"Как устроиться к вам на работу?",
"Как устроиться к вам?",
"Хочу работать редактором у вас",
],
"answer": "Если вы хотите устроиться к нам, напишите на почту [email protected] ..."
},
...
}
- На компьютере должен быть установлен
docker
- Подготовить файл с переменными окружения
.env
(описание переменных см. в разделе Установка) - Положить файл с регистрационными данными из Google Cloud Platform в папку с проектом или прокинуть этот файл как
volume
в докер-контейнер в директорию/app/
. Указать имя этого файла в файле.env
в переменнойGOOGLE_APPLICATION_CREDENTIALS
. - Находясь в папке с проектом выполнить команду (запустятся боты telegram и vk):
docker compose up -d
- Если в
command
указатьtelegram
, то запустится бот telegram, если указатьvk
, то запустится бот vk (см. пример файла docker-compose.yml)
version: '3.9'
services:
bot_telegram:
build: .
command: telegram
env_file:
- ./.env
bot_vk:
build: .
command: vk
env_file:
- ./.env
Учебный проект для курсов web-разработчиков dvmn.