|
|
|
import streamlit as st |
|
import os |
|
import numpy as np |
|
import pandas as pd |
|
|
|
from PIL import Image |
|
import matplotlib.pyplot as plt |
|
import seaborn as sns |
|
import requests |
|
import datetime |
|
|
|
|
|
|
|
URL = 'https://bright1-sales-forecasting-ap1-2.hf.space' |
|
API_ENDPOINT = '/predict' |
|
|
|
|
|
CITIES = ['Accra', 'Aflao', 'Akim Oda', 'Akwatia', 'Bekwai', 'Cape coast', 'Elmina,', 'Gbawe', 'Ho', 'Hohoe', 'intampo', 'Koforidua', 'Kumasi', 'Mampong', 'Obuasi', 'Prestea', 'Suhum', 'Tamale', 'Techiman', 'Tema', 'Teshie', 'Winneba'] |
|
CLUSTER = [ i for i in range(0, 17)] |
|
STORE_ID = [ i for i in range(1, 55)] |
|
CATEGORY_ID = [ i for i in range(0, 35)] |
|
|
|
|
|
|
|
st.set_page_config(page_title = "Prediction Forecasting", layout= "wide", initial_sidebar_state= "auto") |
|
|
|
|
|
st.title("Grocery Store Forecasting Prediction") |
|
|
|
|
|
|
|
image1 = Image.open('images1.jpg') |
|
|
|
|
|
def make_prediction(store_id, category_id, onpromotion, city, store_type, cluster, date): |
|
|
|
|
|
parameters = { |
|
'store_id':int(store_id), |
|
'category_id':int(category_id), |
|
'onpromotion' :int(onpromotion), |
|
'city' : city, |
|
'store_type' : int(store_type), |
|
'cluster': int(cluster), |
|
'date_': date, |
|
|
|
} |
|
|
|
|
|
response = requests.post(url=f'{URL}{API_ENDPOINT}', params=parameters) |
|
|
|
sales_value = response.json()['sales'] |
|
|
|
sales_value = round(sales_value, 4) |
|
return sales_value |
|
|
|
|
|
st.image(image1, width = 700) |
|
|
|
st.sidebar.markdown('User Input Details and Information') |
|
|
|
|
|
date= st.sidebar.date_input("Enter the Date",datetime.date(2023, 6, 30)) |
|
store_id= st.sidebar.selectbox('Store id', options=STORE_ID) |
|
category_id= st.sidebar.selectbox('categegory_id', options=CATEGORY_ID) |
|
onpromotion= st.sidebar.number_input('onpromotion', step=1) |
|
city = st.sidebar.selectbox("city:", options= CITIES) |
|
store_type= st.sidebar.selectbox('type', options=[0, 1, 2, 3, 4]) |
|
cluster = st.sidebar.selectbox('cluster', options = CLUSTER ) |
|
|
|
|
|
|
|
|
|
|
|
if st.sidebar.button('Predict', use_container_width=True, type='primary'): |
|
|
|
sales_value = make_prediction(store_id, category_id, onpromotion,city, store_type, cluster, date) |
|
st.success('The predicted target is ' + str(sales_value)) |
|
|
|
|