/LeadersOfDigital-Gaz

Это наше решение кейса от Газпромбанка в Центральном IT хабе соревнования "Цифровой прорыв 2020"

Primary LanguageJava

CRM будущего

Наше решение состоит из трех основных компонентов: Frontend (ReactJS), микросервисная логика (Quarkus.io) и машинное обучение. Прототип дизайна тоже оставляем тут.

Frontend

Чтобы его запустить, необходимо установить npm. Предполагалось, что тут будет микросервисы, но что-то явно пошло не туда. Поэтому эта штука запускается без Dockerfile.

ML

Модели выполнены на языке Python и помещены на сервер, написанный на Flask. К нему прилагается Dockerfile, однако его можно запустить и "по старинке".

У сервера есть два типа запросов в cUrl. Первый - это рекомендация по текущему клиенту (в том числе и анализ на отток) и анализ эмоций с целью дополнительных рекомандаций. Также, мы выделяем ключевые слова в диалоге менеджера и клиента, чтобы оптимизировать работу менеджера:

curl --location --request POST 'http://localhost:883/predict' --header 'Content-Type: application/json' --data-raw '{
  "crim": 0.85204,"zn":0,"indus": 8.14,"chas":0,"nox": 0.538,"rm":5.965,"age": 89.2,"dis":4.0123,"rad": 4,"tax":307,"ptratio": 21,"lstat":13.83
}'
curl --location --request POST 'http://localhost:883/nlp' --header 'Content-Type: application/json' --data-raw '{
 "text": sometext '}'

Quarkus

Это самая неочевидная часть решения. Эта технология представляет из себя Spring Boot на стероидах. Чтобы ее запустить необходим JDK (>=8) и Maven.

Сам бекенд состоит из трех независимых микросервисов, каждый начинается с rest-. Эти компоненты полностью готовы для встраивания в любую инфраструктуру.

Чтобы их запустить в начале надо сделать docker-compose up в корневой папке (описание БД лежит в папке infrastructure). Только после этого можно делать ./mvnw quarkus:dev внутри каждой папки rest-. Каждый микросервис дружит со SwaggerUI, так что там должно быть все понятно.

В папке kubernetes лежат файлы конфигурации, однако ими так и не воспользовались, так как вытащить сие творение в облако не вышло (не успели).

Контакты

В случае, если что-то решительно категорически пойдет не так, то мой телеграм и vk @ilia_2108, а моя почта ilya210819993@gmail.com