| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | from __future__ import annotations |
| |
|
| | from abc import ABC, abstractmethod |
| | from typing import Any, Generic, TypeVar |
| |
|
| | T = TypeVar('T') |
| |
|
| |
|
| | class BaseEmbedding(ABC, Generic[T]): |
| | r"""Abstract base class for text embedding functionalities.""" |
| |
|
| | @abstractmethod |
| | def embed_list( |
| | self, |
| | objs: list[T], |
| | **kwargs: Any, |
| | ) -> list[list[float]]: |
| | r"""Generates embeddings for the given texts. |
| | |
| | Args: |
| | objs (list[T]): The objects for which to generate the embeddings. |
| | **kwargs (Any): Extra kwargs passed to the embedding API. |
| | |
| | Returns: |
| | list[list[float]]: A list that represents the |
| | generated embedding as a list of floating-point numbers. |
| | """ |
| | pass |
| |
|
| | def embed( |
| | self, |
| | obj: T, |
| | **kwargs: Any, |
| | ) -> list[float]: |
| | r"""Generates an embedding for the given text. |
| | |
| | Args: |
| | obj (T): The object for which to generate the embedding. |
| | **kwargs (Any): Extra kwargs passed to the embedding API. |
| | |
| | Returns: |
| | list[float]: A list of floating-point numbers representing the |
| | generated embedding. |
| | """ |
| | return self.embed_list([obj], **kwargs)[0] |
| |
|
| | @abstractmethod |
| | def get_output_dim(self) -> int: |
| | r"""Returns the output dimension of the embeddings. |
| | |
| | Returns: |
| | int: The dimensionality of the embedding for the current model. |
| | """ |
| | pass |
| |
|