Skip to content

🥇 Top 1 solution at the Hackathon LDT Yakutia 2023

License

Notifications You must be signed in to change notification settings

dmdin/EmplObserver

Repository files navigation

Сервис прогнозирования увольнения на основе вовлеченности сотрудника

Решение команды: Peach2Win МИСИС

Screenshot

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

Наше решение является сервисом, который позволит руководителям отслеживать вовлеченность сотрудников, а также прогнозировать их увольнение.

Screenshot

Сервис состоит из нескольких компонентов:

EventsPublisher

Данный сервис позволяет собирать активность пользователей за их рабочими компьютерами. Сервис подписывается на события операционной системы и отправляет эти события в Kafka. Сервис позволяет узнать в какие временный интервалы сотрудник был более активен, а также какими приложениями пользовался больше всего по ходу рабочего дня.

Данные сервис должен быть установлен на рабочий компьютеры сотрудников и работать там в фоновом режиме. Стоит отметить что данные сервис является легковесным и для его работы не требуется много ресурсов.

EventsSubscriber

Сервис подписывается на очередь из Kafka и сохраняет полученные события в базу данных Postgresql

Analyzer

Screenshot

Фоновый сервис, который раз в неделю получает статистику активности сотрудников за последнюю неделю через exhange Api. Дополнительно к этой статистике мы добавляем оценку тональности отправленных сотрудником сообщений и добавляем информацию об активности пользователя из Postgresql.

Полученные данные (статистика exchange, тональность сообщений, активность на рабочем ПК) передаются в модель, которая оценивает вероятность увольнения сотрудника.

Для того чтобы эффективно обрабатывать два рабочих интервала сотрудника была разработана SiameseRNNClassifier -- Сиамская (состоит из двух идентичных нейронных подсетей, в нашем случае Recurrent Block) Модель на основе Рекурентных Нейронных Сетей, которая при прогнозировании увольнения учитывает данные не только за текущий период но и за любой другой из прошлого, а использование padding подхода к временным рядам позвоялет нам использовать интервалы любого размера, к тому же при подсчете финальной оценки используется взвешенное среднее, что позволяет задавать веса для каждой статистики.

Полученные данные сохраняются в базу данных и отправляются на почту руководителю.

Пример сообщения руководителю. В файле содержится email сотрудника и вероятность его увольнения. В случае если данной информации руководителю недостаточно, то он может обратиться к веб-приложению и посмотреть более подробную статистику.

image-20231216183928682

Веб-приложение

Сервис позволяет руководителям просматривать информацию о своих сотрудниках. В сервисе можно как просто посмотреть вероятность увольнения, так и посмотреть более подробную информацию об активности. Информация по активность может быть полезна, так как руководитель сможет понять возможные проблемы сотрудника и предложить заблаговременное решение.

🐳 Инструкция по развертыванию

Все сервисы, кроме EventsPublisher хостятся на севере в docker-контейнерах. Для того чтобы запустить наше решение локально нужно выполнить следующие команды:

Скачать репозиторий:

git clone https://github.com/dmdin/EmplObserver.git

Перейти в папку с docker-compose:

cd EmplObserver/dockerItems

Запустить сервисы:

docker-compose up -d

NB!: в файле nginx/nginx.conf указано доменное имя нашего сервера, поэтому при локальном запуске этот сервис выдаст ошибку. Нужно либо заменить доменное имя, либо обращаться напрямую к порту сервиса front.

EventsPublisher

Сервис хостится на рабочих хостах сотрудников

About

🥇 Top 1 solution at the Hackathon LDT Yakutia 2023

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •