AkshatGianIIITD
Add UI for model
2226294
import gradio as gr
import pandas as pd
import joblib
# load full pipeline
model = joblib.load("model.joblib")
def predict_excel(file):
# Read uploaded Excel file
df = pd.read_excel(file.name)
# Check if required columns exist
required_cols = [
"CustomerID", "Tenure", "PreferredLoginDevice", "CityTier",
"WarehouseToHome", "PreferredPaymentMode", "Gender", "HourSpendOnApp",
"NumberOfDeviceRegistered", "PreferredOrderCat", "SatisfactionScore",
"MaritalStatus", "NumberOfAddress", "Complain",
"OrderAmountHikeFromlastYear", "CouponUsed", "OrderCount",
"DaySinceLastOrder", "CashbackAmount"
]
missing = [c for c in required_cols if c not in df.columns]
if missing:
return f"❌ Missing columns in Excel: {missing}"
# Predict
preds = model.predict(df[required_cols])
# Add prediction column
df["Prediction"] = preds
# Save to new Excel file
out_path = "predicted_output.xlsx"
df.to_excel(out_path, index=False)
return out_path # Gradio will let user download it
# Gradio UI
demo = gr.Interface(
fn=predict_excel,
inputs=gr.File(label="Upload Excel File (.xlsx)"),
outputs=gr.File(label="Download Updated Excel With Predictions"),
title="Excel-Based Customer Churn Predictor",
description="Upload an Excel file to receive a new Excel file with model predictions added."
)
demo.launch()