Shanmuganathan75's picture
Upload folder using huggingface_hub
d757149 verified
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.")