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("gradient_boost_model", version=1) model_dir = model.download() model = joblib.load(model_dir + "/model.pkl") def greet(AQI): response = requests.get("https://api.open-meteo.com/v1/forecast?latitude=62.39&longitude=17.31&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,rain_sum,showers_sum,snowfall_sum,precipitation_hours,windspeed_10m_max,windgusts_10m_max,winddirection_10m_dominant,shortwave_radiation_sum,et0_fao_evapotranspiration&timezone=Europe%2FBerlin") data = response.json() dates = data['daily']['time'] temperature_2m_max = data['daily']['temperature_2m_max'] temperature_2m_min = data['daily']['temperature_2m_min'] apparent_temperature_max = data['daily']['apparent_temperature_max'] apparent_temperature_min = data['daily']['apparent_temperature_min'] precipitation_sum = data['daily']['precipitation_sum'] rain_sum = data['daily']['rain_sum'] showers_sum = data['daily']['showers_sum'] snowfall_sum = data['daily']['snowfall_sum'] precipitation_hours = data['daily']['precipitation_hours'] windspeed_10m_max = data['daily']['windspeed_10m_max'] winddirection_10m_dominant = data['daily']['winddirection_10m_dominant'] shortwave_radiation_sum = data['daily']['shortwave_radiation_sum'] et0_fao_evapotranspiration = data['daily']['et0_fao_evapotranspiration'] a = np.array([temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,precipitation_sum,rain_sum,showers_sum,snowfall_sum,precipitation_hours,windspeed_10m_max,winddirection_10m_dominant,shortwave_radiation_sum,et0_fao_evapotranspiration]).T print(a.shape) meanParam = np.array([9.18978149,3.14524422,6.35257069,-1.02249357,9.80177378,1.72679949,1.29595116,0.32768638,3.69280206,19.74466581,39.32262211,206.30976864,1.73205013]).reshape(-1,1).T stdParam = np.array([8.51600177e+01,6.71844311e+01,1.06626080e+02,7.91234272e+01,7.44106845e+01,1.34734399e+01,1.00654528e+01,1.62247909e+00,2.99519019e+01,4.00425872e+01,1.63422522e+02,9.15743361e+03,2.35546925e+00]).reshape(-1,1).T scaledData = (a-meanParam)/np.sqrt(stdParam) pred = model.predict(scaledData) return pred[0], pred[1], pred[2], pred[3], pred[4], pred[5], pred[6] demo = gr.Interface( fn=greet, inputs=["text"], outputs=["number", "number", "number", "number", "number", "number", "number"], ) demo.launch()