Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import requests | |
| import pandas as pd | |
| # App Title | |
| st.title("Superkart Product Store Sales Prediction") | |
| # --- Online (Single) Prediction --- | |
| st.subheader("Online Prediction") | |
| # Input Fields | |
| store_id = st.number_input("Store ID", min_value=1, step=1, value=1) | |
| item_id = st.number_input("Item ID", min_value=1, step=1, value=1) | |
| item_price = st.number_input("Item Price (₹)", min_value=0.0, step=1.0, value=100.0) | |
| promotion = st.selectbox("Promotion Applied?", ["Yes", "No"]) | |
| holiday = st.selectbox("Is it a Holiday or Weekend?", ["Yes", "No"]) | |
| day_of_week = st.selectbox("Day of the Week", ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]) | |
| # Format data as expected by backend | |
| input_data = { | |
| "store_id": store_id, | |
| "item_id": item_id, | |
| "item_price": item_price, | |
| "promotion": 1 if promotion == "Yes" else 0, | |
| "holiday": 1 if holiday == "Yes" else 0, | |
| "day_of_week": day_of_week | |
| } | |
| # Predict Button | |
| if st.button("Predict"): | |
| try: | |
| response = requests.post( | |
| "https://namita2025-superkart-backend.hf.space/predict", # Replace with your backend URL if needed | |
| json=input_data | |
| ) | |
| if response.status_code == 200: | |
| result = response.json() | |
| st.success(f"Predicted Sales: {result['predicted_sales']} units") | |
| else: | |
| st.error(f"Error from API: Status Code {response.status_code}") | |
| except Exception as e: | |
| st.error(f"Failed to connect to the API. Error: {e}") | |
| # --- Batch Prediction --- | |
| st.subheader("Batch Prediction (CSV Upload)") | |
| file = st.file_uploader("Upload a CSV file with multiple records", type=["csv"]) | |
| if file is not None: | |
| if st.button("Predict Batch"): | |
| try: | |
| response = requests.post( | |
| "https://namita2025-superkart-backend.hf.space/predict_batch", # Replace if needed | |
| files={"file": file} | |
| ) | |
| if response.status_code == 200: | |
| result = response.json() | |
| df = pd.DataFrame.from_dict(result, orient='index', columns=["Predicted Sales"]) | |
| st.success("Batch Prediction Done!") | |
| st.dataframe(df) | |
| else: | |
| st.error(f"API returned status code {response.status_code}") | |
| except Exception as e: | |
| st.error(f"Failed to perform batch prediction. Error: {e}") | |