mindnet/app/embeddings.py
Lars a58856fa00
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 5s
Dateien nach "app" hochladen
2025-09-02 10:19:42 +02:00

23 lines
713 B
Python

from __future__ import annotations
from typing import List
from functools import lru_cache
from .config import get_settings
# Lazy import so startup stays fast
@lru_cache
def _load_model():
from sentence_transformers import SentenceTransformer
settings = get_settings()
model = SentenceTransformer(settings.MODEL_NAME, device="cpu")
return model
def embed_texts(texts: List[str]) -> list[list[float]]:
model = _load_model()
# Normalize to list of str
texts = [t if isinstance(t, str) else str(t) for t in texts]
vecs = model.encode(texts, normalize_embeddings=True, convert_to_numpy=False)
# Ensure pure-python list of floats
return [list(map(float, v)) for v in vecs]