[EPIC-AFF-001] Streaming Behavior Scorer & Affinity Matrix

Асинхронный расчет коэффициентов востребованности и формирование матриц предпочтений

Author

Affinity Domain Lead / Data Scientist

Published

July 13, 2026

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).