doc-intelligence-rag / app /embeddings.py
dashhdata's picture
Upload folder using huggingface_hub
1e8bb26 verified
Raw
History Blame Contribute Delete
671 Bytes
"""Local embedding model wrapper (fastembed / ONNX — no torch dependency)."""
from __future__ import annotations
from functools import lru_cache
from typing import List
from .config import get_settings
@lru_cache
def _model():
from fastembed import TextEmbedding
settings = get_settings()
return TextEmbedding(model_name=settings.embedding_model)
def embed_texts(texts: List[str]) -> List[List[float]]:
if not texts:
return []
# fastembed returns numpy arrays (already L2-normalized for bge models).
return [v.tolist() for v in _model().embed(texts)]
def embed_query(text: str) -> List[float]:
return embed_texts([text])[0]