Spaces:
Sleeping
Sleeping
Download embeddings.py from walkingparadox/NLPforASD: direct link, hf CLI and curl.
- Browser
- Download file 945 Bytes
-
https://huggingface.co/spaces/walkingparadox/NLPforASD/resolve/main/embeddings.py
- Command line
-
hf download hf://spaces/walkingparadox/NLPforASD/embeddings.py
-
curl -L -o embeddings.py https://huggingface.co/spaces/walkingparadox/NLPforASD/resolve/main/embeddings.py
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") | |