From f8c72786dfa84e60150e99750306c038cf542b59 Mon Sep 17 00:00:00 2001
From: Sean Hatfield <seanhatfield5@gmail.com>
Date: Sat, 18 Jan 2025 10:27:54 +0800
Subject: [PATCH] Fix similarity score bug in lance/chroma dbs (#2986)

* fix similarity score bug in lance/chroma dbs

* batch lower bound case

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
---
 server/utils/vectorDbProviders/chroma/index.js | 2 +-
 server/utils/vectorDbProviders/lance/index.js  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/utils/vectorDbProviders/chroma/index.js b/server/utils/vectorDbProviders/chroma/index.js
index f888d99ff..a47146ed8 100644
--- a/server/utils/vectorDbProviders/chroma/index.js
+++ b/server/utils/vectorDbProviders/chroma/index.js
@@ -100,7 +100,7 @@ const Chroma = {
   distanceToSimilarity: function (distance = null) {
     if (distance === null || typeof distance !== "number") return 0.0;
     if (distance >= 1.0) return 1;
-    if (distance <= 0) return 0;
+    if (distance < 0) return 1 - Math.abs(distance);
     return 1 - distance;
   },
   namespaceCount: async function (_namespace = null) {
diff --git a/server/utils/vectorDbProviders/lance/index.js b/server/utils/vectorDbProviders/lance/index.js
index e3f285478..c0e387f37 100644
--- a/server/utils/vectorDbProviders/lance/index.js
+++ b/server/utils/vectorDbProviders/lance/index.js
@@ -29,7 +29,7 @@ const LanceDb = {
   distanceToSimilarity: function (distance = null) {
     if (distance === null || typeof distance !== "number") return 0.0;
     if (distance >= 1.0) return 1;
-    if (distance <= 0) return 0;
+    if (distance < 0) return 1 - Math.abs(distance);
     return 1 - distance;
   },
   heartbeat: async function () {