Skip to main content

Embedding Function Base Classes

EmbeddingFunction

Protocol for embedding functions. To implement a new embedding function, you need to implement the following methods:
  • init
  • call
  • name
  • build_from_config
  • get_config
Additionally, you should register the embedding function so it will automatically be used by the Chroma client.
@register_embedding_function
class MyEmbeddingFunction(EmbeddingFunction[Documents]):
    ...
Methods __init__(), build_from_config(), default_space(), embed_query(), embed_with_retries(), get_config(), is_legacy(), name(), supported_spaces(), validate_config(), validate_config_update()

SparseEmbeddingFunction

Protocol for sparse embedding functions. To implement a new sparse embedding function, you need to implement the following methods:
  • call
  • init
  • name
  • build_from_config
  • get_config
Methods __init__(), build_from_config(), embed_query(), embed_with_retries(), get_config(), name(), validate_config(), validate_config_update()

Registration

register_embedding_function

Register a custom embedding function. Can be used as a decorator:
@register_embedding_function
class MyEmbedding(EmbeddingFunction):
    @classmethod
    def name(cls): return "my_embedding"
Or directly:
register_embedding_function(MyEmbedding)
ef_class
Any
The embedding function class to register.

register_sparse_embedding_function

Register a custom sparse embedding function. Can be used as a decorator:
@register_sparse_embedding_function
class MySparseEmbeddingFunction(SparseEmbeddingFunction):
    @classmethod
    def name(cls): return "my_sparse_embedding"
ef_class
Any

Types

Embedding

Embedding[Tuple[Any, Ellipsis], dtype[Union[int32, float32]]]

SparseVector

Sparse vector using parallel indices and values arrays. Properties
indices
List[int]
values
List[float]
labels
Optional[IDs]
Methods __init__(), from_dict(), to_dict()