"""Abstract base class for embedding providers.""" from abc import ABC, abstractmethod class EmbeddingProvider(ABC): """Base class for embedding providers.""" @abstractmethod async def embed(self, text: str) -> list[float]: """ Generate embedding vector for text. Args: text: Input text to embed Returns: Vector embedding as list of floats """ pass @abstractmethod async def embed_batch(self, texts: list[str]) -> list[list[float]]: """ Generate embeddings for multiple texts (optimized). Args: texts: List of texts to embed Returns: List of vector embeddings """ pass @abstractmethod def get_dimension(self) -> int: """ Get embedding dimension for this provider. Returns: Vector dimension (e.g., 768 for nomic-embed-text) """ pass