Embedders¶
Embedders convert text into dense vectors used by the retrieval pipeline.
They implement the Embedder protocol — duck-typed, no
inheritance required — but production backends typically subclass
SequentialEmbedder (in interfaces.py) and override embed_batch() to
use the backend's native batching.
See Interfaces for the protocol definition and
AsyncEmbedder for the async variant.
SentenceTransformerEmbedder¶
Note
Requires the sentence-transformers extra:
uv pip install "emotional-memory[sentence-transformers]"
Importable from the top-level package once the extra is installed:
from emotional_memory import EmotionalMemory, InMemoryStore
from emotional_memory.embedders import SentenceTransformerEmbedder
em = EmotionalMemory(
store=InMemoryStore(),
embedder=SentenceTransformerEmbedder.make_bge_small(),
)
emotional_memory.embedders.sentence_transformers.SentenceTransformerEmbedder(model_name: str = 'all-MiniLM-L6-v2', *, device: str | None = None)
¶
Bases: SequentialEmbedder
Wraps a sentence-transformers model as an :class:Embedder.
Overrides :meth:embed_batch to use the model's native batching (one
forward pass for all texts) rather than the sequential fallback.
Parameters¶
model_name:
Any model id accepted by :class:sentence_transformers.SentenceTransformer.
Default is "all-MiniLM-L6-v2" — 384 dims, fast, multilingual-friendly
enough for demos. Pick a larger model for production retrieval quality.
Class methods¶
:meth:make_bge_small — BAAI/bge-small-en-v1.5, 384 dims, recommended for
benchmark and paper runs (2026 MTEB Retrieval tier-2 open-weights baseline).
:meth:make_mpnet — all-mpnet-base-v2, 768 dims, legacy strong baseline.
Source code in src/emotional_memory/embedders/sentence_transformers.py
make_bge_small() -> SentenceTransformerEmbedder
classmethod
¶
Return an instance using BAAI/bge-small-en-v1.5 (384 dims).
Recommended default for benchmark and paper runs: strong MTEB Retrieval baseline, fast inference, Apache-2.0 licence.
Source code in src/emotional_memory/embedders/sentence_transformers.py
make_mpnet() -> SentenceTransformerEmbedder
classmethod
¶
Return an instance using all-mpnet-base-v2 (768 dims).
Legacy strong baseline; heavier than bge-small but useful for comparison.