Spaces:
Sleeping
Sleeping
| import requests | |
| import streamlit as st | |
| import pandas as pd | |
| # Set page title | |
| st.title("SuperKart Sales Forecast") | |
| st.markdown("Predict the future sales revenue for SuperKart products based on store and product features.") | |
| # --- Single Prediction Section --- | |
| st.subheader("Single Prediction") | |
| # Input fields | |
| Product_Weight = st.number_input("Product Weight (in kg)", min_value=1.0, max_value=50.0, value=12.7) | |
| Product_Allocated_Area = st.number_input("Product Allocated Area (ratio)", min_value=0.001, max_value=0.5, value=0.08) | |
| Product_MRP = st.number_input("Product MRP (Maximum Retail Price)", min_value=10.0, max_value=500.0, value=160.0) | |
| Store_Age = st.number_input("Store Age (years since establishment)", min_value=1, max_value=50, value=5) | |
| Product_Sugar_Content = st.selectbox("Product Sugar Content", ["Low Sugar", "Regular", "No Sugar"]) | |
| Product_Type = st.selectbox("Product Type", [ | |
| "Meat", "Snack foods", "Hard drinks", "Dairy", "Canned", "Soft drinks", | |
| "Health and hygiene", "Baking goods", "Bread", "Breakfast", "Frozen foods", | |
| "Fruits and vegetables", "Household", "Seafood", "Starchy foods", "Others" | |
| ]) | |
| Store_Size = st.selectbox("Store Size", ["High", "Medium", "Low"]) | |
| 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 Type 1", "Supermarket Type 2", "Food Mart"]) | |
| Product_Prefix = st.text_input("Product Prefix (two letters, e.g., 'SN')", value="SN") | |
| # Create JSON payload | |
| data = { | |
| "Product_Weight": Product_Weight, | |
| "Product_Allocated_Area": Product_Allocated_Area, | |
| "Product_MRP": Product_MRP, | |
| "Store_Age": Store_Age, | |
| "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, | |
| "Product_Prefix": Product_Prefix | |
| } | |
| # Predict button | |
| if st.button("Predict Sales", type="primary"): | |
| try: | |
| response = requests.post( | |
| "https://muthuvaidy-backend.hf.space/v1/predict", json=data | |
| ) | |
| if response.status_code == 200: | |
| result = response.json() | |
| st.success(f"Predicted Sales Total: {result['Predicted_Sales_Total']:.2f}") | |
| else: | |
| st.error("Error in API request. Please try again.") | |
| except Exception as e: | |
| st.error(f"Request failed: {e}") | |
| # --- Batch Prediction Section --- | |
| st.subheader("Batch Prediction") | |
| st.markdown("Upload a CSV file with multiple records for batch predictions.") | |
| file = st.file_uploader("Upload CSV File", type=["csv"]) | |
| if file is not None: | |
| if st.button("Predict Batch Sales", type="primary"): | |
| try: | |
| response = requests.post( | |
| "https://muthuvaidy-backend.hf.space/v1/predict_batch", files={"file": file} | |
| ) | |
| if response.status_code == 200: | |
| result = response.json() | |
| st.success("Batch Prediction Completed!") | |
| st.write(result) | |
| else: | |
| st.error("Error in batch prediction request.") | |
| except Exception as e: | |
| st.error(f"Batch request failed: {e}") | |