air3 / app.py
howlbz's picture
Update app.py
c479c73
import gradio as gr
import numpy as np
from PIL import Image
import requests
import hopsworks
import joblib
import os
import xgboost
from datetime import datetime, timedelta
project = hopsworks.login(api_key_value="B8TDkmcSyPyWFM2o.YuXEbXM7MUFk5gdBXFXsbMz24uZipqY4BttbZ9wIoZ0cn9vQd4bSWgj57vDGXqdh")
mr = project.get_model_registry()
model = mr.get_model("air_model_4", version=1)
model_dir = model.download()
model = joblib.load(model_dir + "/air_model4.pkl")
def forecast():
fs = project.get_feature_store()
feature_view = fs.get_feature_view(
name = 'miami_data_air_quality_fv',
version = 1
)
train_data = feature_view.get_training_data(1)[0]
train_data = train_data.drop(labels = 'city_y',axis =1)
train_data = train_data.rename(columns = {'city_x':'city'})
train_data = train_data.sort_values(by="date", ascending=True).reset_index(drop=True)
train_data["aqi_next_day"] = train_data.groupby('city')['aqi'].shift(1)
X = train_data.drop(columns=["date"]).fillna(0)
y = X.pop("aqi_next_day")
X = X.drop(columns =['city','conditions']).fillna(0)
today_data = X[1:8]
y = model.predict(today_data)
res = []
for i in y:
res.append(int(i))
return res
# date_today = datetime.now()
# day = timedelta(days = 1)
# date_today = date_today + day
# date_today = date_today.strftime("%Y-%m-%d")
output_label = " The air quality for the next 7 days is "
demo = gr.Interface(
fn=forecast,
title="Air Quality Prediction",
description="Get aqi value",
allow_flagging="never",
inputs=[],
outputs=gr.Textbox(label=output_label))
demo.launch()