Spaces:
Sleeping
Sleeping
File size: 2,757 Bytes
2d7601f 946312b 2d7601f 946312b 2d7601f e6d7d6b 6d0902b 2d7601f 86a3e9a 2d7601f 6d0902b 2d7601f |
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
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, markets, 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[markets], commodity_with_names[food], [date]]).reshape(1, -1)
prediction = model.predict(input_data)
food_url = "https://raw.githubusercontent.com/TimiUU/wine/main/" + food + ".png"
img = Image.open(requests.get(food_url, stream=True).raw)
return prediction, img
#return prediction, food_url
demo = gr.Interface(
fn = predict_price,
title = "AFG FOOD PRICE PREDICTION",
allow_flagging="never",
inputs=[
gr.Number(label="Year",value=2024),
gr.Number(label="Mouth",value=1),
gr.Dropdown(choices=market, label="Market"),
gr.Dropdown(choices=commodity, label="Food Type")
],
outputs=[gr.Textbox(), gr.Image()]
)
demo.launch(debug=True) |