Spaces:
Sleeping
Sleeping
| import os | |
| import numpy as np | |
| from sentence_transformers import SentenceTransformer | |
| _model = None | |
| def _get_model(): | |
| global _model | |
| if _model is None: | |
| name = os.getenv("EMBED_MODEL_NAME", "sentence-transformers/all-MiniLM-L6-v2") | |
| _model = SentenceTransformer(name) | |
| return _model | |
| def embed_texts(texts): | |
| """Return L2-normalized embeddings as (N, D) float32 array.""" | |
| if not texts: | |
| return np.zeros((0, 0), dtype="float32") | |
| model = _get_model() | |
| embs = model.encode(texts, show_progress_bar=False, convert_to_numpy=True) | |
| embs = embs.astype("float32") | |
| norms = np.linalg.norm(embs, axis=1, keepdims=True) + 1e-8 | |
| embs = embs / norms | |
| return embs | |