API de recomendaciones
Documentación para obtener recomendaciones personalizadas usando machine learning.
La API de recomendaciones de Rayuela utiliza algoritmos de machine learning para generar recomendaciones personalizadas basadas en el comportamiento del usuario, preferencias y características de los productos.
/recommendations/personalized/queryObtiene recomendaciones personalizadas para un usuario específico basadas en su historial de interacciones y preferencias. El cuerpo coincide con el esquema público del backend (OpenAPI: GET /api/v1/public-openapi.json). El entrenamiento LTR con target_scores y group_ids es interno al servidor; no se envía desde este endpoint.
Parámetros del request
{
"external_user_id": "user_123",
"recommendation_goal": "user_engagement",
"model_variant": "standard",
"strategy": "hybrid",
"include_explanation": false,
"limit": 10,
"skip": 0,
"context": {
"page_type": "product_detail",
"device": "mobile",
"source_external_product_id": "prod_789"
},
"filters": {
"logic": "and",
"filters": [
{ "field": "category", "op": "eq", "value": "electronics" },
{ "field": "price", "op": "lt", "value": 1000 }
]
}
}Ejemplo de request
curl -X POST "https://rayuela-backend-e7apihrdoa-uc.a.run.app/api/v1/recommendations/personalized/query" \
-H "X-API-Key: sk_prod_tu_api_key" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "user_123",
"recommendation_goal": "user_engagement",
"model_variant": "standard",
"strategy": "hybrid",
"limit": 5,
"filters": {
"logic": "and",
"filters": [
{ "field": "category", "op": "eq", "value": "electronics" }
]
}
}'Respuesta
{
"items": [
{
"externalId": "prod_789",
"name": "Auriculares Bluetooth",
"score": 0.95,
"source": "personalized",
"explanation": "Usuarios con patrones similares interactuaron con este producto"
},
{
"externalId": "prod_456",
"name": "Mouse Inalámbrico",
"score": 0.87,
"source": "trending",
"explanation": "Producto relevante dentro de tu contexto de navegación"
}
],
"total": 2,
"skip": 0,
"limit": 5
}hybrid
Estrategia híbrida equilibrada para combinar relevancia y descubrimiento.
content_based
Basada en similitud de contenido y atributos de catálogo.
collab
Filtrado colaborativo basado en patrones de usuarios similares.
popularity
Productos populares y con tendencia al alza. Útil para usuarios nuevos sin historial.
Filtros de producto
category— categoría específicaprice_min/price_max— rango de preciosbrand— marca específicain_stock— solo productos en stockrating_min— calificación mínima
Filtros de contexto
page_type— tipo de página (home, product_detail, cart)device— dispositivo (mobile, desktop, tablet)location— ubicación geográficatime_of_day— momento del día