File size: 3,331 Bytes
fdcce80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47210b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fdcce80
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import streamlit as st
import pandas as pd
import requests

API_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecast"

#product type
product_types = [
    "Fruits and Vegetables",
    "Snack Foods",
    "Frozen Foods",
    "Dairy",
    "Household",
    "Baking Goods",
    "Canned",
    "Health and Hygiene",
    "Meat",
    "Soft Drinks",
    "Breads",
    "Hard Drinks",
    "Others",
    "Starchy Foods",
    "Breakfast",
    "Seafood"
]

#store types
store_types = [
    "Food Mart",
    "Supermarket Type1",
    "Supermarket Type2",
    "Departmental Store"
]

#Store Id
store_ids = [
    "OUT001",
    "OUT002",
    "OUT003",
    "OUT004"
]

store_Location_City_Types=[
    "Tier 1",
    "Tier 2",
    "Tier 3"
]

store_sizes=[
    "Small",
    "Medium",
    "Large"
]


#Set title of the Streamlit app
st.title("Product Revenue prediction")

#Section for online prediction
st.subheader("Online Prediction")

#Collect user input for  features
Product_Weight = st.number_input("Product Weight", min_value=4.0, max_value=25.0, step=0.5)
Product_Sugar_Content = st.selectbox("Product Sugar Content", ["No Sugar", "Low Sugar", "Regular"])
Product_Allocated_Area = st.number_input("Product Allocated Area", min_value=0.001, max_value=0.3)
Product_Type = st.selectbox("Product Type", product_types)
Product_MRP = st.number_input("Product MRP", min_value=30.0, max_value=300.0)
Store_Id = st.selectbox("Store Id", store_ids)
Store_Establishment_Year = st.number_input("Store Establishment Year", min_value=1988, max_value=2010, step=1)
Store_Size = st.selectbox("Store Size", store_sizes)
Store_Location_City_Type = st.selectbox("Store Location City Type", store_Location_City_Types)
Store_Type = st.selectbox("Store Type", store_types)

payload = {
        'Product_Weight': Product_Weight,
        'Product_Sugar_Content': Product_Sugar_Content,
        'Product_Allocated_Area': Product_Allocated_Area,
        'Product_Type': Product_Type ,
        'Product_MRP': Product_MRP,
        'Store_Id': Store_Id,
        'Store_Establishment_Year': Store_Establishment_Year,
        'Store_Size': Store_Size,
        'Store_Location_City_Type': Store_Location_City_Type,
        'Store_Type': Store_Type
    }


if st.button("Predict"):
  response = requests.post(API_ENDPOINT, json=payload)
  if response.status_code == 200:
    json_data= response.json()
    st.write('Predicted Sales revenue ', json_data.get('Prediction'))
  else:
    st.write(f"Error making prediction: {response.status_code}")

# Section for batch prediction
st.subheader("Batch Prediction")

# Allow users to upload a CSV file for batch prediction
uploaded_file = st.file_uploader("Upload CSV file for batch prediction", type=["csv"])
BATCH_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecastbatch"
# Make batch prediction when the "Predict Batch" button is clicked
if uploaded_file is not None:
    if st.button("Predict Batch"):
        response = requests.post(BATCH_ENDPOINT, files={"file": uploaded_file})  # Send file to Flask API
        if response.status_code == 200:
            predictions = response.json()
            st.success("Batch predictions completed!")
            st.write(predictions)  # Display the predictions
        else:
            st.error("Error making batch prediction.")