| from transformers import pipeline | |
| from huggingface_hub import login | |
| import logging | |
| import os | |
| logger = logging.getLogger(__name__) | |
| # Using a robust Sinhala sentiment analysis model from Hugging Face | |
| MODEL_NAME = "sinhala-nlp/sinhala-sentiment-analysis-sinbert-small" | |
| sentiment_pipeline = None | |
| def load_model(): | |
| global sentiment_pipeline | |
| if sentiment_pipeline is None: | |
| try: | |
| logger.info(f"Loading model {MODEL_NAME}...") | |
| sentiment_pipeline = pipeline("sentiment-analysis", model=MODEL_NAME) | |
| logger.info("Model loaded successfully.") | |
| except Exception as e: | |
| logger.error(f"Error loading model: {e}") | |
| raise e | |
| def predict_sentiment(text: str): | |
| if not sentiment_pipeline: | |
| raise RuntimeError("Model pipeline is not initialized.") | |
| result = sentiment_pipeline(text)[0] | |
| return { | |
| "label": result["label"], | |
| "score": float(result["score"]) | |
| } | |