Cashback
Персонализированные предложения кэшбэка
Возвращает список категорий кэшбэка, персонализированных для текущего пользователя.
Pipeline:
- Загрузка профиля пользователя → DslContext (age, city, country, sex, role, registration_days)
- Получение всех ACTIVE категорий + привязанных DSL-правил
- Фильтрация через DSL engine — правила таргетинга (AGE >= 18 AND CITY IN ("Москва"))
- ML-ранжирование через POST /ml/score (3-retry, 150/300/450ms backoff, math fallback)
- Сортировка по rate_permille DESC
DSL-фильтрация:
- Категория без привязанных правил → доступна всем
- Правило с is_default=true → всегда проходит
- Пустой или "true" DSL → всегда проходит
- Иначе: парсинг + evaluation DSL-выражения против профиля
ML scoring:
- Успех: source = "ml", ставка из rate_permille, объяснение из explanation
- Fallback: source = "math_fallback", ставка = budget_weight × 60% + capacity × 40%
get/api/v1/cashback/offers
Request
- Base URL: http://158.160.83.199:8000
- URL: http://158.160.83.199:8000/api/v1/cashback/offers
- Auth: HTTP bearer
Response
Персонализированные предложения
Example response
{
"offers": [
{
"name": "Рестораны",
"subname": "Кафе и рестораны",
"short_description": "5% кэшбэк на рестораны",
"icon_ref": "restaurant",
"budget_remaining_rub": 45000,
"rate_permille": 50,
"expected_cost_rub": 500,
"explanation": "Высокая активность в категории, оптимальный бюджет",
"rank": 1,
"source": "ml"
}
],
"total_eligible": 8,
"source": "ml"
}Changes
No recorded changes to this operation across all 1 revision of this API.