diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index 9b8d58352..1afb333b1 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -147,6 +147,8 @@ def query_doc_with_hybrid_search( # retrieve only min(k, k_reranker) items, sort and cut by distance if k < k_reranker if k < k_reranker: if VECTOR_DB == "chroma": + # Chroma uses unconventional cosine similarity, so we don't need to reverse the results + # https://docs.trychroma.com/docs/collections/configure#configuring-chroma-collections sorted_items = sorted(zip(distances, metadatas, documents), key=lambda x: x[0], reverse=False) else: sorted_items = sorted(zip(distances, metadatas, documents), key=lambda x: x[0], reverse=True)