from ai_infra.embeddings import EmbeddingsSimple, provider-agnostic text embeddings. Generate embeddings from text using any supported provider (OpenAI, Google, Voyage, Cohere, Anthropic) or use free local embeddings with HuggingFace. Features: - Zero-config: Auto-detects provider, falls back to free local embeddings - Free option: Use HuggingFace/sentence-transformers (no API key needed) - Simple API: `embed()` for one, `embed_batch()` for many - Async support: `aembed()` and `aembed_batch()` - Similarity helper: `similarity()` for cosine similarity - Flexible: Override provider, model, dimensions
from ai_infra import Embeddings
# Auto-detect provider (falls back to free local if no API keys)
embeddings = Embeddings()
vector = embeddings.embed("Hello, world!")
# Free local embeddings (no API key needed)
embeddings = Embeddings(provider="huggingface")
embeddings = Embeddings(provider="local") # alias
# Specific provider and model
embeddings = Embeddings(provider="openai", model="text-embedding-3-large")
# Batch embedding
vectors = embeddings.embed_batch(["Hello", "World"])
# Similarity
score = embeddings.similarity("Hello", "Hi")Providers: - openai: OpenAI embeddings (requires OPENAI_API_KEY) - google/google_genai: Google embeddings (requires GOOGLE_API_KEY) - voyage: Voyage AI embeddings (requires VOYAGE_API_KEY) - cohere: Cohere embeddings (requires COHERE_API_KEY) - huggingface/local: Free local embeddings (no API key, runs on CPU)