- Описание задачи
- Исследование
- Описание параметров
- Запуск приложения
- Работа с ботом
- Развитие приложения (инференс)
- Команда
Гипотеза: лечение животного стоит дорого и не всегда удачно, сервис предоставляющий оценку вероятности успешного лечения мог бы быть полезен.
Что делаем:
- Даем рекомендации о целесообразности лечения лошадей;
- Клиники могут рекомендовать лечение даже в случае тяжелой болезни, когда вероятность хорошего исхода низка;
Возможные методы монетизации: подписка, оплата за одну рекомендацию;
Волонтёрские организации смогут использовать приложение для оценки здоровья животных
Перспективы развития приложения:
- расширение под другие классы животных;
- улучшение интерфейса (веб-страница с опросом);
- расширить вывод -- предоставлять доводы в пользу рекомандации, возможные способы решения, стоимость.
Заполнить .env файл, добавив туда переменную BOT_TOKEN, содержащую токен чат-бота в telegram (см. example.env)
Для запуска приложения достаточно выполнить команду:
docker-compose --profile prod up
Из корневой директории репозитория проекта:
pip install -r requirements.txt
python ./src/bot.py
- Подключаться к настроенному чату (см. пункт 2.1)
- Следовать подсказкам в чате (команда /help)
В данный момент точкой входа является скрипт src/bot.py, который совмещает и инференс модели, и поддерживает работу приложения telegram бота.
Очевидно, узким местом текущей версии приложения является именно запуск инференса, что является cpu-bound задачей. По этой причине, не принималось попыток, например, оптимизировать приложение путем перехода к асинхронному коду, т.к. это не даст ощутимых результатов.
Лучшим решением, считаем, переход к сервисной архитектуре, при котором запуск и поддержка инференса модели выделится в отдельный сервис.
- Сервис-бот будет обрабатывать сообщения и отправлять параметры в сервис инференса через мессенджер сообщений;
- Мессенджер будет выполнять роль очереди, что само по себе будет сглаживать нагрузку;
- На стороне сервиса инференса можно будет производить батчинг (при необходимости)
Состав команды в хакатоне:
- Сарапулов Сергей -- data analyst
- Гриценко Андрей -- backend
- Комарова Полина -- data analyst
- Нурмухаметов Артур -- ML-engineer
- Новиков Дмитрий -- ML-engineer