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)
}
|