File size: 747 Bytes
0d82b06
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import pickle, random
from sentence_transformers import SentenceTransformer

# Load model once
with open("intent_model.pkl", "rb") as f:
    data = pickle.load(f)

clf = data["classifier"]
id2label = data["id2label"]
embedder = SentenceTransformer(data["embed_model"])
intents_meta = data["intents_meta"]

def predict(text):
    emb = embedder.encode([text])
    pred = clf.predict(emb)[0]
    intent = id2label[pred]
    meta = intents_meta[intent]
    response = random.choice(meta["responses"])
    return {
        "intent": intent,
        "response": response,
        "action": meta["action"]
    }

# Required entrypoint for Hugging Face inference API
def predict_intent(inputs: str):
    return predict(inputs)