File size: 1,598 Bytes
8a4966f
 
 
 
 
 
316cd63
67db5f1
fcad9bd
8a4966f
d14a256
eb1f860
4bf6a6a
eb1f860
d14a256
5a8af87
 
8a4966f
d13438a
 
918917d
 
 
 
 
cc4670d
918917d
 
 
 
4b1a293
918917d
 
 
 
 
 
82627a9
 
 
484c23b
 
67db5f1
 
484c23b
69e98ce
8a4966f
 
f31f0f6
d13438a
 
8a4966f
f39f1d3
82627a9
 
8a4966f
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import gradio as gr
import numpy as np
from PIL import Image
import requests
import hopsworks
import joblib
import os
from datetime import datetime, timedelta
project = hopsworks.login(api_key_value="B8TDkmcSyPyWFM2o.YuXEbXM7MUFk5gdBXFXsbMz24uZipqY4BttbZ9wIoZ0cn9vQd4bSWgj57vDGXqdh")

mr = project.get_model_registry()
model = mr.get_model("air_model_3", version=1)
model_dir = model.download()
model = joblib.load(model_dir + "/air_model3.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:7]
    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:2]
    y = model.predict(today_data)

    res = int(y[0])
    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 = date_today + " 's air quality 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()