Browse Source

Add documentation on chroma special case

Marko Henning 3 months ago
parent
commit
5ab789e83e
1 changed files with 2 additions and 0 deletions
  1. 2 0
      backend/open_webui/retrieval/utils.py

+ 2 - 0
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
         # retrieve only min(k, k_reranker) items, sort and cut by distance if k < k_reranker
         if k < k_reranker:
         if k < k_reranker:
             if VECTOR_DB == "chroma":
             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)
                 sorted_items = sorted(zip(distances, metadatas, documents), key=lambda x: x[0], reverse=False)
             else:
             else:
                 sorted_items = sorted(zip(distances, metadatas, documents), key=lambda x: x[0], reverse=True)
                 sorted_items = sorted(zip(distances, metadatas, documents), key=lambda x: x[0], reverse=True)