Spaces:
Paused
Paused
File size: 1,159 Bytes
f6cb78b | 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 34 35 36 37 38 39 40 | # 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
|