puyao commited on
Commit
4853290
·
1 Parent(s): 098a973

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -21
app.py CHANGED
@@ -1,31 +1,60 @@
 
1
  import gradio as gr
2
  from PIL import Image
 
3
  import hopsworks
 
 
4
 
5
  project = hopsworks.login()
6
  fs = project.get_feature_store()
7
 
8
- dataset_api = project.get_dataset_api()
9
 
10
- dataset_api.download("Resources/images/latest_wine.png")
11
- dataset_api.download("Resources/images/actual_wine.png")
12
- dataset_api.download("Resources/images/df_recent.png")
13
- dataset_api.download("Resources/images/confusion_matrix.png")
 
 
 
 
 
 
14
 
15
- with gr.Blocks() as demo:
16
- with gr.Row():
17
- with gr.Column():
18
- gr.Label("Today's Predicted Image")
19
- input_img = gr.Image("latest_wine.png", elem_id="predicted-img")
20
- with gr.Column():
21
- gr.Label("Today's Actual Image")
22
- input_img = gr.Image("actual_wine.png", elem_id="actual-img")
23
- with gr.Row():
24
- with gr.Column():
25
- gr.Label("Recent Prediction History")
26
- input_img = gr.Image("df_recent.png", elem_id="recent-predictions")
27
- with gr.Column():
28
- gr.Label("Confusion Maxtrix with Historical Prediction Performance")
29
- input_img = gr.Image("confusion_matrix.png", elem_id="confusion-matrix")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
- demo.launch()
 
1
+
2
  import gradio as gr
3
  from PIL import Image
4
+ import requests
5
  import hopsworks
6
+ import joblib
7
+ import pandas as pd
8
 
9
  project = hopsworks.login()
10
  fs = project.get_feature_store()
11
 
 
12
 
13
+ mr = project.get_model_registry()
14
+ model_red = mr.get_model("wine_red_model", version=2)
15
+ model_dir_red = model_red.download()
16
+ model_red = joblib.load(model_dir + "/wine_red_model.pkl")
17
+ print("Red Model downloaded")
18
+
19
+ model_white = mr.get_model("wine_white_model", version=2)
20
+ model_dir_white = model_white.download()
21
+ model_white = joblib.load(model_dir_white + "/wine_white_model.pkl")
22
+ print("White Model downloaded")
23
 
24
+ def wine(alcohol, chlorides, density, type, volatil_acidity):
25
+ print("Calling function")
26
+ df = pd.DataFrame([[type, alcohol, chlorides, density, volatil_acidity]],
27
+ columns=['type','alcohol','chlorides','density','volatil_acidity','fixed_acidity','citric_acid','total_sulfur_dioxide'])
28
+ print("Predicting")
29
+ print(df)
30
+
31
+ if type == "red":
32
+ res = model_red.predict(df)
33
+ print(res)
34
+ wine_url = "https://raw.githubusercontent.com/Anniyuku/wine_quality/main/" + res[0] + ".png"
35
+ img = Image.open(requests.get(wine_url, stream=True).raw)
36
+ else :
37
+ res = model_white.predict(df)
38
+ print(res)
39
+ wine_url = "https://raw.githubusercontent.com/Anniyuku/wine_quality/main/" + res[0] + ".png"
40
+ img = Image.open(requests.get(wine_url, stream=True).raw)
41
+ return img
42
+
43
+ demo = gr.Interface(
44
+ fn=wine,
45
+ title="Wine Predictive Analytics",
46
+ description="Experiment with type, alcohol, chlorides, density, volatil_acidity, fixed_acidity, citric_acid, total_sulfur_dioxide to predict which flower it is.",
47
+ allow_flagging="never",
48
+ inputs=[
49
+ gr.inputs.Radio(choices=['red', 'white'], label='Type'),
50
+ gr.inputs.Number(default=9.00, label="alcohol"),
51
+ gr.inputs.Number(default=0.60, label="chlorides"),
52
+ gr.inputs.Number(default=1.00, label="density"),
53
+ gr.inputs.Number(default=1.00, label="volatil_acidity"),
54
+ gr.inputs.Number(default=1.00, label="fixed_acidity"),
55
+ gr.inputs.Number(default=1.00, label="citric_acid"),
56
+ gr.inputs.Number(default=1.00, label="total_sulfur_dioxide"),
57
+ ],
58
+ outputs=gr.Image(type="pil"))
59
 
60
+ demo.launch(debug=True)