Wine / app.py
PatrickML's picture
good or bad
c4be43a
raw
history blame contribute delete
No virus
2.81 kB
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 = mr.get_model("wine_model", version=2)
model_dir = model.download()
model = joblib.load(model_dir + "/wine_model.pkl")
print("Model downloaded")
def wine(type,fixed_acidity,volatile_acidity,citric_acid,residual_sugar,chlorides,free_sulfur_dioxide,total_sulfur_dioxide,density,ph,sulphates,alcohol):
print("Calling function")
# df = pd.DataFrame([[sepal_length],[sepal_width],[petal_length],[petal_width]],
df = pd.DataFrame([[type,fixed_acidity,volatile_acidity,citric_acid,residual_sugar,chlorides,free_sulfur_dioxide,total_sulfur_dioxide,density,ph,sulphates,alcohol]],
columns=["type","fixed_acidity","volatile_acidity","citric_acid","residual_sugar","chlorides","free_sulfur_dioxide","total_sulfur_dioxide","density","ph","sulphates","alcohol"])
print("Predicting")
print(df)
# 'res' is a list of predictions returned as the label.
res = model.predict(df)
# We add '[0]' to the result of the transformed 'res', because 'res' is a list, and we only want
# the first element.
# print("Res: {0}").format(res)
print(res)
if (res==float(0)):
wine_url = "https://media.istockphoto.com/id/117068556/sv/foto/bad-wine.jpg?s=2048x2048&w=is&k=20&c=wLOisv5qh9N8bp8AISRo1yP2nOjq_ouvt4sWeZ11yy0="
else :
wine_url = "https://i.ytimg.com/vi/9wFm7wTJ7JU/maxresdefault.jpg"
# wine_url = "https://raw.githubusercontent.com/featurestoreorg/serverless-ml-course/main/src/01-module/assets/" + res[0] + ".png"
img = Image.open(requests.get(wine_url, stream=True).raw)
return img
demo = gr.Interface(
fn=wine,
title="Wine quality Predictive Analytics",
description="Experiment with some factors to predict what quality it is.",
allow_flagging="never",
inputs=[
gr.inputs.Number(default=1.0, label="type"),
gr.inputs.Number(default=7.2, label="fixed_acidity"),
gr.inputs.Number(default=0.33, label="volatile_acidity"),
gr.inputs.Number(default=0.31, label="citric_acid"),
gr.inputs.Number(default=5.44, label="residual_sugar"),
gr.inputs.Number(default=0.056, label="chlorides"),
gr.inputs.Number(default=30.53, label="free_sulfur_dioxide"),
gr.inputs.Number(default=115.74, label="total_sulfur_dioxide"),
gr.inputs.Number(default=0.995, label="density"),
gr.inputs.Number(default=3.21, label="ph"),
gr.inputs.Number(default=0.53, label="sulphates"),
gr.inputs.Number(default=10.49, label="alcohol"),
],
outputs=gr.Image(type="pil"))
demo.launch(debug=True)