|
|
| |
|
|
| import streamlit as st |
| import requests |
|
|
| |
| |
| |
| BACKEND_URL = os.environ.get("BACKEND_URL", "http://superkart-backend:7860") |
|
|
| st.set_page_config(page_title="SuperKart Sales Forecasting", layout="centered") |
| st.title("SuperKart Sales Forecasting") |
| st.write("Enter the product and store details below to forecast sales revenue.") |
|
|
| |
| product_weight = st.number_input("Product Weight", min_value=0.0, value=12.66, step=0.1) |
| product_sugar_content = st.selectbox("Product Sugar Content", ["Low Sugar", "Regular", "No Sugar"]) |
| product_allocated_area = st.number_input( |
| "Product Allocated Area", min_value=0.0, max_value=1.0, value=0.027, step=0.001, format="%.3f" |
| ) |
| product_mrp = st.number_input("Product MRP", min_value=0.0, value=117.08, step=0.1) |
| store_size = st.selectbox("Store Size", ["High", "Medium", "Small"]) |
| 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", "Supermarket Type3", "Food Mart"], |
| ) |
| product_id_char = st.selectbox("Product Id Prefix", ["FD", "DR", "NC"]) |
| store_age_years = st.number_input("Store Age (Years)", min_value=0, value=16, step=1) |
| product_type_category = st.selectbox("Product Type Category", ["Perishables", "Non Perishables"]) |
|
|
| if st.button("Predict Sales"): |
| payload = { |
| "Product_Weight": product_weight, |
| "Product_Sugar_Content": product_sugar_content, |
| "Product_Allocated_Area": product_allocated_area, |
| "Product_MRP": product_mrp, |
| "Store_Size": store_size, |
| "Store_Location_City_Type": store_location_city_type, |
| "Store_Type": store_type, |
| "Product_Id_char": product_id_char, |
| "Store_Age_Years": store_age_years, |
| "Product_Type_Category": product_type_category, |
| } |
| try: |
| response = requests.post(f"{BACKEND_URL}/v1/predict", json=payload) |
| response.raise_for_status() |
| prediction = response.json()["predicted_Product_Store_Sales_Total"] |
| st.success(f"Predicted Sales: {prediction}") |
| except Exception as e: |
| st.error(f"Error while calling the backend API: {e}") |
|
|