rickyt commited on
Commit
d1719f7
·
1 Parent(s): 9625ff8

Add application file

Browse files
Files changed (1) hide show
  1. app.py +39 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import joblib
4
+
5
+ # Load the trained XGBoost model
6
+ best_model = joblib.load("xgb_model.pkl")
7
+
8
+ # Define the prediction function
9
+ def predict_fuel_rate(loaded_drv, empty_drv, eng_speed, empty_stop, loading_stop, loaded_stop):
10
+ input_data = {
11
+ 'loaded_drv_time_percycle': loaded_drv,
12
+ 'empty_drv_time_percycle': empty_drv,
13
+ 'Eng_Speed_Ave': eng_speed,
14
+ 'empty_stop_time_percycle': empty_stop,
15
+ 'loadingstoptime_percycle': loading_stop,
16
+ 'loaded_stop_time_percycle': loaded_stop
17
+ }
18
+ input_df = pd.DataFrame([input_data])
19
+ prediction = best_model.predict(input_df)[0]
20
+ return round(prediction, 2)
21
+
22
+ # Gradio Interface
23
+ interface = gr.Interface(
24
+ fn=predict_fuel_rate,
25
+ inputs=[
26
+ gr.Slider(3, 60, value=18, label="Loaded Drive Time per Cycle"),
27
+ gr.Slider(2, 51, value=16, label="Empty Drive Time per Cycle"),
28
+ gr.Slider(1051, 1596, value=1416, label="Engine Speed Average"),
29
+ gr.Slider(0.2, 24.6, value=4.2, label="Empty Stop Time per Cycle"),
30
+ gr.Slider(2, 18, value=2, label="Loading Stop Time per Cycle"),
31
+ gr.Slider(0.4, 9, value=0.4, label="Loaded Stop Time per Cycle"),
32
+ ],
33
+ outputs=gr.Number(label="Predicted Fuel Rate per Cycle (L)"),
34
+ title="🚛 Fuel Rate What-If Simulator",
35
+ description="Adjust the sliders to simulate different operating conditions and estimate fuel consumption."
36
+ )
37
+
38
+ # Launch the app
39
+ interface.launch()