- добавлена модель персональных весов рекомендаций с нормализацией и ограничениями

- добавлена миграция для user_recommendation_weights и breakdown-полей recommendation_events
- рекомендации теперь используют пользовательские score/vector веса
- feedback ACCEPTED/REJECTED обновляет score-веса пользователя по последней рекомендации
- добавлен API для чтения и ручного обновления весов рекомендаций
- добавлен onboarding endpoint для начальной калибровки пользователя
- добавлены стили рекомендаций: balanced, quality first, mood first, discovery, similar to favorites
- onboarding сохраняет предпочтения, лайки/дизлайки, библиотеку, просмотренные фильмы и стартовые веса
- добавлены метрика обновления весов и расширенные smoke/unit тесты
This commit is contained in:
skettiks
2026-05-21 17:05:26 +03:00
parent a615450896
commit 0dca1f7031
23 changed files with 1425 additions and 45 deletions
@@ -9,6 +9,11 @@ data class RecommendationEvent(
val filmId: UUID,
val eventType: RecommendationEventType,
val score: Double? = null,
val relevanceScore: Double? = null,
val qualityScore: Double? = null,
val contextScore: Double? = null,
val noveltyScore: Double? = null,
val diversityScore: Double? = null,
val createdAt: LocalDateTime = LocalDateTime.now(),
)