В данном репозитории находится решение команды MISIS_AI_Lab. Никакие наработки до хакатона не использовались, продукт был создан только за время хакатона
Нашим решением является веб портал с наиболее актуальной информацией. На нем можно осуществить следующие действия:
- Запуск обучения модели
- Загрузка данных из публичных источников для обучения
- Возможность вручную добавить данные в обучающую выборку
- Выбор выборки для обучения
Фронтенд нашего сервиса доступен по ссылке:
51.250.88.247
Однако, есть возможность развернуть локально.
Перед тем, как развернуть у себя сервис необходим Docker и Docker Compose.
Если требование выполнено, то выполните 3 простых действия:
-
Склонируйте этот репозиторий
-
Зайдите в корневую директорию проекта и запустите следующую команду:
docker-compose up -d
-
Используйте развернутые приложения
- frontend:80 - адрес фронтенда
- server:8000 - адрес сервиса отправки в RabbitMQ
- database:5432 - адрес базы данных PostgreSQL
- broker:15672 - адрес RabbitMQ
- nginx:8001 - статический контент
- parser:9000 - адрес сервиса парсинга данных
На диаграмме ниже можно посмотреть на верхнеуровневую архитектуру нашего сервиса.
В рамках работы над прототипом были учтены лучшие практики построения подобных решений. В качестве главного архитектурного принципа были выбрана несколько:
- Обеспечить минимальное время ожидания для пользователя
- Необходимость отделить бизнес логику веб сервиса от ресурсоемких задач Машинного Обучения
В этой связи мы опираемся на референсные архитектуры ведущих ИТ компаний, а также используем общеприщнанные паттерны, проверенные временем.
В качестве референсных архитектур мы взяли подход IBM в построении решений AI for IT Operations (AIOps), из которого мы поняли, что разбиение процесса на этапы (Collect, Organize, Analyze, Infuse) соответствуют нашим потребноостям.
Что касается паттернов, то мы используем два довольно популярных паттерна:
- Микросервисная архитектура. Каждый сервис может быть развернут отдельно, а большинство коммуникаций - через REST API запросы.
- Database per service. Поскольку база данных используется в нескокльких местах, мы приняли решение выделить отдельный микросервис для обспечения Create, Read, Update, Delete (CRUD) запросов
В случае возникновения каких-либо ошибок или вопросов не стесняйтесь создавать Issue в репозитории. Также можете писать в личные сообщения @misisailab (Telegram, VK) или на почту [email protected]