Embeddings
Pluggable, bring-your-own-key — or bring your own vectors.
Choose an embedder and supply your own API key, or skip the embedder entirely and pass pre-computed vectors. Embedder backends are imported lazily, so the base install stays light.
from dynavec.embeddings import (
OpenAIEmbedder, GeminiEmbedder, MistralEmbedder, BedrockEmbedder,
SentenceTransformerEmbedder,
)
# hosted (BYO key via env var or argument)
emb = OpenAIEmbedder(model="text-embedding-3-small") # 1536-d
emb = GeminiEmbedder(model="text-embedding-004") # 768-d
emb = MistralEmbedder(model="mistral-embed") # 1024-d
# in-account (no third party) or fully local / offline
emb = BedrockEmbedder(model_id="amazon.titan-embed-text-v2:0", region="us-east-1")
emb = SentenceTransformerEmbedder(model="all-MiniLM-L6-v2") # 384-d, free
Bring your own vectors
No embedder needed — pass vectors directly and query with a vector.
from dynavec import Dynavec, DynavecConfig, Document
db = Dynavec(cfg) # no embedder
db.upsert([Document(id="x", vector=my_1536d_vector, metadata={"lang": "en"})])
db.search(vector=my_query_vector, top_k=5)
Compliance tip: use
BedrockEmbedder or
SentenceTransformerEmbedder to keep embedding in-account or offline — no data leaves your
environment.