Чат-бот для официальной группы ВКонтакте Свердловской региональной благотворительной общественной организации помощи онкологическим больным "Вместе ради жизни" (https://vk.com/vmesteradizhizni)
Продукт призван частично автоматизировать работу администратора группы ВКонтакте, ускорить отклик на типовые запросы пользователей, собирать обратную связь и вопросы пользователей.
- Михаил Миноцкий (помощник тимлида): https://github.com/smoke-m
- Юлия Ермачкова: https://github.com/miscanth
- Олег Чужмаров: https://github.com/floks41
- Кирилл Чураков: https://github.com/kirill-chu
- Python 3.9
- vk-api 11.9.9
- Приветствие пользователей в чате.
- Предоставление ответов на типовые, наиболее часто встречающиеся вопросы пользователей (вопросы и ответы (источники информации) заранее задаются при настройке бота в файле menu.csv, пункты 1-5).
- Направление сообщений обратной связи (отзывы и впечатления о деятельности фонда) от пользователей администратору (пункт 6 меню).
- Направление сообщений пользователя с вопросами специалисту (пункт 7 меню).
- Редактирование меню. Администратору по ключевому слову доступен режим редактирования меню, в котором можно изменить заголовок и информацию по имеющимся пунктам меню, в том числе приветствия.
- Логирование работы бота осуществляется в файл 'logs/logfile.txt'. Настройки и описание параметров логирования хранятся в constants.py в каталоге проекта.
- В диалоге для ответов использование заранее заготовленных эмодзи, фото-, аудио-, видео- материалов.
- Приём в диалоге от пользователей (кроме текста) эмодзи, фото-, аудио-, видео- материалов, передача их администратору.
- Сбор обратной связи (отзывы и впечатления) по результатам общения с чат-ботом и администратором, в целом о сообществе (оценка работы чат-бота).
- Разнообразие сообщений приветствия и реакций бота на действия пользователей (более одного варианта на один вид реакции).
- Меню бота (заранее заготовленные пункты меню и информация, предоставляемая по этим пунктам, включая приветствие) хранится в файле 'data/menu.csv' в каталоге проекта.
- В переменных окружения хранятся токен-сообщества, user id пользователя ВК - администратора чат-бота (которому приходят сообщения пользователей с обратной связью и вопросами), от которого бот принимает команды редактирования меню. (См. файл env.example).
- При заданных переменных окружения после запуска main.py бот готов к работе и принимает команды от пользователей.
Для минимизации трудностей во время разработки и поддержании высокого качества кода в разработке мы используем pre-commit
. Данный фреймворк позволяет проверить код на соответствие PEP8
, защитить ветки master и develop от непреднамеренного коммита, проверить корректность импортов и наличие trailing spaces.
Pre-commit
конфигурируется с помощью специального файл .pre-commit-config.yaml
. Для использования фреймворка его необходимо установить, выполнив команду из активированного виртуального окружения:
(venv)$ pip install pre-commit
или
(venv)$ pip install -r requirements-dev.txt
Для принудительной проверки всех файлов можно выполнить команду:
(venv)$ pre-commit run --all-files
При первом запуске будут скачаны и установлены все необходимые хуки, указанные в конфигурационном файле.
Для автоматической проверки всех файлов необходимо инициализировать фреймворк командой:
(venv)$ pre-commit install
В каталоге проекта при включенном виртуальном окружении обновить менеджер пакетов Package installer for Python, установить зависимости
(venv)$ python -m pip install --upgrade pip
(venv)$ pip install -r requirements.txt
Запустить исполнение основного модуля
(venv)$ python main.py
.