Embedders¶
Embedder
¶
Bases: Protocol
Dense embedding interface. Implementations must be deterministic.
embed() is for documents/passages (indexing time).
embed_query() is for query strings (search time) — some models apply
a different instruction prefix for queries vs passages, which improves
retrieval recall on asymmetric tasks.
SentenceTransformerEmbedder¶
SentenceTransformerEmbedder
¶
SentenceTransformerEmbedder(model_name: str = 'BAAI/bge-small-en-v1.5', query_instruction: str | None = None, normalize: bool = True, batch_size: int = 64, device: str | None = None)
Dense embedder backed by sentence-transformers.
Parameters¶
model_name:
HuggingFace model ID. Defaults to BGE-small-en-v1.5 (384-dim, fast).
query_instruction:
Prefix prepended to query strings before encoding. None (default)
uses the built-in table for known BGE models; set to "" to disable
for any other model.
normalize:
L2-normalise output vectors. Keep True for cosine similarity
(which is how LanceDB and most ANN indexes are configured).
batch_size:
Number of texts per encode call. Tune down on low-VRAM GPUs.
device:
"cpu", "cuda", "mps", or None for auto-detect.
Source code in src/verifiable_rag/embedders/sentence_transformer.py
CohereEmbedder¶
CohereEmbedder
¶
Production-grade embedder backed by Cohere's API.
Parameters¶
model:
Cohere embed model ID. Defaults to "embed-english-v3.0".
api_key:
Cohere API key. Falls back to COHERE_API_KEY env var.
batch_size:
Max texts per API call. Capped at 96 (Cohere's limit).
Source code in src/verifiable_rag/embedders/cohere_embedder.py
VoyageEmbedder¶
VoyageEmbedder
¶
Production-grade embedder backed by Voyage AI's API.
Parameters¶
model:
Voyage model ID. Defaults to "voyage-3" (balanced quality/cost).
api_key:
Voyage API key. Falls back to the VOYAGE_API_KEY env var.
batch_size:
Max texts per API call. Capped at 128 (Voyage's limit).