superkart-frontend / src /streamlit_app.py
Swetha1929's picture
Update src/streamlit_app.py
179fc24 verified
Raw
History Blame Contribute Delete
2.44 kB
import streamlit as st
import requests
st.set_page_config(page_title="SuperKart Sales Predictor", layout="centered")
st.title("SuperKart — Sales Predictor")
st.write("Enter product & store features to predict Product_Store_Sales_Total")
# 🔥 Hardcoded backend URL
BACKEND_URL = "https://swetha1929-superkart-backend.hf.space/predict"
with st.form("prediction_form"):
Product_Weight = st.number_input("Product Weight", value=12.66, format="%.2f")
Product_Allocated_Area = st.number_input("Product Allocated Area", value=0.05, format="%.3f")
Product_MRP = st.number_input("Product MRP", value=150.00, format="%.2f")
Store_Establishment_Year = st.number_input("Store Establishment Year", value=2009, min_value=1900, max_value=2100)
Product_Sugar_Content = st.selectbox("Product Sugar Content", ["Low Sugar","Regular","No Sugar"])
Product_Type = st.selectbox("Product Type", ["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_Size = st.selectbox("Store Size", ["Small","Medium","High"])
Store_Location_City_Type = st.selectbox("Store Location City Type", ["Tier 1","Tier 2","Tier 3"])
Store_Type = st.selectbox("Store Type", ["Departmental Store","Supermarket Type1","Supermarket Type2","Food Mart"])
submit = st.form_submit_button("Predict")
if submit:
payload = {
"Product_Weight": float(Product_Weight),
"Product_Allocated_Area": float(Product_Allocated_Area),
"Product_MRP": float(Product_MRP),
"Store_Establishment_Year": int(Store_Establishment_Year),
"Product_Sugar_Content": Product_Sugar_Content,
"Product_Type": Product_Type,
"Store_Size": Store_Size,
"Store_Location_City_Type": Store_Location_City_Type,
"Store_Type": Store_Type
}
try:
response = requests.post(BACKEND_URL, json=payload, timeout=60)
if response.status_code == 200:
result = response.json()
st.success(f"Predicted Sales: {result['predictions'][0]:,.2f}")
else:
st.error(f"Error: {response.status_code}")
st.text(response.text)
except Exception as e:
st.error(f"Connection Error: {e}")