Kinara-xgb-model / interface.py
mjpsm's picture
Upload interface.py
45a8f7b verified
# inference.py
import joblib
from sentence_transformers import SentenceTransformer
import numpy as np
# -----------------------------
# Load model + embedder at container startup
# -----------------------------
MODEL_FILENAME = "/Users/mazamessomeba/Desktop/Projects/Soulprint_snapshot/kinara-regression/Kinara_xgb_model.pkl" # change per repo
model = joblib.load(MODEL_FILENAME)
embedder = SentenceTransformer("all-mpnet-base-v2")
# -----------------------------
# Hugging Face Inference API entrypoint
# -----------------------------
def predict(inputs: dict) -> dict:
"""
Expected input:
{
"text": "During a heated family argument, I stayed calm and reminded everyone of our values."
}
Returns:
{
"score": 0.752
}
"""
if "text" not in inputs:
return {"error": "Missing required field 'text'"}
text = inputs["text"]
# Convert text to embedding
embedding = embedder.encode([text])
# Predict with model
score = model.predict(embedding)[0]
# Ensure it's a float for JSON serialization
return {"score": float(score)}