| import joblib | |
| import json | |
| from sentence_transformers import SentenceTransformer | |
| import pandas as pd | |
| def load_model(): | |
| clf = joblib.load("intent_classifier_lgb.pkl") | |
| embedder = SentenceTransformer("sbert_embed") | |
| with open("labels.json", "r") as f: | |
| label2id = json.load(f) | |
| id2label = {v:k for k,v in label2id.items()} | |
| return clf, embedder, id2label | |
| clf, embedder, id2label = load_model() | |
| def predict_intent(text: str): | |
| emb = embedder.encode([text])[0] | |
| df_emb = pd.DataFrame([emb]) | |
| pred = clf.predict(df_emb)[0] | |
| return id2label[pred] | |