| |
|
| | import streamlit as st |
| | import pandas as pd |
| | import joblib |
| | import requests |
| |
|
| | model_root_url = "https://Dewasheesh-SuperKartPredictionBackend.hf.space" |
| |
|
| | model_url = model_root_url + "/v1/superkart" |
| |
|
| | |
| | st.title("Super Kart Sales Prediction App") |
| | st.write("This tool predicts the total store sales based on product and store details. Enter the required information below:") |
| |
|
| | |
| | Product_Weight = st.number_input("Product Weight", min_value=0.0, value=10.0) |
| | Product_Sugar_Content = st.selectbox("Product Sugar Content", ["Low", "Medium", "High"]) |
| | Product_Allocated_Area = st.number_input("Product Allocated Area (sq. ft.)", min_value=0.0, value=50.0) |
| | Product_Type = st.selectbox("Product Type", ["Food", "Drinks", "Household", "Others"]) |
| | Product_MRP = st.number_input("Product MRP (Maximum Retail Price)", min_value=0.0, value=100.0) |
| |
|
| | Store_Id = st.text_input("Store ID (e.g., S001)", "S001") |
| | Store_Establishment_Year = st.number_input("Store Establishment Year", min_value=1900, max_value=2025, value=2010) |
| | 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", ["Grocery Store", "Supermarket", "Hypermarket", "Others"]) |
| |
|
| | |
| | input_data = pd.DataFrame([{ |
| | '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 Sales"): |
| | |
| | payload = input_data.to_dict(orient="records")[0] |
| |
|
| | try: |
| | response = requests.post(model_url, json=payload) |
| |
|
| | if response.status_code == 200: |
| | result = response.json() |
| |
|
| | |
| | predicted_sales = result.get("Predicted Sales Total", None) |
| |
|
| | if predicted_sales is not None: |
| | st.write(f"### Predicted Sales Total: **{round(float(predicted_sales), 2)}**") |
| | else: |
| | st.error("Response JSON missing 'Predicted Sales Total'") |
| | else: |
| | st.error(f"Error: {response.status_code} - {response.text}") |
| |
|
| | except Exception as e: |
| | st.error(f"Request failed: {e}") |
| |
|