@ -181,7 +181,7 @@ class Chroma(VectorStore):
) - > List [ Document ] :
""" Return docs most similar to embedding vector.
Args :
embedding ( str ) : Embedding to look up documents similar to .
embedding ( List [ float ] ) : Embedding to look up documents similar to .
k ( int ) : Number of Documents to return . Defaults to 4.
filter ( Optional [ Dict [ str , str ] ] ) : Filter by metadata . Defaults to None .
Returns :
@ -192,6 +192,31 @@ class Chroma(VectorStore):
)
return _results_to_docs ( results )
def similarity_search_by_vector_with_relevance_scores (
self ,
embedding : List [ float ] ,
k : int = DEFAULT_K ,
filter : Optional [ Dict [ str , str ] ] = None ,
* * kwargs : Any ,
) - > List [ Tuple [ Document , float ] ] :
"""
Return docs most similar to embedding vector and similarity score .
Args :
embedding ( List [ float ] ) : Embedding to look up documents similar to .
k ( int ) : Number of Documents to return . Defaults to 4.
filter ( Optional [ Dict [ str , str ] ] ) : Filter by metadata . Defaults to None .
Returns :
List [ Tuple [ Document , float ] ] : List of documents most similar to
the query text and cosine distance in float for each .
Lower score represents more similarity .
"""
results = self . __query_collection (
query_embeddings = embedding , n_results = k , where = filter
)
return _results_to_docs_and_scores ( results )
def similarity_search_with_score (
self ,
query : str ,
@ -309,7 +334,7 @@ class Chroma(VectorStore):
embedding = self . _embedding_function . embed_query ( query )
docs = self . max_marginal_relevance_search_by_vector (
embedding , k , fetch_k , lambda_mul = lambda_mult , filter = filter
embedding , k , fetch_k , lambda_mul t = lambda_mult , filter = filter
)
return docs