Spaces:
Sleeping
Sleeping
File size: 1,248 Bytes
a38a34c | 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 | 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)
@app.route("/", methods=["GET"])
def health():
return jsonify({"status": "ExtraaLearn API running"}), 200
@app.route("/predict", methods=["POST"])
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
|