/Avanpost_MISIS_AI_LAB

Решение команды MISIS_AI_Lab

Primary LanguageJavaScript

AvanPost Challeng. Решение команды MISIS_AI_Lab на трек 1

В данном репозитории находится решение команды MISIS_AI_Lab. Никакие наработки до хакатона не использовались, продукт был создан только за время хакатона

Содержание

Описание решения

Нашим решением является веб портал с наиболее актуальной информацией. На нем можно осуществить следующие действия:

  • Запуск обучения модели
  • Загрузка данных из публичных источников для обучения
  • Возможность вручную добавить данные в обучающую выборку
  • Выбор выборки для обучения

Инструкция по запуску

Фронтенд нашего сервиса доступен по ссылке:
51.250.88.247

Однако, есть возможность развернуть локально.

Локальный запуск

Перед тем, как развернуть у себя сервис необходим Docker и Docker Compose.

Если требование выполнено, то выполните 3 простых действия:

  1. Склонируйте этот репозиторий

  2. Зайдите в корневую директорию проекта и запустите следующую команду:

    docker-compose up -d

  3. Используйте развернутые приложения

    • 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) или на почту misisailab@misis.ru