import gradio as gr from PIL import Image import requests import hopsworks import joblib import pandas as pd project = hopsworks.login() fs = project.get_feature_store() mr = project.get_model_registry() model_red = mr.get_model("wine_red_model", version=1) model_dir_red = model_red.download() model_red = joblib.load(model_dir_red + "/wine_red_model.pkl") print("Red Model downloaded") model_white = mr.get_model("wine_white_model", version=1) model_dir_white = model_white.download() model_white = joblib.load(model_dir_white + "/wine_white_model.pkl") print("White Model downloaded") def wine(category, alcohol, chlorides, density, volatil_acidity,fixed_acidity, citric_acid,total_sulfur_dioxide): print("Calling function") df = pd.DataFrame([[alcohol, chlorides, density, volatil_acidity,fixed_acidity, citric_acid,total_sulfur_dioxide]], columns=['alcohol','chlorides','density','volatil_acidity','fixed_acidity','citric_acid','total_sulfur_dioxide']) print("Predicting") print(df) if category == "red": res = model_red.predict(df) print(res) wine_url = "https://raw.githubusercontent.com/Anniyuku/wine_quality/main/" + res[0] + ".png" img = Image.open(requests.get(wine_url, stream=True).raw) else : res = model_white.predict(df) print(res) wine_url = "https://raw.githubusercontent.com/Anniyuku/wine_quality/main/" + res[0] + ".png" img = Image.open(requests.get(wine_url, stream=True).raw) return img demo = gr.Interface( fn=wine, title="Wine Predictive Analytics", description="Experiment with type, alcohol, chlorides, density, volatil_acidity, fixed_acidity, citric_acid, total_sulfur_dioxide to predict which flower it is.", allow_flagging="never", inputs=[ gr.inputs.Radio(choices=["white","red"], label='category'), gr.inputs.Number(default=12.4, label="alcohol"), gr.inputs.Number(default=0.04, label="chlorides"), gr.inputs.Number(default=0.99, label="density"), gr.inputs.Number(default=0.16, label="volatil_acidity"), gr.inputs.Number(default=6.60, label="fixed_acidity"), gr.inputs.Number(default=0.40, label="citric_acid"), gr.inputs.Number(default=143, label="total_sulfur_dioxide"), ], outputs=gr.Image(type="pil")) demo.launch(debug=True)