PR118's picture
Upload folder using huggingface_hub
6a15f93 verified
Raw
History Blame Contribute Delete
2.95 kB
import streamlit as st
import requests
st.title("Sales Forecast Prediction Model") #Complete the code to define the title of the app.
# Input fields for product and store data
Product_Weight = st.number_input("Product Weight (in Kg)", min_value=0.0, value=12.66)
Product_Sugar_Content = st.selectbox("Product Sugar Content", ["Low Sugar", "Regular", "No Sugar"])
Product_Allocated_Area = st.number_input("Product Allocated Area (in fraction of total store area)", min_value=0.0, value=0.075)
Product_MRP = st.number_input("Product MRP ($ value)", min_value=0.0, value=100.00)
Store_Size = st.selectbox("Store Size", ["Small", "Medium", "High"])
Store_Location_City_Type = st.selectbox("Store Location City Type", ["Tier 1", "Tier 2", "Tier 3"])
Store_Type = st.selectbox("Store Type", ["Departmental Store", "Food Mart", "Supermarket Type1","Supermarket Type2"])
# Product_Id_char = st.text_input("Product ID", value="FD100")
Store_Age_Years = st.number_input("Store Age (in years)", min_value=0.0, value=10.0)
# Product_Type_Category = st.selectbox("Product Type", ["Perishables", "Non Perishables"])
Product_Type = st.selectbox(
"Product Type",
[
"Dairy",
"Meat",
"Fruits and Vegetables",
"Breakfast",
"Breads",
"Seafood",
"Snacks",
"Frozen Foods"
]
)
product_data = {
"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": Product_Type
}
if st.button("Predict", type='primary'):
response = requests.post("https://PR118-SalesForecastPrediction-BackendNEW.hf.space/v1/predict", json=product_data)
if response.status_code == 200:
result = response.json()
predicted_sales = result["Sales"]
st.write(f"Predicted Product Store Sales : ${predicted_sales:.2f}")
else:
st.error("Error in API request")
# Section for batch prediction
st.subheader("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://PR118-SalesForecastPrediction-BackendNEW.hf.space/v1/predictbatch",
files={"file": uploaded_file}
)
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.")