Spaces:
Sleeping
Sleeping
Download src/rag/embedder.py from AishaSurve/codebase-agent: direct link, hf CLI and curl.
- Browser
- Download file 895 Bytes
-
https://huggingface.co/spaces/AishaSurve/codebase-agent/resolve/main/src/rag/embedder.py
- Command line
-
hf download hf://spaces/AishaSurve/codebase-agent/src/rag/embedder.py
-
curl -L -o embedder.py https://huggingface.co/spaces/AishaSurve/codebase-agent/resolve/main/src/rag/embedder.py
895 Bytes
| """ | |
| Embedder. | |
| Same role as the StudyMate version. Returns a NumPy array (not a list) so the | |
| FAISS VectorStore can read `embeddings.shape[1]`. Embeddings are L2-normalized | |
| so inner-product search (IndexFlatIP) == cosine similarity. | |
| Default model is the small general-purpose MiniLM (fast, already cached from | |
| StudyMate). For a code project, a code-aware model retrieves better -- swap in | |
| "jinaai/jina-embeddings-v2-base-code" (pass trust_remote_code=True) once the | |
| pipeline works end-to-end. | |
| """ | |
| import numpy as np | |
| from sentence_transformers import SentenceTransformer | |
| class Embedder: | |
| def __init__(self, model_name="sentence-transformers/all-MiniLM-L6-v2", **kwargs): | |
| self.model = SentenceTransformer(model_name, **kwargs) | |
| def create_embeddings(self, texts): | |
| embeddings = self.model.encode(list(texts), normalize_embeddings=True) | |
| return np.array(embeddings) | |