Spaces:
Sleeping
Sleeping
Download src/embedder.py from Kartik-work/resumeradar: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/Kartik-work/resumeradar/resolve/main/src/embedder.py
- Command line
-
hf download hf://spaces/Kartik-work/resumeradar/src/embedder.py
-
curl -L -o embedder.py https://huggingface.co/spaces/Kartik-work/resumeradar/resolve/main/src/embedder.py
1.24 kB
| import numpy as np | |
| from sentence_transformers import SentenceTransformer | |
| from config import EMBEDDING_MODEL, VECTOR_DIMENSIONS | |
| from core.logger import get_logger | |
| logger = get_logger(__name__) | |
| _model = None #caching the model load. Using Singleton patter with lazy initiallization | |
| def load_embedding_model() -> SentenceTransformer: | |
| global _model | |
| if _model is None: | |
| logger.info(f"Loading embedding model: {EMBEDDING_MODEL}") | |
| _model = SentenceTransformer(EMBEDDING_MODEL) | |
| logger.info(f"Model loaded - vector size: {VECTOR_DIMENSIONS}") | |
| return _model | |
| def embed_text(text: str) -> np.ndarray: | |
| #input validation | |
| if not text.strip(): | |
| logger.error("Cannot embed empty text") | |
| raise ValueError("Text cannot be empty") | |
| model = load_embedding_model() | |
| logger.info(f"Embedding text: {len(text)} chars") | |
| embedded_text = model.encode(text) | |
| if embedded_text.shape[0] != VECTOR_DIMENSIONS: | |
| logger.error(f"Dimension mismatch: expected {VECTOR_DIMENSIONS}, got : {embedded_text.shape[0]}") | |
| raise ValueError(f"Embedding dimension mismatch") | |
| logger.info(f"Embedded successfully: shape {embedded_text.shape}") | |
| return embedded_text |