В статье автор исследует процесс разработки рекомендательной системы для подбора одежды в соответствии с погодными условиями.
Ключевые слова: рекомендательная система, подбор одежды, микросервисная архитектура, открытый исходный код, погодные условия.
На данный момент существует несколько сервисов, предлагающих рекомендации по одежде, среди которых можно отметить приложение Acloset [1] от компании «Looko» и Smart Closet [2] от компании «Rabbit Tech». Рекомендации, генерируемые такими приложениями, неплохо работают, однако они ограничены исключительно конечными пользователями и не предлагают возможности интеграции с внешними платформами.
Разработанная универсальная система с открытым исходным кодом позволяет интегрировать функционал подбора одежды в любые сторонние приложения и веб-сервисы, предоставляя возможность гибкой настройки под бизнес-потребности и индивидуальных пользователей. В отличие от существующих решений, система поддерживает не только работу с виртуальными гардеробами, но и позволяет легко подключать внешние платформы для получения данных о погодных условиях, интеграции с другими сервисами (например, магазинами одежды или модными рекомендациями) и адаптации алгоритмов под специфические нужды пользователей. Открытость исходного кода способствует дальнейшему независимому развитию системы сообществом разработчиков, что значительно ускоряет внедрение новых функций и улучшение существующих. На рисунке 1 приведена диаграмма, отображающая функционал системы.
Рис. 1. UML диаграмма вариантов использования системы
На рисунке 2 показаны взаимосвязи между отдельными сервисами в системе в формате архитектурного стиля. Сервис API Gateway является центральной точкой входа в систему, через которую проходят все запросы от пользователей и внешних приложений. Он осуществляет первоначальную обработку входящих HTTP-запросов, маршрутизирует их к соответствующим микросервисам [3] и агрегирует ответы для передачи обратно клиенту. Благодаря этому обеспечивается единообразие и безопасность взаимодействия между клиентами и внутренними компонентами системы.
При получении запроса API Gateway сначала выполняет проверку аутентификации и авторизации, передавая данные в сервис Auth. После подтверждения доступа запрос перенаправляется к нужному сервису: запросы, связанные с информацией о гардеробе и вещах, направляются в сервис Catalog Cache, запросы на получение погодных данных — в сервис Geo, а для формирования рекомендаций используется сервис Adviser. API Gateway также обрабатывает возникающие ошибки, гарантируя, что клиент получит понятное уведомление даже при сбоях в работе отдельных микросервисов.
Рис. 2. Архитектурный стиль системы
Система предоставляет пользователю рекомендации по выбору одежды, обеспечивая максимальный комфорт в зависимости от текущей погоды. Она служит не только для конечных пользователей, но и предоставляет возможность интеграции с другими платформами и сервисами, что делает её универсальным инструментом для бизнеса и сторонних разработчиков. Открытый исходный код позволяет пользователям адаптировать систему под их специфические нужды и улучшать функциональность.
Система успешно справляется со своей главной задачей — предлагает рекомендации по подбору одежды, учитывая погодные условия. Благодаря гибкости и масштабируемости микросервисной архитектуры, в ближайшее время планируется значительно расширить функционал системы. В частности, будет внедрена персонализация на основе машинного обучения, что позволит предоставлять более точные рекомендации, а также появится возможность делиться своими гардеробами с другими пользователями.
Литература:
- Acloset. — Текст: электронный // acloset.app: [сайт]. — URL: https://www.acloset.app/ (дата обращения: 20.04.2025).
- Smart Closet. — Текст: электронный // smartcloset.me: [сайт]. — URL: https://smartcloset.me/ (дата обращения: 20.04.2025).
- Просто о микросервисах. — Текст: электронный // habr.com: [сайт]. — URL: https://habr.com/ru/companies/raiffeisenbank/articles/346380/ (дата обращения: 20.04.2025).