From 274125a28978118f2848e202b03d9ebd9455e00d Mon Sep 17 00:00:00 2001 From: Rafael Reis Date: Thu, 25 Jan 2024 16:38:15 -0300 Subject: [PATCH 1/3] Update ChatOpenAI.ts --- .../components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts index 49326163..5f321900 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts @@ -47,6 +47,14 @@ class ChatOpenAI_ChatModels implements INode { label: 'gpt-4', name: 'gpt-4' }, + { + label: 'gpt-4-turbo-preview', + name: 'gpt-4-turbo-preview' + }, + { + label: 'gpt-4-0125-preview', + name: 'gpt-4-0125-preview' + }, { label: 'gpt-4-1106-preview', name: 'gpt-4-1106-preview' From d6030f8e9c5abc1b41ce1ab8591b84487d912961 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 26 Jan 2024 19:24:48 +0000 Subject: [PATCH 2/3] fix custom function ending node --- packages/server/src/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 76e48e58..b8ebd5f7 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -473,7 +473,7 @@ export class App { } } - isStreaming = isFlowValidForStream(nodes, endingNodeData) + isStreaming = isEndingNode ? false : isFlowValidForStream(nodes, endingNodeData) } const obj = { isStreaming } @@ -1676,7 +1676,11 @@ export class App { return res.status(500).send(`Ending node must be either a Chain or Agent`) } - if (!Object.values(endingNodeData.outputs ?? {}).includes(endingNodeData.name)) { + if ( + endingNodeData.outputs && + Object.keys(endingNodeData.outputs).length && + !Object.values(endingNodeData.outputs ?? {}).includes(endingNodeData.name) + ) { return res .status(500) .send( From b050920a77f2f98c671201ad7deb6c41bd699f06 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 26 Jan 2024 20:10:43 +0000 Subject: [PATCH 3/3] filter fix --- packages/components/nodes/vectorstores/Qdrant/Qdrant.ts | 9 ++++++++- .../nodes/vectorstores/Qdrant/Qdrant_Existing.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts index e07b728a..1d5f7788 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts @@ -1,5 +1,6 @@ import { flatten } from 'lodash' import { QdrantClient } from '@qdrant/js-client-rest' +import type { Schemas as QdrantSchemas } from '@qdrant/js-client-rest' import { VectorStoreRetrieverInput } from 'langchain/vectorstores/base' import { Document } from 'langchain/document' import { QdrantVectorStore, QdrantLibArgs } from 'langchain/vectorstores/qdrant' @@ -8,6 +9,12 @@ import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' type RetrieverConfig = Partial> +type QdrantSearchResponse = QdrantSchemas['ScoredPoint'] & { + payload: { + metadata: object + content: string + } +} class Qdrant_VectorStores implements INode { label: string @@ -194,7 +201,7 @@ class Qdrant_VectorStores implements INode { const qdrantVectorDimension = nodeData.inputs?.qdrantVectorDimension const output = nodeData.outputs?.output as string const topK = nodeData.inputs?.topK as string - let queryFilter = nodeData.inputs?.queryFilter + let queryFilter = nodeData.inputs?.qdrantFilter const k = topK ? parseFloat(topK) : 4 diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts index fb114402..5009b0cf 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts @@ -135,7 +135,7 @@ class Qdrant_Existing_VectorStores implements INode { const qdrantVectorDimension = nodeData.inputs?.qdrantVectorDimension const output = nodeData.outputs?.output as string const topK = nodeData.inputs?.topK as string - let queryFilter = nodeData.inputs?.queryFilter + let queryFilter = nodeData.inputs?.qdrantFilter const k = topK ? parseFloat(topK) : 4