from functools import lru_cache from sentence_transformers import SentenceTransformer from app.config import get_settings @lru_cache def get_model() -> SentenceTransformer: return SentenceTransformer(get_settings().model_name) def embed_text(text: str) -> list[float]: vector = get_model().encode(text, normalize_embeddings=True) return vector.tolist() def embed_texts(texts: list[str]) -> list[list[float]]: vectors = get_model().encode(texts, normalize_embeddings=True) return vectors.tolist()