|
|
import streamlit as st |
|
|
import pandas as pd |
|
|
import requests |
|
|
|
|
|
API_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecast" |
|
|
|
|
|
|
|
|
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 = [ |
|
|
"Food Mart", |
|
|
"Supermarket Type1", |
|
|
"Supermarket Type2", |
|
|
"Departmental Store" |
|
|
] |
|
|
|
|
|
|
|
|
store_ids = [ |
|
|
"OUT001", |
|
|
"OUT002", |
|
|
"OUT003", |
|
|
"OUT004" |
|
|
] |
|
|
|
|
|
store_Location_City_Types=[ |
|
|
"Tier 1", |
|
|
"Tier 2", |
|
|
"Tier 3" |
|
|
] |
|
|
|
|
|
store_sizes=[ |
|
|
"Small", |
|
|
"Medium", |
|
|
"Large" |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
st.title("Product Revenue prediction") |
|
|
|
|
|
|
|
|
st.subheader("Online Prediction") |
|
|
|
|
|
|
|
|
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}") |
|
|
|
|
|
|
|
|
st.subheader("Batch Prediction") |
|
|
|
|
|
|
|
|
uploaded_file = st.file_uploader("Upload CSV file for batch prediction", type=["csv"]) |
|
|
BATCH_ENDPOINT="https://TokenTutor-SuperKartSalesPrectionBackend.hf.space/v1/forecastbatch" |
|
|
|
|
|
if uploaded_file is not None: |
|
|
if st.button("Predict Batch"): |
|
|
response = requests.post(BATCH_ENDPOINT, files={"file": uploaded_file}) |
|
|
if response.status_code == 200: |
|
|
predictions = response.json() |
|
|
st.success("Batch predictions completed!") |
|
|
st.write(predictions) |
|
|
else: |
|
|
st.error("Error making batch prediction.") |
|
|
|
|
|
|