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