Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -35,14 +35,14 @@ class EnergyMLPredictor:
|
|
35 |
self.xgb_encoders = xgb_data['label_encoders']
|
36 |
|
37 |
# Load Threshold Models
|
38 |
-
if os.path.exists('
|
39 |
-
with open('
|
40 |
threshold_data = pickle.load(f)
|
41 |
self.threshold_model_83 = threshold_data['model']
|
42 |
self.threshold_preprocessor = threshold_data['preprocessor']
|
43 |
|
44 |
-
if os.path.exists('
|
45 |
-
with open('
|
46 |
threshold_data = pickle.load(f)
|
47 |
self.threshold_model_90 = threshold_data['model']
|
48 |
|
@@ -317,6 +317,50 @@ energy_example = """[
|
|
317 |
}
|
318 |
]"""
|
319 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
# Create Gradio interface
|
321 |
with gr.Blocks(title="Energy ML Cloud", theme=gr.themes.Default()) as app:
|
322 |
|
@@ -335,6 +379,13 @@ with gr.Blocks(title="Energy ML Cloud", theme=gr.themes.Default()) as app:
|
|
335 |
value="Threshold Detection"
|
336 |
)
|
337 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
json_input = gr.Textbox(
|
339 |
label="JSON Input",
|
340 |
placeholder="Enter JSON data here...",
|
@@ -357,7 +408,19 @@ with gr.Blocks(title="Energy ML Cloud", theme=gr.themes.Default()) as app:
|
|
357 |
else:
|
358 |
return energy_example
|
359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
model_choice.change(update_example, inputs=[model_choice], outputs=[json_input])
|
|
|
|
|
|
|
361 |
predict_btn.click(make_prediction, inputs=[model_choice, json_input], outputs=[output])
|
362 |
|
363 |
with gr.Accordion("Model Information", open=False):
|
|
|
35 |
self.xgb_encoders = xgb_data['label_encoders']
|
36 |
|
37 |
# Load Threshold Models
|
38 |
+
if os.path.exists('threshold_model_83_autoclave.pkl'):
|
39 |
+
with open('threshold_model_83_autoclave.pkl', 'rb') as f:
|
40 |
threshold_data = pickle.load(f)
|
41 |
self.threshold_model_83 = threshold_data['model']
|
42 |
self.threshold_preprocessor = threshold_data['preprocessor']
|
43 |
|
44 |
+
if os.path.exists('threshold_model_90_autoclave.pkl'):
|
45 |
+
with open('threshold_model_90_autoclave.pkl', 'rb') as f:
|
46 |
threshold_data = pickle.load(f)
|
47 |
self.threshold_model_90 = threshold_data['model']
|
48 |
|
|
|
317 |
}
|
318 |
]"""
|
319 |
|
320 |
+
# Test data from holdout period (last 2 months used in training)
|
321 |
+
week_test_data = """[
|
322 |
+
{"data": "2025-04-19", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2007, "extracao_forno": 699.561202512973, "porcentagem_caco": 10.0062724674475, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
323 |
+
{"data": "2025-04-20", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2026, "extracao_forno": 699.169485837721, "porcentagem_caco": 9.99757589767354, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 0},
|
324 |
+
{"data": "2025-04-21", "cor": 0, "espessura": 8.0, "ext_boosting": 1.201, "extracao_forno": 699.134346519477, "porcentagem_caco": 9.99807838764974, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
325 |
+
{"data": "2025-04-22", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2074, "extracao_forno": 701.318973743488, "porcentagem_caco": 9.99545180216949, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
326 |
+
{"data": "2025-04-23", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2028, "extracao_forno": 702.765143096952, "porcentagem_caco": 9.97488288777139, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 1},
|
327 |
+
{"data": "2025-04-24", "cor": 0, "espessura": 8.0, "ext_boosting": 1.3973, "extracao_forno": 700.8439481142, "porcentagem_caco": 10.002226628142, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 1},
|
328 |
+
{"data": "2025-04-25", "cor": 0, "espessura": 8.0, "ext_boosting": 1.6005, "extracao_forno": 702.032548397562, "porcentagem_caco": 9.98529201530728, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1}
|
329 |
+
]"""
|
330 |
+
|
331 |
+
month_test_data = """[
|
332 |
+
{"data": "2025-04-19", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2007, "extracao_forno": 699.561202512973, "porcentagem_caco": 10.0062724674475, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
333 |
+
{"data": "2025-04-20", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2026, "extracao_forno": 699.169485837721, "porcentagem_caco": 9.99757589767354, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 0},
|
334 |
+
{"data": "2025-04-21", "cor": 0, "espessura": 8.0, "ext_boosting": 1.201, "extracao_forno": 699.134346519477, "porcentagem_caco": 9.99807838764974, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
335 |
+
{"data": "2025-04-22", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2074, "extracao_forno": 701.318973743488, "porcentagem_caco": 9.99545180216949, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
336 |
+
{"data": "2025-04-23", "cor": 0, "espessura": 8.0, "ext_boosting": 1.2028, "extracao_forno": 702.765143096952, "porcentagem_caco": 9.97488288777139, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 1},
|
337 |
+
{"data": "2025-04-24", "cor": 0, "espessura": 8.0, "ext_boosting": 1.3973, "extracao_forno": 700.8439481142, "porcentagem_caco": 10.002226628142, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 1},
|
338 |
+
{"data": "2025-04-25", "cor": 0, "espessura": 8.0, "ext_boosting": 1.6005, "extracao_forno": 702.032548397562, "porcentagem_caco": 9.98529201530728, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
339 |
+
{"data": "2025-04-26", "cor": 0, "espessura": 8.0, "ext_boosting": 1.7549, "extracao_forno": 703.33718364331, "porcentagem_caco": 9.96677008271902, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
340 |
+
{"data": "2025-04-27", "cor": 0, "espessura": 8.0, "ext_boosting": 1.8022, "extracao_forno": 698.519152270116, "porcentagem_caco": 10.0355158154479, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
341 |
+
{"data": "2025-04-28", "cor": 0, "espessura": 8.0, "ext_boosting": 1.8023, "extracao_forno": 699.802291106822, "porcentagem_caco": 10.0171149610168, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
342 |
+
{"data": "2025-04-29", "cor": 0, "espessura": 8.0, "ext_boosting": 1.803, "extracao_forno": 702.213883737496, "porcentagem_caco": 9.98271347568585, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 0},
|
343 |
+
{"data": "2025-04-30", "cor": 0, "espessura": 8.0, "ext_boosting": 1.801, "extracao_forno": 701.164091438783, "porcentagem_caco": 9.99765972843181, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 0},
|
344 |
+
{"data": "2025-05-01", "cor": 0, "espessura": 8.0, "ext_boosting": 1.7999, "extracao_forno": 701.096395285213, "porcentagem_caco": 9.99862507800837, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 0},
|
345 |
+
{"data": "2025-05-02", "cor": 0, "espessura": 8.0, "ext_boosting": 1.8016, "extracao_forno": 701.004721690124, "porcentagem_caco": 9.99993264396119, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 1, "autoclave": 0},
|
346 |
+
{"data": "2025-05-03", "cor": 0, "espessura": 8.0, "ext_boosting": 1.8023, "extracao_forno": 699.505291072901, "porcentagem_caco": 10.021368086077, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
347 |
+
{"data": "2025-05-04", "cor": 0, "espessura": 8.0, "ext_boosting": 1.8036, "extracao_forno": 700.073447985429, "porcentagem_caco": 10.0132350686523, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
348 |
+
{"data": "2025-05-05", "cor": 0, "espessura": 8.0, "ext_boosting": 0.689, "extracao_forno": 700.60585295748, "porcentagem_caco": 10.0056258028798, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
349 |
+
{"data": "2025-05-06", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 699.123418185867, "porcentagem_caco": 10.026841924692, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
350 |
+
{"data": "2025-05-07", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 699.086556585488, "porcentagem_caco": 10.0273706223712, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
351 |
+
{"data": "2025-05-08", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 698.120389195209, "porcentagem_caco": 10.0412480547676, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
352 |
+
{"data": "2025-05-09", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 697.228099576186, "porcentagem_caco": 9.9680434627127, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
353 |
+
{"data": "2025-05-10", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 697.37935572186, "porcentagem_caco": 9.96588147179382, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 0},
|
354 |
+
{"data": "2025-05-11", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 699.563378916139, "porcentagem_caco": 10.0205359675357, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
355 |
+
{"data": "2025-05-12", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 698.733542903546, "porcentagem_caco": 10.0324366436888, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
356 |
+
{"data": "2025-05-13", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 699.509702244859, "porcentagem_caco": 10.0213048904162, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
357 |
+
{"data": "2025-05-14", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 701.657766576732, "porcentagem_caco": 9.99062553558067, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
358 |
+
{"data": "2025-05-15", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 674.645706945424, "porcentagem_caco": 10.0052515424159, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
359 |
+
{"data": "2025-05-16", "cor": 0, "espessura": 8.0, "ext_boosting": 0.0, "extracao_forno": 653.148421891636, "porcentagem_caco": 9.95179622600148, "pot_boost": 3.0, "Prod_E": 0, "Prod_L": 0, "autoclave": 1},
|
360 |
+
{"data": "2025-05-17", "cor": 0, "espessura": 6.0, "ext_boosting": 0.0, "extracao_forno": 611.090907286899, "porcentagem_caco": 9.98214819965588, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1},
|
361 |
+
{"data": "2025-05-18", "cor": 0, "espessura": 6.0, "ext_boosting": 0.0, "extracao_forno": 599.399563235682, "porcentagem_caco": 10.0100173040013, "pot_boost": 3.0, "Prod_E": 1, "Prod_L": 0, "autoclave": 1}
|
362 |
+
]"""
|
363 |
+
|
364 |
# Create Gradio interface
|
365 |
with gr.Blocks(title="Energy ML Cloud", theme=gr.themes.Default()) as app:
|
366 |
|
|
|
379 |
value="Threshold Detection"
|
380 |
)
|
381 |
|
382 |
+
# Quick test data options
|
383 |
+
gr.Markdown("### Quick Test Options")
|
384 |
+
with gr.Row():
|
385 |
+
load_week_btn = gr.Button("Load Week Test Data", size="sm")
|
386 |
+
load_month_btn = gr.Button("Load Month Test Data", size="sm")
|
387 |
+
clear_btn = gr.Button("Clear", size="sm")
|
388 |
+
|
389 |
json_input = gr.Textbox(
|
390 |
label="JSON Input",
|
391 |
placeholder="Enter JSON data here...",
|
|
|
408 |
else:
|
409 |
return energy_example
|
410 |
|
411 |
+
def load_week_data():
|
412 |
+
return week_test_data
|
413 |
+
|
414 |
+
def load_month_data():
|
415 |
+
return month_test_data
|
416 |
+
|
417 |
+
def clear_data():
|
418 |
+
return ""
|
419 |
+
|
420 |
model_choice.change(update_example, inputs=[model_choice], outputs=[json_input])
|
421 |
+
load_week_btn.click(fn=load_week_data, outputs=json_input)
|
422 |
+
load_month_btn.click(fn=load_month_data, outputs=json_input)
|
423 |
+
clear_btn.click(fn=clear_data, outputs=json_input)
|
424 |
predict_btn.click(make_prediction, inputs=[model_choice, json_input], outputs=[output])
|
425 |
|
426 |
with gr.Accordion("Model Information", open=False):
|