from sentence_transformers import SentenceTransformer from functools import lru_cache from src.config import Settings @lru_cache(maxsize=1) def _cached_model(name: str): # Load model without authentication token (for public models) return SentenceTransformer(name, token=False) def get_embedder(settings: Settings): model = _cached_model(settings.embedding_model) def _encode(texts): return model.encode(texts, convert_to_numpy=True, normalize_embeddings=True) return _encode