ai-assistant-engine / embeddings /embedding_model.py
khubchand's picture
Optimize startup speed and query latency
d641e1d
from langchain_huggingface import HuggingFaceEmbeddings
from config import EMBEDDING_MODEL
_embedding_model_instance = None
def get_embedding_model() -> HuggingFaceEmbeddings:
global _embedding_model_instance
if _embedding_model_instance is None:
_embedding_model_instance = HuggingFaceEmbeddings(
model_name=EMBEDDING_MODEL,
model_kwargs={"local_files_only": True}
)
return _embedding_model_instance
from langchain_core.embeddings import Embeddings
class LazyEmbeddingModel(Embeddings):
def __getattr__(self, name):
return getattr(get_embedding_model(), name)
def embed_documents(self, texts, *args, **kwargs):
return get_embedding_model().embed_documents(texts, *args, **kwargs)
def embed_query(self, text, *args, **kwargs):
return get_embedding_model().embed_query(text, *args, **kwargs)
def __call__(self, text, *args, **kwargs):
return get_embedding_model().embed_query(text, *args, **kwargs)
embedding_model = LazyEmbeddingModel()