Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from PIL import Image | |
| import requests | |
| import hopsworks | |
| import joblib | |
| import pandas as pd | |
| import numpy as np | |
| project = hopsworks.login(project='suyiw000') | |
| fs = project.get_feature_store() | |
| mf = project.get_model_registry() | |
| model = mf.get_model("food_model", version=1) | |
| model_dir = model.download() | |
| model = joblib.load(model_dir + "/food_model.pkl") | |
| print("Model downloaded") | |
| market = ['Badakhshan', 'Badghis', 'Baghlan', 'Balkh', 'Bamyan', 'Daykundi', 'Farah', 'Faryab', 'Ghazni', 'Ghor', 'Hilmand', 'Hirat', 'Jawzjan' 'Kabul', 'Kandahar', 'Kapisa', 'Khost', 'Kunar', 'Kunduz', 'Laghman', 'Logar', 'Maidan Wardak', 'Nangarhar', 'Nimroz', 'Nuristan', 'Paktika', 'Paktya', 'Panjsher', 'Parwan', 'Samangan', 'Sar-e-Pul', 'Takhar', 'Uruzgan', 'Zabul'] | |
| commodity = ['Bread', 'Oil_cooking', 'Pulses', 'Rice_high', 'Rice_low', 'Salt', 'Sugar', 'Wheat', 'Wheatflour_high', 'Wheatflour_low'] | |
| def predict_price(year, month, market, food): | |
| market_empty = np.zeros(34) | |
| market_name = ['Badakhshan', 'Badghis', 'Baghlan', 'Balkh', 'Bamyan', 'Daykundi', 'Farah', 'Faryab', 'Ghazni', 'Ghor', 'Hilmand', 'Hirat', 'Jawzjan' 'Kabul', 'Kandahar', 'Kapisa', 'Khost', 'Kunar', 'Kunduz', 'Laghman', 'Logar', 'Maidan Wardak', 'Nangarhar', 'Nimroz', 'Nuristan', 'Paktika', 'Paktya', 'Panjsher', 'Parwan', 'Samangan', 'Sar-e-Pul', 'Takhar', 'Uruzgan', 'Zabul'] | |
| market = [] | |
| for i in range(34): | |
| temp_market = market_empty.copy() | |
| temp_market[i] = 1.0 | |
| market.append(temp_market) | |
| commodity_empty = np.zeros(10) | |
| commodity_name = ['Bread', 'Oil_cooking', 'Pulses', 'Rice_high', 'Rice_low', 'Salt', 'Sugar', 'Wheat', 'Wheatflour_high', 'Wheatflour_low'] | |
| commodity=[] | |
| for i in range(10): | |
| commodity_array = commodity_empty.copy() | |
| commodity_array[i] = 1.0 | |
| commodity.append(commodity_array) | |
| commodity_with_names = dict(zip(commodity_name, commodity)) | |
| arrays_with_names = dict(zip(market_name, market)) | |
| date = ((year*10000+month*100+15)-20200000)/100000 | |
| input_data = np.concatenate([arrays_with_names[market], commodity_with_names[food], [date]]).reshape(1, -1) | |
| prediction = model.predict(input_data) | |
| return prediction | |
| demo = gr.Interface( | |
| fn = predict_price, | |
| title = "AFG FOOD PRICE PREDICTION", | |
| allow_flagging="never", | |
| inputs=[ | |
| gr.Number(label="Year"), | |
| gr.Number(label="Mouth"), | |
| gr.Dropdown(choices=market, label="Market"), | |
| gr.Dropdown(choices=commodity, label="Food Type") | |
| ], | |
| outputs="text" | |
| ) | |
| demo.launch(debug=True) |