File size: 1,145 Bytes
c46e765
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from dotenv import load_dotenv
from transformers import pipeline
import os

load_dotenv()

class Config:
    EMOTION_MODEL_NAME = os.getenv("EMOTION_MODEL_NAME", "j-hartmann/emotion-english-distilroberta-base")
    SENTIMENT_MODEL_NAME = os.getenv("SENTIMENT_MODEL_NAME", "distilbert-base-uncased-finetuned-sst-2-english")
    DEVICE = int(os.getenv("MODEL_DEVICE", "-1"))

class ModelRegistry:
    def __init__(self):
        self.models = {
            "emotion": None,
            "sentiment": None
        }

    def load_models(self):
        print("Loading pretrained Hugging Face models...")
        self.models["emotion"] = pipeline("text-classification", model=Config.EMOTION_MODEL_NAME, device=Config.DEVICE)
        self.models["sentiment"] = pipeline("sentiment-analysis", model=Config.SENTIMENT_MODEL_NAME, device=Config.DEVICE)
        print("Models loaded successfully and ready for inference.")

    def initialize(self):
        if not all(self.models.values()):
            self.load_models()

    def get(self, name: str):
        return self.models.get(name)

model_registry = ModelRegistry()