Embedding Functions ↗
noOriginal Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.trychroma.com/llms.txt Use this file to discover all available pages before exploring further.
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)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"Types#
Embedding#
Embedding[Tuple[Any, Ellipsis], dtype[Union[int32, float32]]]
SparseVector#
Sparse vector using parallel indices and values arrays.
Properties
Methods
__init__(), from_dict(), to_dict()