File size: 1,361 Bytes
3bccd75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b6d3dd7
3bccd75
 
 
26081a0
3bccd75
 
 
 
 
 
b6d3dd7
3bccd75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b6d3dd7
f205c21
3bccd75
 
 
 
 
 
 
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
import gradio as gr
import hopsworks
import joblib
import pandas as pd
import numpy as np
import json
import time
from datetime import timedelta, datetime


from functions import *


project = hopsworks.login()
	
models=["Gradient_Boost","Random_Forest","Lasso"]## Add others models names as in hopsworks
def air_quality(city,model_name):
    start_date = datetime.now() - timedelta(days=1)
    start_time = int(start_date.timestamp()) * 1000
    X = pd.read_csv('x.csv')

    #X = X.drop(columns=["date"]).fillna(0)

    X = X.drop(X.columns[0],axis=1)

    mr = project.get_model_registry()
    model = mr.get_model(model_name, version=3)
    model_dir = model.download()
    model = joblib.load(model_dir + "/model.pkl")
	    
    preds = model.predict(X)
    #print(model.predict(X)[:7])

    predictions = ''
    for k in range(7):
        predictions += "Predicted AQI on  " + (datetime.now() + timedelta(days=k)).strftime('%Y-%m-%d') + ":      " + str(int(preds[k]))+"\n"
	        
        print(predictions)
    return predictions


with gr.Blocks() as demo:
    gr.Label("Predict air quality in Paris")
    with gr.Row():
        inp=[gr.Textbox(label='Enter city'),gr.Radio(models, value="Gradient_Boost")]
        out = gr.Textbox()
    btn = gr.Button("Show prediction")
    btn.click(fn=air_quality, inputs=inp, outputs=out)

	

	    
demo.launch()