Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| import pickle | |
| import pandas as pd | |
| import traceback | |
| app = Flask(__name__) | |
| # Load pipeline (preprocessor + model) | |
| with open("best_model.pkl", "rb") as f: | |
| model = pickle.load(f) | |
| def health(): | |
| return jsonify({"status": "ExtraaLearn API running"}), 200 | |
| def predict(): | |
| try: | |
| data = request.get_json() | |
| if "inputs" not in data: | |
| return jsonify({"error": "Expected key 'inputs'"}), 400 | |
| df = pd.DataFrame(data["inputs"]) | |
| pred = int(model.predict(df)[0]) | |
| prob = float(model.predict_proba(df)[0][1]) | |
| if prob >= 0.75: | |
| category = "High Conversion Potential" | |
| elif prob >= 0.40: | |
| category = "Medium Conversion Potential" | |
| else: | |
| category = "Low Conversion Potential" | |
| return jsonify({ | |
| "prediction": pred, | |
| "conversion_probability": round(prob, 2), | |
| "lead_category": category | |
| }), 200 | |
| except Exception as e: | |
| return jsonify({ | |
| "error": "Prediction failed", | |
| "details": str(e), | |
| "trace": traceback.format_exc() | |
| }), 500 | |