Análisis de Consumo API

Backend API

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.