File size: 1,111 Bytes
45a8f7b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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)}
|