File size: 827 Bytes
2835bd4
58a8420
 
 
 
 
2835bd4
 
 
58a8420
 
 
 
 
 
 
 
 
 
 
90b4f7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import joblib
import numpy as np

class EndpointHandler:
    def __init__(self, path=""):
        base = path if path else os.path.dirname(os.path.abspath(__file__))
        self.model = joblib.load(os.path.join(base, "fraud_model.joblib"))
        self.scaler = joblib.load(os.path.join(base, "scaler.joblib"))

    def __call__(self, data):
        inputs = data.get("inputs", data)
        feature_order = ["Time"] + [f"V{i}" for i in range(1, 29)] + ["Amount"]
        row = np.array([[inputs[f] for f in feature_order]])
        row[:, [0, -1]] = self.scaler.transform(row[:, [0, -1]])
        pred = self.model.predict(row)[0]
        prob = self.model.predict_proba(row)[0][1]
        return {
            "prediction": "fraud" if pred == 1 else "legit",
            "fraud_probability": float(prob)
        }