Updated app at sön 19 nov 2023 22:08:17 CET
Browse files
app.py
CHANGED
|
@@ -5,7 +5,14 @@ import hopsworks
|
|
| 5 |
import joblib
|
| 6 |
import pandas as pd
|
| 7 |
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
def wine_quality(wine_type, fixed_acidity, volatile_acidity, citric_acid, residual_sugar, chlorides,
|
| 11 |
free_sulfur_dioxide, total_sulfur_dioxide, density, ph, sulphates, alcohol):
|
|
@@ -18,16 +25,44 @@ def wine_quality(wine_type, fixed_acidity, volatile_acidity, citric_acid, residu
|
|
| 18 |
print("Predicting...")
|
| 19 |
print(df)
|
| 20 |
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
quality =
|
| 25 |
else:
|
| 26 |
-
quality = "
|
| 27 |
|
| 28 |
return quality
|
| 29 |
|
| 30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
# Define the Gradio interface
|
| 32 |
iface = gr.Interface(fn=wine_quality,
|
| 33 |
inputs=["text", "number", "number", "number", "number", "number",
|
|
|
|
| 5 |
import joblib
|
| 6 |
import pandas as pd
|
| 7 |
|
| 8 |
+
# Settings
|
| 9 |
+
# - - Names
|
| 10 |
+
# - - - Models
|
| 11 |
+
model_wine_dir = "wine_models"
|
| 12 |
+
model_red_wine_name = "wine_red_model"
|
| 13 |
+
model_red_wine_version = 1
|
| 14 |
+
model_white_wine_name = "wine_white_model"
|
| 15 |
+
model_white_wine_version = 1
|
| 16 |
|
| 17 |
def wine_quality(wine_type, fixed_acidity, volatile_acidity, citric_acid, residual_sugar, chlorides,
|
| 18 |
free_sulfur_dioxide, total_sulfur_dioxide, density, ph, sulphates, alcohol):
|
|
|
|
| 25 |
print("Predicting...")
|
| 26 |
print(df)
|
| 27 |
|
| 28 |
+
if wine_type.lower() == 'red':
|
| 29 |
+
quality = red_wine_local_model.predict(df)
|
| 30 |
+
elif wine_type.lower() == 'white':
|
| 31 |
+
quality = white_wine_local_model.predict(df)
|
| 32 |
else:
|
| 33 |
+
quality = "Unknown wine type. Only 'red' and 'white' are known."
|
| 34 |
|
| 35 |
return quality
|
| 36 |
|
| 37 |
|
| 38 |
+
print("Logging in to Hopsworks...")
|
| 39 |
+
project = hopsworks.login()
|
| 40 |
+
|
| 41 |
+
print("Getting feature store...")
|
| 42 |
+
fs = project.get_feature_store()
|
| 43 |
+
|
| 44 |
+
print("Getting model registry...")
|
| 45 |
+
mr = project.get_model_registry()
|
| 46 |
+
|
| 47 |
+
print("Getting model for red wine: ...")
|
| 48 |
+
model_red_wine = mr.get_model(model_red_wine_name, version=model_red_wine_version)
|
| 49 |
+
|
| 50 |
+
print("Downloading model for red wine...")
|
| 51 |
+
model_red_dir = model_red_wine.download()
|
| 52 |
+
|
| 53 |
+
print("Initializing model red wine locally...")
|
| 54 |
+
red_wine_local_model = joblib.load(model_red_dir + f"/{model_red_wine_name}.pkl")
|
| 55 |
+
|
| 56 |
+
print("Getting model for white wine: ...")
|
| 57 |
+
model_white_wine = mr.get_model(model_white_wine_name, version=model_white_wine_version)
|
| 58 |
+
|
| 59 |
+
print("Downloading model for white wine...")
|
| 60 |
+
model_white_dir = model_white_wine.download()
|
| 61 |
+
|
| 62 |
+
print("Initializing model white wine locally...")
|
| 63 |
+
white_wine_local_model = joblib.load(model_white_dir + f"/{model_white_wine_name}.pkl")
|
| 64 |
+
|
| 65 |
+
|
| 66 |
# Define the Gradio interface
|
| 67 |
iface = gr.Interface(fn=wine_quality,
|
| 68 |
inputs=["text", "number", "number", "number", "number", "number",
|