RohitMV commited on
Commit
a38a34c
·
verified ·
1 Parent(s): efaf846

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -0
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, jsonify
2
+ import pickle
3
+ import pandas as pd
4
+ import traceback
5
+
6
+ app = Flask(__name__)
7
+
8
+ # Load pipeline (preprocessor + model)
9
+ with open("best_model.pkl", "rb") as f:
10
+ model = pickle.load(f)
11
+
12
+
13
+ @app.route("/", methods=["GET"])
14
+ def health():
15
+ return jsonify({"status": "ExtraaLearn API running"}), 200
16
+
17
+
18
+ @app.route("/predict", methods=["POST"])
19
+ def predict():
20
+ try:
21
+ data = request.get_json()
22
+
23
+ if "inputs" not in data:
24
+ return jsonify({"error": "Expected key 'inputs'"}), 400
25
+
26
+ df = pd.DataFrame(data["inputs"])
27
+
28
+ pred = int(model.predict(df)[0])
29
+ prob = float(model.predict_proba(df)[0][1])
30
+
31
+ if prob >= 0.75:
32
+ category = "High Conversion Potential"
33
+ elif prob >= 0.40:
34
+ category = "Medium Conversion Potential"
35
+ else:
36
+ category = "Low Conversion Potential"
37
+
38
+ return jsonify({
39
+ "prediction": pred,
40
+ "conversion_probability": round(prob, 2),
41
+ "lead_category": category
42
+ }), 200
43
+
44
+ except Exception as e:
45
+ return jsonify({
46
+ "error": "Prediction failed",
47
+ "details": str(e),
48
+ "trace": traceback.format_exc()
49
+ }), 500