# core/vectorstore/embeddings.py import os from dotenv import load_dotenv from langchain_huggingface import HuggingFaceEmbeddings load_dotenv(dotenv_path="config/.env") class EmbeddingManager: """ Singleton para gestionar embeddings HuggingFace normalizados (coseno). """ _instance = None def __new__(cls): if cls._instance is None: # Leer nombre de modelo, con valor por defecto model = os.getenv( "MODEL_EMBEDDINGS", "sentence-transformers/distiluse-base-multilingual-cased", ) cls._instance = super().__new__(cls) # AquĆ­ creamos el atributo de instancia cls._instance.embeddings = HuggingFaceEmbeddings( model_name=model, encode_kwargs={"normalize_embeddings": True}, ) return cls._instance @classmethod def get_embeddings(cls): """ Devuelve el objeto de embeddings del singleton. """ if cls._instance is None: cls._instance = cls() return cls._instance.embeddings