File size: 2,406 Bytes
87d6a85
 
 
 
 
99632d7
87d6a85
 
 
a126029
99632d7
87d6a85
 
a126029
99632d7
a126029
87d6a85
99632d7
 
 
 
 
 
 
a126029
 
87d6a85
a126029
 
87d6a85
2dd3b91
99632d7
2dd3b91
87d6a85
99632d7
 
87d6a85
 
a126029
 
 
 
 
 
 
99632d7
a126029
 
 
99632d7
a126029
99632d7
a126029
99632d7
a126029
 
 
 
 
 
 
 
99632d7
 
 
 
 
 
 
 
 
 
 
a126029
 
99632d7
 
 
a126029
87d6a85
 
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
73
74
75
76
77
78
79
80
81
# Loading key libraries
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 


# set api endpoint
URL = 'https://bright1-sales-forecasting-ap1-2.hf.space'
API_ENDPOINT = '/predict'

# get list/choices for inputs 
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)]


# Setting the page configurations
st.set_page_config(page_title = "Prediction Forecasting", layout= "wide", initial_sidebar_state= "auto")

# Setting the page title
st.title("Grocery Store Forecasting Prediction")


# src\app\images1.jpg
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,

    } 

    # make a request to the api
    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')

# Create interface
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 )




# get predicted value
if st.sidebar.button('Predict', use_container_width=True, type='primary'):
            # make prediction 
            sales_value = make_prediction(store_id, category_id, onpromotion,city, store_type, cluster, date)
            st.success('The predicted target is ' + str(sales_value))