Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import joblib | |
| # load full pipeline | |
| model = joblib.load("model.joblib") | |
| def predict_excel(file): | |
| df = pd.read_excel(file.name, sheet_name="E Comm") | |
| required_cols = [ | |
| "CustomerID", "Tenure", "PreferredLoginDevice", "CityTier", | |
| "WarehouseToHome", "PreferredPaymentMode", "Gender", "HourSpendOnApp", | |
| "NumberOfDeviceRegistered", "PreferedOrderCat", "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 None, f"❌ Missing columns in Excel: {missing}" | |
| preds = model.predict(df[required_cols]) | |
| df["Prediction"] = preds | |
| out_path = "predicted_output.xlsx" | |
| df.to_excel(out_path, index=False) | |
| return out_path, "✅ Successfully generated predictions!" | |
| # 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"), | |
| gr.Text(label="Status Message") | |
| ], | |
| title="Excel-Based Customer Churn Predictor", | |
| description="Upload an Excel file to receive a new Excel file with model predictions added." | |
| ) | |
| demo.launch() | |