Extra-learn-BE / app.py
RohitMV's picture
Create app.py
a38a34c verified
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