File size: 3,331 Bytes
fdcce80 47210b0 fdcce80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
import streamlit as st
import pandas as pd
import requests
API_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecast"
#product type
product_types = [
"Fruits and Vegetables",
"Snack Foods",
"Frozen Foods",
"Dairy",
"Household",
"Baking Goods",
"Canned",
"Health and Hygiene",
"Meat",
"Soft Drinks",
"Breads",
"Hard Drinks",
"Others",
"Starchy Foods",
"Breakfast",
"Seafood"
]
#store types
store_types = [
"Food Mart",
"Supermarket Type1",
"Supermarket Type2",
"Departmental Store"
]
#Store Id
store_ids = [
"OUT001",
"OUT002",
"OUT003",
"OUT004"
]
store_Location_City_Types=[
"Tier 1",
"Tier 2",
"Tier 3"
]
store_sizes=[
"Small",
"Medium",
"Large"
]
#Set title of the Streamlit app
st.title("Product Revenue prediction")
#Section for online prediction
st.subheader("Online Prediction")
#Collect user input for features
Product_Weight = st.number_input("Product Weight", min_value=4.0, max_value=25.0, step=0.5)
Product_Sugar_Content = st.selectbox("Product Sugar Content", ["No Sugar", "Low Sugar", "Regular"])
Product_Allocated_Area = st.number_input("Product Allocated Area", min_value=0.001, max_value=0.3)
Product_Type = st.selectbox("Product Type", product_types)
Product_MRP = st.number_input("Product MRP", min_value=30.0, max_value=300.0)
Store_Id = st.selectbox("Store Id", store_ids)
Store_Establishment_Year = st.number_input("Store Establishment Year", min_value=1988, max_value=2010, step=1)
Store_Size = st.selectbox("Store Size", store_sizes)
Store_Location_City_Type = st.selectbox("Store Location City Type", store_Location_City_Types)
Store_Type = st.selectbox("Store Type", store_types)
payload = {
'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
}
if st.button("Predict"):
response = requests.post(API_ENDPOINT, json=payload)
if response.status_code == 200:
json_data= response.json()
st.write('Predicted Sales revenue ', json_data.get('Prediction'))
else:
st.write(f"Error making prediction: {response.status_code}")
# 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"])
BATCH_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecastbatch"
# Make batch prediction when the "Predict Batch" button is clicked
if uploaded_file is not None:
if st.button("Predict Batch"):
response = requests.post(BATCH_ENDPOINT, 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.")
|