Spaces:
Sleeping
Sleeping
| # Energy ML API Documentation | |
| ## Overview | |
| This API provides machine learning predictions for industrial energy management with three separate endpoints for different models. | |
| ## Base URL | |
| ``` | |
| https://your-space-name.hf.space | |
| ``` | |
| ## Endpoints | |
| ### 1. Energy Prediction - Random Forest | |
| **Endpoint:** `/api/predict` (Tab 0) | |
| **Method:** POST | |
| **Description:** Predicts daily average energy consumption using Random Forest | |
| #### Request Body | |
| ```json | |
| [ | |
| { | |
| "data": "2025-01-01", | |
| "boosting": 0.0, | |
| "cor": "incolor", | |
| "espessura": 8.0, | |
| "extracao_forno": 750.0, | |
| "porcentagem_caco": 15.0, | |
| "extracao_boosting": 1.5 | |
| } | |
| ] | |
| ``` | |
| #### Response | |
| ```json | |
| [ | |
| { | |
| "data": "01-01-2025", | |
| "predicted_energy": 5.234, | |
| "note": "Add boosting energy separately to get final consumption" | |
| } | |
| ] | |
| ``` | |
| ### 2. Energy Prediction - XGBoost | |
| **Endpoint:** `/api/predict` (Tab 1) | |
| **Method:** POST | |
| **Description:** Predicts daily average energy consumption using XGBoost (best model) | |
| #### Request Body | |
| ```json | |
| [ | |
| { | |
| "data": "2025-01-01", | |
| "boosting": 0.0, | |
| "cor": "incolor", | |
| "espessura": 8.0, | |
| "extracao_forno": 750.0, | |
| "porcentagem_caco": 15.0, | |
| "extracao_boosting": 1.5 | |
| } | |
| ] | |
| ``` | |
| #### Response | |
| ```json | |
| [ | |
| { | |
| "data": "01-01-2025", | |
| "predicted_energy": 5.187, | |
| "note": "Add boosting energy separately to get final consumption" | |
| } | |
| ] | |
| ``` | |
| ### 3. Threshold Detection | |
| **Endpoint:** `/api/predict` (Tab 2) | |
| **Method:** POST | |
| **Description:** Predicts probability of exceeding 8300 and 9000 consumption thresholds | |
| #### Request Body | |
| ```json | |
| { | |
| "data": "2025-01-01", | |
| "cor": "incolor", | |
| "espessura": 8.0, | |
| "ext_boosting": 1.5, | |
| "extracao_forno": 750.0, | |
| "porcentagem_caco": 15.0, | |
| "prod_e": 1, | |
| "prod_l": 0, | |
| "autoclave": 1 | |
| } | |
| ``` | |
| #### Response | |
| ```json | |
| { | |
| "predictions": { | |
| "prediction_1": [ | |
| { | |
| "datetime": "2025-01-01", | |
| "threshold": 8300, | |
| "probabilidade_de_estouro": 0.1234, | |
| "estouro_previsto": 0 | |
| } | |
| ], | |
| "prediction_2": [ | |
| { | |
| "datetime": "2025-01-01", | |
| "threshold": 9000, | |
| "probabilidade_de_estouro": 0.0567, | |
| "estouro_previsto": 0 | |
| } | |
| ] | |
| } | |
| } | |
| ``` | |
| ## Input Parameters | |
| ### Energy Prediction Models | |
| | Parameter | Type | Required | Description | | |
| |-----------|------|----------|-------------| | |
| | `data` | string | Yes | Date in YYYY-MM-DD format | | |
| | `boosting` | float | Yes | Always set to 0.0 (compatibility) | | |
| | `cor` | string | Yes | Glass color: "incolor", "verde", "cinza", "bronze" | | |
| | `espessura` | float | Yes | Glass thickness (mm) | | |
| | `extracao_forno` | float | Yes | Furnace extraction rate | | |
| | `porcentagem_caco` | float | Yes | Glass cullet percentage (%) | | |
| | `extracao_boosting` | float | Yes | External boosting parameter | | |
| ### Threshold Detection Model | |
| | Parameter | Type | Required | Description | | |
| |-----------|------|----------|-------------| | |
| | `data` | string | Yes | Date in YYYY-MM-DD format | | |
| | `cor` | string | Yes | Glass color: "incolor", "verde", "cinza", "bronze" | | |
| | `espessura` | float | Yes | Glass thickness (mm) | | |
| | `ext_boosting` | float | Yes | External boosting parameter | | |
| | `extracao_forno` | float | Yes | Furnace extraction rate | | |
| | `porcentagem_caco` | float | Yes | Glass cullet percentage (%) | | |
| | `prod_e` | int | Yes | Production E (0 or 1) | | |
| | `prod_l` | int | Yes | Production L (0 or 1) | | |
| | `autoclave` | int | Yes | Autoclave usage (0 or 1) | | |
| ## Usage Examples | |
| ### Python | |
| ```python | |
| import requests | |
| import json | |
| # Energy Prediction (XGBoost) | |
| url = "https://your-space-name.hf.space/api/predict" | |
| headers = {"Content-Type": "application/json"} | |
| data = [ | |
| { | |
| "data": "2025-01-01", | |
| "boosting": 0.0, | |
| "cor": "verde", | |
| "espessura": 10.0, | |
| "extracao_forno": 849.0, | |
| "porcentagem_caco": 45.0, | |
| "extracao_boosting": 54.0 | |
| } | |
| ] | |
| response = requests.post(url, json=data, headers=headers) | |
| prediction = response.json() | |
| print(f"Predicted energy: {prediction[0]['predicted_energy']} MWh") | |
| ``` | |
| ### cURL | |
| ```bash | |
| # Threshold Detection | |
| curl -X POST https://your-space-name.hf.space/api/predict \ | |
| -H "Content-Type: application/json" \ | |
| -d '{ | |
| "data": "2025-01-01", | |
| "cor": "incolor", | |
| "espessura": 8.0, | |
| "ext_boosting": 1.5, | |
| "extracao_forno": 750.0, | |
| "porcentagem_caco": 15.0, | |
| "prod_e": 1, | |
| "prod_l": 0, | |
| "autoclave": 1 | |
| }' | |
| ``` | |
| ## Model Performance | |
| - **Random Forest Energy**: R² = 0.50, MAE = 0.24 MWh | |
| - **XGBoost Energy**: R² = 0.53, MAE = 0.24 MWh (recommended) | |
| - **Threshold Detection**: 98.9% accuracy (8300), 100% accuracy (9000) | |
| ## Notes | |
| - **Energy models predict base consumption** - add actual boosting energy separately | |
| - **No temporal features** - models work for any date/time period | |
| - **Real-time prediction** - sub-second response times | |
| - **Batch processing** - energy models accept arrays of inputs | |
| - **Threshold models** output probabilities (0-1) and binary predictions (>0.5) | |
| ## Error Handling | |
| - Invalid JSON: Returns error message | |
| - Missing parameters: Uses default values where possible | |
| - Model errors: Returns error description with context |