From bb5c3b7e0debd72a454a68ea366db5b2e483281d Mon Sep 17 00:00:00 2001 From: Timothy Carambat <rambat1010@gmail.com> Date: Thu, 2 Jan 2025 12:03:26 -0800 Subject: [PATCH] make `similarityResponse` object arguments and not positional (#2930) * make `similarityResponse` object arguments and not positional * reuse client for qdrant --- server/utils/helpers/chat/index.js | 2 +- server/utils/vectorDbProviders/astra/index.js | 12 ++++----- .../utils/vectorDbProviders/chroma/index.js | 12 ++++----- server/utils/vectorDbProviders/lance/index.js | 25 ++++++++++--------- .../utils/vectorDbProviders/milvus/index.js | 12 ++++----- .../utils/vectorDbProviders/pinecone/index.js | 18 ++++++------- .../utils/vectorDbProviders/qdrant/index.js | 15 ++++++----- .../utils/vectorDbProviders/weaviate/index.js | 12 ++++----- .../utils/vectorDbProviders/zilliz/index.js | 12 ++++----- 9 files changed, 60 insertions(+), 60 deletions(-) diff --git a/server/utils/helpers/chat/index.js b/server/utils/helpers/chat/index.js index 6f565efe1..1ca0c65c2 100644 --- a/server/utils/helpers/chat/index.js +++ b/server/utils/helpers/chat/index.js @@ -371,7 +371,7 @@ function cannonball({ * * @param {Object} config - params to call * @param {object} config.nDocs = fill size of the window - * @param {object} config.searchResults = vector similarityResponse results for .sources + * @param {object} config.searchResults = vector `similarityResponse` results for .sources * @param {object[]} config.history - rawHistory of chat containing sources * @param {string[]} config.filterIdentifiers - Pinned document identifiers to prevent duplicate context * @returns {{ diff --git a/server/utils/vectorDbProviders/astra/index.js b/server/utils/vectorDbProviders/astra/index.js index d292973ef..20a91a3b3 100644 --- a/server/utils/vectorDbProviders/astra/index.js +++ b/server/utils/vectorDbProviders/astra/index.js @@ -269,14 +269,14 @@ const AstraDB = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; @@ -287,14 +287,14 @@ const AstraDB = { message: false, }; }, - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], diff --git a/server/utils/vectorDbProviders/chroma/index.js b/server/utils/vectorDbProviders/chroma/index.js index 262ecd257..f888d99ff 100644 --- a/server/utils/vectorDbProviders/chroma/index.js +++ b/server/utils/vectorDbProviders/chroma/index.js @@ -108,14 +108,14 @@ const Chroma = { const namespace = await this.namespace(client, this.normalize(_namespace)); return namespace?.vectorCount || 0; }, - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const collection = await client.getCollection({ name: this.normalize(namespace), }); @@ -356,14 +356,14 @@ const Chroma = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { metadata: { ...metadata, text: contextTexts[i] } }; diff --git a/server/utils/vectorDbProviders/lance/index.js b/server/utils/vectorDbProviders/lance/index.js index e4eb87e95..78a32b80c 100644 --- a/server/utils/vectorDbProviders/lance/index.js +++ b/server/utils/vectorDbProviders/lance/index.js @@ -59,22 +59,23 @@ const LanceDb = { }, /** * Performs a SimilaritySearch on a give LanceDB namespace. - * @param {LanceClient} client - * @param {string} namespace - * @param {number[]} queryVector - * @param {number} similarityThreshold - * @param {number} topN - * @param {string[]} filterIdentifiers + * @param {Object} params + * @param {LanceClient} params.client + * @param {string} params.namespace + * @param {number[]} params.queryVector + * @param {number} params.similarityThreshold + * @param {number} params.topN + * @param {string[]} params.filterIdentifiers * @returns */ - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const collection = await client.openTable(namespace); const result = { contextTexts: [], @@ -313,14 +314,14 @@ const LanceDb = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { metadata: { ...metadata, text: contextTexts[i] } }; diff --git a/server/utils/vectorDbProviders/milvus/index.js b/server/utils/vectorDbProviders/milvus/index.js index 5a303942f..f644f094e 100644 --- a/server/utils/vectorDbProviders/milvus/index.js +++ b/server/utils/vectorDbProviders/milvus/index.js @@ -312,14 +312,14 @@ const Milvus = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; @@ -330,14 +330,14 @@ const Milvus = { message: false, }; }, - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], diff --git a/server/utils/vectorDbProviders/pinecone/index.js b/server/utils/vectorDbProviders/pinecone/index.js index a86c37f67..ad1a53ab7 100644 --- a/server/utils/vectorDbProviders/pinecone/index.js +++ b/server/utils/vectorDbProviders/pinecone/index.js @@ -36,21 +36,21 @@ const PineconeDB = { const namespace = await this.namespace(pineconeIndex, _namespace); return namespace?.recordCount || 0; }, - similarityResponse: async function ( - index, + similarityResponse: async function ({ + client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], scores: [], }; - const pineconeNamespace = index.namespace(namespace); + const pineconeNamespace = client.namespace(namespace); const response = await pineconeNamespace.query({ vector: queryVector, topK: topN, @@ -254,14 +254,14 @@ const PineconeDB = { ); const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( - pineconeIndex, + const { contextTexts, sourceDocuments } = await this.similarityResponse({ + client: pineconeIndex, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; diff --git a/server/utils/vectorDbProviders/qdrant/index.js b/server/utils/vectorDbProviders/qdrant/index.js index 077356367..f8fc154aa 100644 --- a/server/utils/vectorDbProviders/qdrant/index.js +++ b/server/utils/vectorDbProviders/qdrant/index.js @@ -47,15 +47,14 @@ const QDrant = { const namespace = await this.namespace(client, _namespace); return namespace?.vectorCount || 0; }, - similarityResponse: async function ( - _client, + similarityResponse: async function ({ + client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { - const { client } = await this.connect(); + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], @@ -338,14 +337,14 @@ const QDrant = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; diff --git a/server/utils/vectorDbProviders/weaviate/index.js b/server/utils/vectorDbProviders/weaviate/index.js index e98296a8f..977dbd529 100644 --- a/server/utils/vectorDbProviders/weaviate/index.js +++ b/server/utils/vectorDbProviders/weaviate/index.js @@ -74,14 +74,14 @@ const Weaviate = { return 0; } }, - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], @@ -381,14 +381,14 @@ const Weaviate = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; diff --git a/server/utils/vectorDbProviders/zilliz/index.js b/server/utils/vectorDbProviders/zilliz/index.js index be138318c..0bb3a6c81 100644 --- a/server/utils/vectorDbProviders/zilliz/index.js +++ b/server/utils/vectorDbProviders/zilliz/index.js @@ -305,14 +305,14 @@ const Zilliz = { } const queryVector = await LLMConnector.embedTextInput(input); - const { contextTexts, sourceDocuments } = await this.similarityResponse( + const { contextTexts, sourceDocuments } = await this.similarityResponse({ client, namespace, queryVector, similarityThreshold, topN, - filterIdentifiers - ); + filterIdentifiers, + }); const sources = sourceDocuments.map((metadata, i) => { return { ...metadata, text: contextTexts[i] }; @@ -323,14 +323,14 @@ const Zilliz = { message: false, }; }, - similarityResponse: async function ( + similarityResponse: async function ({ client, namespace, queryVector, similarityThreshold = 0.25, topN = 4, - filterIdentifiers = [] - ) { + filterIdentifiers = [], + }) { const result = { contextTexts: [], sourceDocuments: [], -- GitLab