Documentación del Dashboard de Análisis de Consumo
Una exploración profunda de la arquitectura y funcionamiento del backend en Flask. Esta API procesa datos históricos de consumo, genera análisis predictivos y los expone a través de endpoints RESTful para un frontend interactivo.
Librerías y Dependencias
El ecosistema de herramientas que impulsa el análisis y la funcionalidad de la API.
Flask
El microframework que sirve como columna vertebral de la API, gestionando el enrutamiento y las peticiones HTTP.
Flask-CORS
Middleware esencial para habilitar peticiones cross-origin, permitiendo la comunicación segura entre frontend y backend.
Pandas
La principal herramienta para la ingesta, limpieza y manipulación de datos estructurados desde los archivos Excel.
NumPy
Utilizada para operaciones numéricas de alto rendimiento, como ajustes polinomiales y cálculos vectoriales.
Scikit-learn
Implementa los modelos de Machine Learning (Gradient Boosting) para generar predicciones de consumo precisas.
Otras
Incluye python-dotenv para la gestión de configuración, openpyxl como motor de Excel y gunicorn para el despliegue en producción.
Arquitectura del Código
Una vista detallada de los componentes clave y su interacción dentro de la aplicación.
Core Lógico
La función `load_excel_data()` centraliza la lógica de negocio. Orquesta la lectura de datos, limpieza, procesamiento y el cálculo inicial de kWh para el ciclo actual.
Módulos de Análisis
Funciones como `calcular_tendencia_polinomial()` y `crear_predicciones_lgbm()` encapsulan los modelos estadísticos y de machine learning, separando la lógica de análisis del resto de la aplicación.
Endpoints de la API
GET /api/ciclos → Lista de ciclos disponibles.GET /api/baterias → Datos agregados por batería.GET /api/usuarios → Lista de usuarios, con filtro opcional por batería.GET /api/consumo-con-regresion → Endpoint principal con datos históricos y predicciones.POST /reload-excel → Recarga los datos del Excel en caliente.GET /health → Endpoint de monitoreo para health checks.Flujo de Datos
Visualización del recorrido de los datos, desde la entrada hasta la salida como predicción.
1. Ingesta y Procesamiento
Flask recibe una petición. Pandas y Openpyxl leen el archivo Excel, limpiando y estructurando los datos en memoria.
2. Análisis y Modelado
NumPy calcula tendencias polinomiales mientras Scikit-learn aplica modelos de regresión para generar predicciones futuras basadas en patrones históricos.
3. Serialización y Respuesta
Los datos procesados, junto con las tendencias y predicciones, son serializados a formato JSON y devueltos como respuesta a través de los endpoints de la API.