import gradio as gr import numpy as np from PIL import Image import requests import hopsworks import joblib project = hopsworks.login() fs = project.get_feature_store() mr = project.get_model_registry() model = mr.get_model("titanic_modal", version=1) model_dir = model.download() model = joblib.load(model_dir + "/titanic_model.pkl") # "Pclass", "Sex", "Age", "Parch" def titanic(pclass, sex, age, parch): input_list = [] input_list.append(pclass) input_list.append(sex) input_list.append(age) input_list.append(parch) # 'res' is a list of predictions returned as the label. res = model.predict(np.asarray(input_list).reshape(1, -1)) # We add '[0]' to the result of the transformed 'res', because 'res' is a list, and we only want # the first element. if res[0] == 0: titanic_url = "https://lh3.googleusercontent.com/drive-viewer/AFDK6gNF4xxysDnR9rP3VtnQ0gqQABJaF9MHN6fx9ndnGEp3HwuAH8X4Qh-ewYGg-DbgtNM0q3mKfBKVNK2wyvZdPkGvnKpE=w1920-h487" elif res[0] == 1: titanic_url = "https://lh3.googleusercontent.com/fife/AAbDypAIrE-Me7Sqj3LvMGiOSqrypr9JZfdlWp46clUTEYaZC6zzZeF0iT2zi49Hrj8B0-I4DNb7ce1bqCAFDbNMhQnPNhtjXmrgfV-aFuGpUc6otrmuBT8mM6xpeyW5ljhTcLKTg2YUaY6E2d_XCj8WHY3BTXJvbU55KyOplRicpcLpElmXW2s4RW9op-3waE4p6uY0fIRphNMfxjCZDpCzlmni-zq3RsT3YL8CZaV_03CfW84ntB4nirFedH6zfuWhgreTdKmw6lqoHWm9QgRji33fJJ4bG9APfQCB2anF9z7GJJ3_pcHr39e4qtwxeKIta8sFUsXPKZE7SEHPNdfO_yGV34vMDxsfBUgbRLNOzw06HAVQuvUk1Oe4DSd1GyZxNWsSzw1D8DZhvZzHxHlFcc27d_qglMEtNQGVhulZFb2A3ZGR9I2Us7jog2UVnpjyGTLBlMUX_-K1WpUSbsoq9aHGb6rOWN4ZyZ5r2c_yJU4NzFNmQDZInKBsZKEK0S7oAm69VQ8RVZ6O_3vgy-7K-r-3pEPnTuDVFEndSwDJvYOulagpCEy0i-LhdToN0C2Va6wBAAocXHgsif9PcuR7IAmql-gk06iBGt1YtveOBNfAakoTqvD-BGPHLARGosKoS0csT_AJENIV3wIgEYr7E6plpNBvUSjpQGvGF3Bv1WUPQxZkEof4VV1loqX1vDHQYo4IPpbLBhyPnK_Ate09BPkDc4qEmqhgREEddDQbxzYF2yLz_U-wt_IGbJfUlBikFK6QA8emZUG06yc3vEl4y7bhA1Ofy4eEySMqKhCsKdNQfwzydTUUhvG3U5D70dXXhF0rZy6HfwuIJ-wneawSyvKScEyHBH07vE1YYoMKZO8HmAYboDbaHg5Vyy4cEH8Q4ORi8_9WDxPaGbmsXlqmeEtpplm6CKCq8Qsbc7vKelIzqe7rxZfffBbEjKrA8pp2eBD21Z9zJu5MmitKgj3DPWKxMsCLyuKz02ple_NT8IIpliGP7IUJ2W30x5xEmuCB8-winTszhSGOY_49tywV4x8oumgGeT6qzqrde1qlZkeOX_I5SxHgP56o3ApiI_sDSjaWOHyTmY3FQfBAq9_zTCosvS9113S2mXdeSSGYPTW_8303TqoXEYrGiEwwRitA_-0r-BgxfbPCk7muZfqpr5sgnjoDsTmcgxHXFWVr91IASGIz_8Igl5llof951CndkvDrJFuHycKNxjifzBqe-41Ivw-v-IJ8lpB28yiIjw6rtoiTflGOnUK-dnrbanykYus3vhitOZ_r1JCUWK9nU6o4WxcHzJONVyhG3Nt_-vk_EHncI_bWjTfKE8FUDH94QuO3bU6R1T-5sJKmueOGpIG-4jlMx1V4LM6ylel3Dv6k_dh9Ah7WCs6IsMRQ-_7lWOt9dCNntEdcm2hc9jRrrBxgMSB-6IJ5c90MXjj-yiYisGH3K6keppoR9iaddtKWkyo3d0VEobsTPRUyMdQ=w1920-h892" img = Image.open(requests.get(titanic_url, stream=True).raw) return img demo = gr.Interface( fn=titanic, title="Titanic Passenger Survival Predictive Analytics", description="Experiment to predict passenger survival on the Titanic.", allow_flagging="never", inputs=[ gr.inputs.Number(default=1.0, label="Pclass (1st class -> 3 class)"), gr.inputs.Number(default=1.0, label="Sex (0 = Female, 1 = Male)"), gr.inputs.Number(default=1.0, label="Age (0 -> 100 years)"), gr.inputs.Number(default=1.0, label="Parch (0 -> 2 parents/children on board)"), ], outputs=gr.Image(type="pil")) demo.launch()