import streamlit as st import pandas as pd import requests #import plotly as px # Set the page st.set_page_config(page_title="Sales Dashboard", layout="wide") # Set the title of the Streamlit app st.title("Super kart Sales Prediction") st.markdown("#### A streamlined view of sales performance by store and product category.") # Section for sales prediction st.subheader("Sales Prediction") col1, col2 = st.columns(2) with col1: # Collect user input for property features Product_Id = st.text_input("Product ID") Product_Weight = st.number_input("Product Weight ", min_value=0.0, value=100.00,step=0.01,format="%.2f") Product_Sugar_Content = st.selectbox("Product Sugar Content", ["No Sugar", "Low Sugar", "Regular", "reg"]) Product_Allocated_Area = st.number_input("Product Allocated area ", min_value=0.0, value=1.00,step=0.01,format="%.3f") 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", "Starchy Foods", "Breakfast", "Seafood", "Household", "Baking Goods", "Canned", "Health and Hygiene", "Meat", "Soft Drinks", "Breads", "Hard Drinks", "Starchy Foods", "Breakfast", "Seafood", "Others"]) with col2: Product_MRP = st.number_input("Product MRP ", min_value=0.0, value=1000.00,step=0.01,format="%.2f") Store_Id = st.selectbox ("Store ID", ["OUT001","OUT002","OUT003","OUT004"]) Store_Establishment_Year = st.number_input("Store Establishement year ", min_value=1980, max_value=2025) Store_Size = st.selectbox ("Store Size", ["Small","Medium","High"]) Store_Location_City_Type = st.selectbox ("Store Location city", ["Tier 1","Tier 2","Tier 3"]) Store_Type = st.selectbox ("Store Type", ["Departmental Store","Food Mart","Supermarket Type1","Supermarket Type2"]) # Convert user input into a DataFrame input_data = pd.DataFrame([{ 'Product_Id': Product_Id, '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 }]) # Make prediction when the "Predict" button is clicked if st.button("Predict"): response = requests.post("https://Shanmuganathan75-SuperKartPredictionBackend.hf.space/v1/sales", json=input_data.to_dict(orient='records')[0]) # Send data to Flask API if response.status_code == 200: prediction = response.json()['Predicted Price (in dollars)'] st.success(f"Predicted sales Price (in dollars): {prediction}") else: st.error("Error making prediction.") # Section for batch prediction st.subheader("Sales Batch Prediction") # Allow users to upload a CSV file for batch prediction uploaded_file = st.file_uploader("Upload CSV file for batch prediction", type=["csv"]) # Make batch prediction when the "Predict Batch" button is clicked if uploaded_file is not None: if st.button("Predict Batch"): response = requests.post("https://Shanmuganathan75-SuperKartPredictionBackend.hf.space/v1/salesbatch", files={"file": uploaded_file}) # Send file to Flask API if response.status_code == 200: predictions = response.json() st.success("Batch predictions completed!") st.write(predictions) # Display the predictions else: st.error("Error making batch prediction.")