From d6b8be6c9b38355d085b1118bd491c952b2379fc Mon Sep 17 00:00:00 2001 From: Guangdong Liu Date: Wed, 27 Mar 2024 23:43:38 +0800 Subject: [PATCH] community[patch]: Fix the bug that Chroma does not specify `embedding_function` (#19277) - **Issue:** close #18291 - @baskaryan, @eyurtsev PTAL --- libs/community/langchain_community/vectorstores/chroma.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/community/langchain_community/vectorstores/chroma.py b/libs/community/langchain_community/vectorstores/chroma.py index 7723285fafa..95d3fcc0c5d 100644 --- a/libs/community/langchain_community/vectorstores/chroma.py +++ b/libs/community/langchain_community/vectorstores/chroma.py @@ -28,6 +28,7 @@ if TYPE_CHECKING: import chromadb.config from chromadb.api.types import ID, OneOrMany, Where, WhereDocument + logger = logging.getLogger() DEFAULT_K = 4 # Number of Documents to return. @@ -80,6 +81,7 @@ class Chroma(VectorStore): try: import chromadb import chromadb.config + from chromadb.utils import embedding_functions except ImportError: raise ImportError( "Could not import chromadb python package. " @@ -122,10 +124,12 @@ class Chroma(VectorStore): _client_settings.persist_directory or persist_directory ) - self._embedding_function = embedding_function + self._embedding_function = ( + embedding_function or embedding_functions.DefaultEmbeddingFunction() + ) self._collection = self._client.get_or_create_collection( name=collection_name, - embedding_function=None, + embedding_function=self._embedding_function, metadata=collection_metadata, ) self.override_relevance_score_fn = relevance_score_fn