GraphResearcher / app /retrieval /embedding_service.py
yugbirla's picture
Sync GraphRAG fusion quality cleanup and evaluation files
b7d0804
Raw
History Blame Contribute Delete
746 Bytes
from functools import lru_cache
from typing import List
import numpy as np
from sentence_transformers import SentenceTransformer
from app.core.config import settings
@lru_cache(maxsize=1)
def get_embedding_model() -> SentenceTransformer:
return SentenceTransformer(settings.EMBEDDING_MODEL_NAME, device="cpu")
def embed_texts(texts: List[str]) -> List[List[float]]:
if not texts:
return []
model = get_embedding_model()
embeddings = model.encode(
texts,
normalize_embeddings=True,
show_progress_bar=False
)
if isinstance(embeddings, np.ndarray):
return embeddings.tolist()
return embeddings
def embed_text(text: str) -> List[float]:
return embed_texts([text])[0]