import gradio as gr import hopsworks import joblib import pandas as pd import numpy as np import folium import json import time from datetime import timedelta, datetime from branca.element import Figure from functions import decode_features #import functions def greet(total_pred_days): str1 = "" # print("hi") project = hopsworks.login() print("connected") # #api = project.get_dataset_api() # # # # The latest available data timestamp start_time = 20221201 # # # end_time = 1670972400000 # # #start_date = datetime.now() - timedelta(days=1) # #start_time = int(start_date.timestamp()) * 1000 # # print("Time Stamp Set. ") # # # # print("latest_date") # # mr=project.get_model_registry() # model = mr.get_model("temp_model", version=2) # model_dir=model.download() # # model1 = mr.get_model("tempmax_model", version=2) # model_dir1=model1.download() # # model2 = mr.get_model("tempmin_model", version=2) # model_dir2=model2.download() # # model = joblib.load(model_dir + "/model_temp.pkl") # model1 = joblib.load(model_dir1 + "/model_tempmax.pkl") # model2 = joblib.load(model_dir2+ "/model_tempmin.pkl") # # print("temp_model is now right") # fs = project.get_feature_store() print("get the store") feature_view = fs.get_feature_view( name = 'weather_fv', version = 1 ) print("get the fv") X = feature_view.get_batch_data(start_time=start_time) print(X) # print("Data batched") # latest_date_unix = str(X.datetime.values[0])[:10] # latest_date = time.ctime(int(latest_date_unix)) # X = X.drop(columns=["datetime"]).fillna(0) # preds = model.predict(X) # preds1= model1.predict(X) # preds2= model2.predict(X) # # # # # cities = [city_tuple[0] for city_tuple in cities_coords.keys()] # # next_day_date = datetime.today() + timedelta(days=1) # next_day = next_day_date.strftime ('%d/%m/%Y') # str1 = "" # # if(total_pred_days == ""): # return "Empty input" # # count = int(total_pred_days) # if count > 20: # str1 += "Warning: 20 days at most. " + '\n' # count = 20 # if count <0: # str1 = "Invalid input." # return str1 # # for x in range(count): # if (x != 0): # str1 += (datetime.now() + timedelta(days=x)).strftime('%Y-%m-%d') + " predicted temperature: " +str(int(preds[len(preds) - count + x]))+ " predicted max temperature: " +str(int(preds1[len(preds1) - count + x]))+ " predicted min temperature: " +str(int(preds2[len(preds2) - count + x]))+"\n" # # #print(str1) return str1 demo = gr.Interface(fn=greet, inputs = "text", outputs="text") if __name__ == "__main__": demo.launch() ''' def greet(total_pred_days): project = hopsworks.login() #api = project.get_dataset_api() fs = project.get_feature_store() feature_view = fs.get_feature_view( name = 'weather_fv', version = 1 ) # The latest available data timestamp start_time = 1635112800000 #start_date = datetime.now() - timedelta(days=1) #start_time = int(start_date.timestamp()) * 1000 X = feature_view.get_batch_data(start_time=start_time) latest_date_unix = str(X.datetime.values[0])[:10] latest_date = time.ctime(int(latest_date_unix)) model = get_model(project=project, model_name="temp_model", evaluation_metric="f1_score", sort_metrics_by="max") model1 = get_model1(project=project, model_name="tempmax_model", evaluation_metric="f1_score", sort_metrics_by="max") model2 = get_model2(project=project, model_name="tempmin_model", evaluation_metric="f1_score", sort_metrics_by="max") X = X.drop(columns=["datetime"]).fillna(0) preds = model.predict(X) preds1= model1.predict(X) preds2= model2.predict(X) # cities = [city_tuple[0] for city_tuple in cities_coords.keys()] next_day_date = datetime.today() + timedelta(days=1) next_day = next_day_date.strftime ('%d/%m/%Y') str1 = "" if(total_pred_days == ""): return "Empty input" count = int(total_pred_days) if count > 20: str1 += "Warning: 20 days at most. " + '\n' count = 20 if count <0: str1 = "Invalid input." return str1 for x in range(count): if (x != 0): str1 += (datetime.now() + timedelta(days=x)).strftime('%Y-%m-%d') + " predicted temperature: " +str(int(preds[len(preds) - count + x]))+ " predicted max temperature: " +str(int(preds1[len(preds1) - count + x]))+ " predicted min temperature: " +str(int(preds2[len(preds2) - count + x]))+"\n" #print(str1) return str1 demo = gr.Interface( fn=greet, inputs=gr.Slider(label="Days of prediction (start from tomorrow)", value=1, minimum=1, maximum=20, step=1), outputs=gr.outputs.Textbox(label="Prediction results"), ) if __name__ == "__main__": demo.launch() '''