[EPIC-AFF-001] Streaming Behavior Scorer & Affinity Matrix
Асинхронный расчет коэффициентов востребованности и формирование матриц предпочтений
NoteКраткая карточка эпика
- Эпик: (EPIC-AFF-001)
- Компоненты: affinity-prediction-core, Kafka (KRaft), Affinity_db
- Статус: Готово к реализации
- Направление связи: Kafka (
out.fridge_item.consume/waste) \(\rightarrow\) Affinity Core \(\rightarrow\) Redis / DB
Бизнес-контекст и цель (Business Context)
Каждое действие пользователя на экранах Consume и Waste должно влиять на то, какие продукты система порекомендует купить в следующий раз. Эпик реализует кафка-консьюмеры, которые принимают векторы действий и на лету пересчитывают весовые коэффициенты лояльности группы (home_group_id) к конкретным категориям номенклатуры.
Список атомарных задач:
- [Migrations] Схема матриц лояльности [Метод 1]: Создание таблиц профилей предпочтений групп, весовых коэффициентов продуктов и истории скоринга (
001_init_affinity_tables.sql). - [Backend] Консьюмер векторов потребления [Метод 2]: Обработчик топика
bpds.inventory.out.fridge_item.consumeдля начисления положительного коэффициента продукту (consume_scorer_consumer.py). - [Backend] Консьюмер векторов порчи [Метод 3]: Обработчик топика
bpds.inventory.out.fridge_item.wasteдля наложения штрафного коэффициента на испорченный продукт (waste_penalty_consumer.py). - [Backend] gRPC-метод выдачи коэффициентов [Метод 4]: Реализация gRPC-эндпоинта для асинхронных запросов из домена Inventory (модуль
Shop) для генерации предиктивных списков покупок (get_group_affinity.py).