"""Base embeddings provider module."""

from abc import ABC, abstractmethod

from ...providers.base import BaseProvider


class BaseEmbeddingsProvider(BaseProvider, ABC):
    """Base class for embeddings providers."""

    @abstractmethod
    async def embed(self, text: str) -> list[float]:
        """Generate embeddings for text.

        Args:
            text: Text to generate embeddings for.

        Returns:
            list[float]: Generated embeddings.
        """

    @abstractmethod
    async def embed_batch(self, texts: list[str]) -> list[list[float]]:
        """Generate embeddings for multiple texts.

        Args:
            texts: List of texts to generate embeddings for.

        Returns:
            list[list[float]]: Generated embeddings for each text.
        """
