|
|
import streamlit as st |
|
|
import pandas as pd |
|
|
import requests |
|
|
|
|
|
|
|
|
st.title("SuperKart Total Sales Prediction App") |
|
|
st.markdown(""" |
|
|
Welcome to the **SuperKart Sales Forecasting Tool**! |
|
|
Predict total sales for a product-store combination or upload a batch of product records for multi-store forecasting. |
|
|
""") |
|
|
|
|
|
|
|
|
st.subheader("Online Prediction") |
|
|
|
|
|
|
|
|
product_weight = st.number_input("Product Weight (kg)", min_value=0.0, step=0.1) |
|
|
product_area = st.number_input("Product Allocated Area (sq. m.)", min_value=0.0, step=0.1) |
|
|
product_mrp = st.number_input("Product MRP (₹)", min_value=0.0, step=0.1) |
|
|
store_age = st.number_input("Store Age (years)", min_value=0, step=1) |
|
|
|
|
|
product_sugar = st.selectbox("Product Sugar Content", ["Low", "Regular", "No Sugar"]) |
|
|
product_type = st.selectbox("Product Type", [ |
|
|
"Frozen Foods", "Dairy", "Canned", "Baking Goods", "Health and Hygiene", |
|
|
"Snack Foods", "Meat", "Household", "Hard Drinks", "Fruits and Vegetables", |
|
|
"Breads", "Soft Drinks", "Breakfast", "Starchy Foods", "Seafood", "Others" |
|
|
]) |
|
|
store_size = st.selectbox("Store Size", ["Small", "Medium", "Large"]) |
|
|
store_city_type = st.selectbox("Store Location City Type", ["Tier 1", "Tier 2", "Tier 3"]) |
|
|
store_type = st.selectbox("Store Type", [ |
|
|
"Supermarket Type1", "Supermarket Type2", "Departmental Store", "Food Mart" |
|
|
]) |
|
|
store_id = st.selectbox("Store ID", ["ST001", "ST002", "ST003", "ST004"]) |
|
|
|
|
|
|
|
|
|
|
|
input_data = { |
|
|
"Product_Weight": product_weight, |
|
|
"Product_Allocated_Area": product_area, |
|
|
"Product_MRP": product_mrp, |
|
|
"Store_Age": store_age, |
|
|
"Product_Sugar_Content": product_sugar, |
|
|
"Product_Type": product_type, |
|
|
"Store_Size": store_size, |
|
|
"Store_Location_City_Type": store_city_type, |
|
|
"Store_Type": store_type, |
|
|
"Store_Id": store_id |
|
|
} |
|
|
|
|
|
|
|
|
if st.button("Predict Sales"): |
|
|
|
|
|
if product_weight == 0 or product_area == 0 or product_mrp == 0: |
|
|
st.warning("Please enter valid values for product details before predicting.") |
|
|
else: |
|
|
response = requests.post("https://rahulsuren12-TotalSalesPredictionBackend.hf.space/v1/sales", json=input_data) |
|
|
if response.status_code == 200: |
|
|
prediction = response.json()['Predicted_Sales_Total'] |
|
|
st.success(f"Predicted Total Sales: ₹ {prediction:,.2f}") |
|
|
else: |
|
|
st.error("Error making prediction.") |
|
|
|