rajkumar92's picture
Upload handler.py with huggingface_hub
2835bd4 verified
Raw History Blame Contribute Delete
827 Bytes
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)
}