dynavec / Docs / Embeddings

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.