ZachZeke2004 commited on
Commit
fda4004
·
verified ·
1 Parent(s): 9158e0e

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import joblib
3
+ import numpy as np
4
+ # Load models
5
+ model_flavor = joblib.load("xgb_model_flavor.pkl")
6
+ model_topping = joblib.load("xgb_model_topping.pkl")
7
+ model_drink = joblib.load("xgb_model_drink.pkl")
8
+
9
+ # Load encoders
10
+ encoder_flavor = joblib.load("encoder_flavor.pkl")
11
+ encoder_topping = joblib.load("encoder_topping.pkl")
12
+ encoder_drink = joblib.load("encoder_drink.pkl")
13
+ input_encoders = joblib.load("input_encoders.pkl")
14
+
15
+ # Prediction function
16
+ def predict_merienda(mood, weather, craving_level, last_meal, budget):
17
+ features = [mood, weather, craving_level, last_meal, budget]
18
+ encoded = [input_encoders[col].transform([val])[0] for col, val in zip(input_encoders.keys(), features)]
19
+ encoded_np = np.array(encoded).reshape(1, -1)
20
+ pred_flavor = encoder_flavor.inverse_transform(model_flavor.predict(encoded_np))[0]
21
+ pred_topping = encoder_topping.inverse_transform(model_topping.predict(encoded_np))[0]
22
+ pred_drink = encoder_drink.inverse_transform(model_drink.predict(encoded_np))[0]
23
+ return pred_flavor, pred_topping, pred_drink
24
+
25
+ # Dropdown options
26
+ mood_list = input_encoders["mood"].classes_.tolist()
27
+ weather_list = input_encoders["weather"].classes_.tolist()
28
+ craving_list = input_encoders["craving_level"].classes_.tolist()
29
+ last_meal_list = input_encoders["last_meal"].classes_.tolist()
30
+ budget_list = input_encoders["budget"].classes_.tolist()
31
+ # Gradio Interface
32
+ iface = gr.Interface(
33
+ fn=predict_merienda,
34
+ inputs=[
35
+ gr.Dropdown(mood_list, label="Mood"),
36
+ gr.Dropdown(weather_list, label="Weather"),
37
+ gr.Dropdown(craving_list, label="Craving Level"),
38
+ gr.Dropdown(last_meal_list, label="Last Meal"),
39
+ gr.Dropdown(budget_list, label="Budget"),
40
+ ],
41
+ outputs=[
42
+ gr.Text(label="Recommended Flavor"),
43
+ gr.Text(label="Recommended Topping"),
44
+ gr.Text(label="Recommended Drink"),
45
+ ],
46
+ title=" Merienda Classifier",
47
+ description="Predicts the best pancit canton flavor, topping, and drink based on your current situation"
48
+ )
49
+
50
+ iface.launch()