NLPforASD / embeddings.py
walkingparadox's picture
Update embeddings.py
e9364cc verified
Raw
History Blame Contribute Delete
945 Bytes
"""Encode text chunks into dense vectors using SentenceTransformers."""
import numpy as np
from sentence_transformers import SentenceTransformer
from config import EMBEDDING_MODEL
_model = None # lazy singleton
def get_embedding_model() -> SentenceTransformer:
global _model
if _model is None:
print(f"[embeddings] Loading embedding model: {EMBEDDING_MODEL}")
_model = SentenceTransformer(EMBEDDING_MODEL)
return _model
def embed_texts(texts: list[str]) -> np.ndarray:
"""Return a (N, D) float32 array of embeddings."""
model = get_embedding_model()
embeddings = model.encode(texts, show_progress_bar=True, convert_to_numpy=True)
return embeddings.astype("float32")
def embed_query(query: str) -> np.ndarray:
"""Return a (1, D) float32 array for a single query."""
model = get_embedding_model()
vec = model.encode([query], convert_to_numpy=True)
return vec.astype("float32")