From 0606d2c6ddc6da911ee0e20b6fd9b87a3d4ab15f Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 26 Jan 2024 23:41:55 +0000 Subject: [PATCH 01/19] upgrade langchain version 0.1.0 --- ....credential.ts => LunaryApi.credential.ts} | 18 +-- .../agents/AirtableAgent/AirtableAgent.ts | 14 +- .../nodes/agents/AutoGPT/AutoGPT.ts | 15 +- .../nodes/agents/BabyAGI/BabyAGI.ts | 4 +- .../components/nodes/agents/BabyAGI/core.ts | 8 +- .../nodes/agents/CSVAgent/CSVAgent.ts | 8 +- .../ConversationalAgent.ts | 14 +- .../ConversationalRetrievalAgent.ts | 13 +- .../agents/MRKLAgentChat/MRKLAgentChat.ts | 52 ++++--- .../nodes/agents/MRKLAgentLLM/MRKLAgentLLM.ts | 41 +++-- .../OpenAIFunctionAgent.ts | 15 +- .../analytic/{LLMonitor => Lunary}/Lunary.svg | 0 .../LLMonitor.ts => Lunary/Lunary.ts} | 12 +- .../cache/InMemoryCache/InMemoryCache.ts | 4 +- .../InMemoryCache/InMemoryEmbeddingCache.ts | 6 +- .../nodes/cache/MomentoCache/MomentoCache.ts | 4 +- .../nodes/cache/RedisCache/RedisCache.ts | 7 +- .../cache/RedisCache/RedisEmbeddingsCache.ts | 6 +- .../UpstashRedisCache/UpstashRedisCache.ts | 2 +- .../nodes/chains/ApiChain/GETApiChain.ts | 6 +- .../nodes/chains/ApiChain/OpenAPIChain.ts | 4 +- .../nodes/chains/ApiChain/POSTApiChain.ts | 8 +- .../nodes/chains/ApiChain/postCore.ts | 8 +- .../ConversationChain/ConversationChain.ts | 16 +- .../ConversationalRetrievalQAChain.ts | 23 ++- .../nodes/chains/LLMChain/LLMChain.ts | 15 +- .../MultiPromptChain/MultiPromptChain.ts | 4 +- .../MultiRetrievalQAChain.ts | 4 +- .../RetrievalQAChain/RetrievalQAChain.ts | 8 +- .../SqlDatabaseChain/SqlDatabaseChain.ts | 16 +- .../nodes/chains/VectaraChain/VectaraChain.ts | 8 +- .../chains/VectorDBQAChain/VectorDBQAChain.ts | 8 +- .../chatmodels/AWSBedrock/AWSChatBedrock.ts | 8 +- .../AzureChatOpenAI/AzureChatOpenAI.ts | 6 +- .../nodes/chatmodels/Bittensor/Bittensor.ts | 4 +- .../chatmodels/ChatAnthropic/ChatAnthropic.ts | 6 +- .../ChatGoogleGenerativeAI.ts | 8 +- .../ChatGooglePaLM/ChatGooglePaLM.ts | 4 +- .../ChatGoogleVertexAI/ChatGoogleVertexAI.ts | 6 +- .../ChatHuggingFace/ChatHuggingFace.ts | 4 +- .../nodes/chatmodels/ChatHuggingFace/core.ts | 2 +- .../chatmodels/ChatLocalAI/ChatLocalAI.ts | 11 +- .../chatmodels/ChatMistral/ChatMistral.ts | 4 +- .../nodes/chatmodels/ChatOllama/ChatOllama.ts | 6 +- .../nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts | 6 +- .../ChatOpenAICustom/ChatOpenAICustom.ts | 6 +- .../nodes/documentloaders/API/APILoader.ts | 6 +- .../documentloaders/Airtable/Airtable.ts | 6 +- .../ApifyWebsiteContentCrawler.ts | 2 +- .../documentloaders/PlainText/PlainText.ts | 2 +- .../documentloaders/Subtitles/Subtitles.ts | 97 ------------ .../Subtitles/subtitlesFile.svg | 6 - .../nodes/documentloaders/Text/Text.ts | 2 +- .../VectorStoreToDocument.ts | 2 +- .../AWSBedrockEmbedding.ts | 4 +- .../AzureOpenAIEmbedding.ts | 3 +- .../CohereEmbedding/CohereEmbedding.ts | 4 +- .../GooglePaLMEmbedding.ts | 2 +- .../GoogleVertexAIEmbedding.ts | 4 +- .../HuggingFaceInferenceEmbedding/core.ts | 2 +- .../LocalAIEmbedding/LocalAIEmbedding.ts | 2 +- .../MistralEmbedding/MistralEmbedding.ts | 2 +- .../OllamaEmbedding/OllamaEmbedding.ts | 4 +- .../OpenAIEmbedding/OpenAIEmbedding.ts | 2 +- .../OpenAIEmbeddingCustom.ts | 2 +- .../nodes/llms/AWSBedrock/AWSBedrock.ts | 8 +- .../nodes/llms/Azure OpenAI/AzureOpenAI.ts | 7 +- .../nodes/llms/Bittensor/Bittensor.ts | 6 +- .../components/nodes/llms/Cohere/Cohere.ts | 2 +- packages/components/nodes/llms/Cohere/core.ts | 2 +- .../nodes/llms/GooglePaLM/GooglePaLM.ts | 5 +- .../llms/GoogleVertexAI/GoogleVertexAI.ts | 6 +- .../HuggingFaceInference.ts | 2 +- .../nodes/llms/HuggingFaceInference/core.ts | 2 +- .../components/nodes/llms/Ollama/Ollama.ts | 6 +- .../components/nodes/llms/OpenAI/OpenAI.ts | 6 +- .../nodes/llms/Replicate/Replicate.ts | 6 +- .../nodes/memory/BufferMemory/BufferMemory.ts | 2 +- .../BufferWindowMemory/BufferWindowMemory.ts | 2 +- .../ConversationSummaryMemory.ts | 2 +- .../nodes/memory/DynamoDb/DynamoDb.ts | 4 +- .../memory/MongoDBMemory/MongoDBMemory.ts | 4 +- .../memory/MotorheadMemory/MotorheadMemory.ts | 2 +- .../RedisBackedChatMemory.ts | 4 +- .../UpstashRedisBackedChatMemory.ts | 4 +- .../nodes/memory/ZepMemory/ZepMemory.ts | 9 +- .../OpenAIModeration/OpenAIModeration.ts | 4 +- .../SimplePromptModeration.ts | 2 +- .../SimplePromptModerationRunner.ts | 2 +- .../CSVListOutputParser.ts | 3 +- .../CustomListOutputParser.ts | 5 +- .../outputparsers/OutputParserHelpers.ts | 6 +- .../StructuredOutputParser.ts | 6 +- .../ChatPromptTemplate/ChatPromptTemplate.ts | 2 +- .../FewShotPromptTemplate.ts | 5 +- .../prompts/PromptTemplate/PromptTemplate.ts | 2 +- .../CohereRerankRetriever/CohereRerank.ts | 7 +- .../CohereRerankRetriever.ts | 8 +- .../EmbeddingsFilterRetriever.ts | 6 +- .../retrievers/HydeRetriever/HydeRetriever.ts | 8 +- .../LLMFilterCompressionRetriever.ts | 6 +- .../retrievers/RRFRetriever/RRFRetriever.ts | 8 +- .../RRFRetriever/ReciprocalRankFusion.ts | 12 +- .../SimilarityThresholdRetriever.ts | 4 +- .../VectorStoreRetriever.ts | 2 +- .../nodes/tools/AIPlugin/AIPlugin.ts | 2 +- .../tools/BraveSearchAPI/BraveSearchAPI.ts | 2 +- .../nodes/tools/ChainTool/ChainTool.ts | 2 +- .../components/nodes/tools/ChainTool/core.ts | 2 +- .../components/nodes/tools/CustomTool/core.ts | 2 +- .../tools/GoogleSearchAPI/GoogleSearchAPI.ts | 2 +- .../tools/OpenAPIToolkit/OpenAPIToolkit.ts | 8 +- .../nodes/tools/OpenAPIToolkit/core.ts | 140 ++++++++++++++++++ .../nodes/tools/ReadFile/ReadFile.ts | 45 +++++- .../nodes/tools/RequestsGet/core.ts | 2 +- .../nodes/tools/RequestsPost/core.ts | 2 +- .../tools/RetrieverTool/RetrieverTool.ts | 6 +- .../nodes/tools/SearchApi/SearchAPI.ts | 2 +- .../components/nodes/tools/SerpAPI/SerpAPI.ts | 2 +- .../components/nodes/tools/Serper/Serper.ts | 2 +- .../nodes/tools/WebBrowser/WebBrowser.ts | 6 +- .../nodes/tools/WriteFile/WriteFile.ts | 47 +++++- .../nodes/vectorstores/Astra/Astra.ts | 6 +- .../nodes/vectorstores/Chroma/Chroma.ts | 6 +- .../vectorstores/Chroma/Chroma_Existing.ts | 6 +- .../vectorstores/Chroma/Chroma_Upsert.ts | 10 +- .../nodes/vectorstores/Chroma/core.ts | 4 +- .../Elasticsearch/ElasticSearchBase.ts | 8 +- .../Elasticsearch/Elasticsearch.ts | 6 +- .../Elasticsearch/Elasticsearch_Existing.ts | 11 +- .../Elasticsearch/Elasticsearch_Upsert.ts | 11 +- .../nodes/vectorstores/Faiss/Faiss.ts | 6 +- .../vectorstores/Faiss/Faiss_Existing.ts | 6 +- .../nodes/vectorstores/Faiss/Faiss_Upsert.ts | 10 +- .../InMemory/InMemoryVectorStore.ts | 4 +- .../nodes/vectorstores/Milvus/Milvus.ts | 6 +- .../vectorstores/Milvus/Milvus_Existing.ts | 8 +- .../vectorstores/Milvus/Milvus_Upsert.ts | 12 +- .../vectorstores/MongoDBAtlas/MongoDBAtlas.ts | 6 +- .../MongoDBAtlas/MongoDBSearchBase.ts | 9 +- .../MongoDBAtlas/MongoDB_Existing.ts | 8 +- .../MongoDBAtlas/MongoDB_Upsert.ts | 8 +- .../vectorstores/OpenSearch/OpenSearch.ts | 6 +- .../OpenSearch/OpenSearch_Upsert.ts | 8 +- .../OpenSearch/OpenSearch_existing.ts | 6 +- .../nodes/vectorstores/Pinecone/Pinecone.ts | 10 +- .../Pinecone/Pinecone_Existing.ts | 8 +- .../vectorstores/Pinecone/Pinecone_Upsert.ts | 8 +- .../nodes/vectorstores/Postgres/Postgres.ts | 6 +- .../Postgres/Postgres_Exisiting.ts | 10 +- .../vectorstores/Postgres/Postgres_Upsert.ts | 10 +- .../nodes/vectorstores/Qdrant/Qdrant.ts | 8 +- .../vectorstores/Qdrant/Qdrant_Existing.ts | 8 +- .../vectorstores/Qdrant/Qdrant_Upsert.ts | 10 +- .../nodes/vectorstores/Redis/Redis.ts | 6 +- .../vectorstores/Redis/RedisSearchBase.ts | 9 +- .../vectorstores/Redis/Redis_Existing.ts | 9 +- .../nodes/vectorstores/Redis/Redis_Upsert.ts | 11 +- .../vectorstores/Singlestore/Singlestore.ts | 6 +- .../Singlestore/Singlestore_Existing.ts | 6 +- .../Singlestore/Singlestore_Upsert.ts | 10 +- .../nodes/vectorstores/Supabase/Supabase.ts | 6 +- .../Supabase/Supabase_Exisiting.ts | 8 +- .../vectorstores/Supabase/Supabase_Upsert.ts | 10 +- .../nodes/vectorstores/Vectara/Vectara.ts | 13 +- .../vectorstores/Vectara/Vectara_Existing.ts | 2 +- .../vectorstores/Vectara/Vectara_Upload.ts | 2 +- .../vectorstores/Vectara/Vectara_Upsert.ts | 10 +- .../nodes/vectorstores/Weaviate/Weaviate.ts | 6 +- .../Weaviate/Weaviate_Existing.ts | 8 +- .../vectorstores/Weaviate/Weaviate_Upsert.ts | 10 +- .../components/nodes/vectorstores/Zep/Zep.ts | 6 +- .../nodes/vectorstores/Zep/Zep_Existing.ts | 10 +- .../nodes/vectorstores/Zep/Zep_Upsert.ts | 10 +- packages/components/package.json | 15 +- packages/components/src/Interface.ts | 6 +- packages/components/src/agents.ts | 14 +- packages/components/src/handler.ts | 124 ++++++++-------- packages/components/src/utils.ts | 4 +- .../ui-component/dialog/AnalyseFlowDialog.js | 12 +- 180 files changed, 905 insertions(+), 746 deletions(-) rename packages/components/credentials/{LLMonitorApi.credential.ts => LunaryApi.credential.ts} (55%) rename packages/components/nodes/analytic/{LLMonitor => Lunary}/Lunary.svg (100%) rename packages/components/nodes/analytic/{LLMonitor/LLMonitor.ts => Lunary/Lunary.ts} (71%) delete mode 100644 packages/components/nodes/documentloaders/Subtitles/Subtitles.ts delete mode 100644 packages/components/nodes/documentloaders/Subtitles/subtitlesFile.svg create mode 100644 packages/components/nodes/tools/OpenAPIToolkit/core.ts diff --git a/packages/components/credentials/LLMonitorApi.credential.ts b/packages/components/credentials/LunaryApi.credential.ts similarity index 55% rename from packages/components/credentials/LLMonitorApi.credential.ts rename to packages/components/credentials/LunaryApi.credential.ts index e5ecc8ab..b68b6750 100644 --- a/packages/components/credentials/LLMonitorApi.credential.ts +++ b/packages/components/credentials/LunaryApi.credential.ts @@ -1,6 +1,6 @@ import { INodeParams, INodeCredential } from '../src/Interface' -class LLMonitorApi implements INodeCredential { +class LunaryApi implements INodeCredential { label: string name: string version: number @@ -8,25 +8,25 @@ class LLMonitorApi implements INodeCredential { inputs: INodeParams[] constructor() { - this.label = 'LLMonitor API' - this.name = 'llmonitorApi' + this.label = 'Lunary API' + this.name = 'lunaryApi' this.version = 1.0 - this.description = 'Refer to official guide to get APP ID' + this.description = 'Refer to official guide to get APP ID' this.inputs = [ { label: 'APP ID', - name: 'llmonitorAppId', + name: 'lunaryAppId', type: 'password', - placeholder: '' + placeholder: '' }, { label: 'Endpoint', - name: 'llmonitorEndpoint', + name: 'lunaryEndpoint', type: 'string', - default: 'https://app.llmonitor.com' + default: 'https://app.lunary.ai' } ] } } -module.exports = { credClass: LLMonitorApi } +module.exports = { credClass: LunaryApi } diff --git a/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts b/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts index 7bdbb65a..3113cdfe 100644 --- a/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts +++ b/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts @@ -1,11 +1,11 @@ -import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface' -import { AgentExecutor } from 'langchain/agents' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { LoadPyodide, finalSystemPrompt, systemPrompt } from './core' -import { LLMChain } from 'langchain/chains' -import { BaseLanguageModel } from 'langchain/base_language' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import axios from 'axios' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { AgentExecutor } from 'langchain/agents' +import { LLMChain } from 'langchain/chains' +import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { LoadPyodide, finalSystemPrompt, systemPrompt } from './core' class Airtable_Agents implements INode { label: string diff --git a/packages/components/nodes/agents/AutoGPT/AutoGPT.ts b/packages/components/nodes/agents/AutoGPT/AutoGPT.ts index 43b490f4..3689a7ea 100644 --- a/packages/components/nodes/agents/AutoGPT/AutoGPT.ts +++ b/packages/components/nodes/agents/AutoGPT/AutoGPT.ts @@ -1,13 +1,12 @@ -import { INode, INodeData, INodeParams } from '../../../src/Interface' -import { BaseChatModel } from 'langchain/chat_models/base' -import { AutoGPT } from 'langchain/experimental/autogpt' -import { Tool } from 'langchain/tools' -import { AIMessage, HumanMessage, SystemMessage } from 'langchain/schema' -import { VectorStoreRetriever } from 'langchain/vectorstores/base' import { flatten } from 'lodash' -import { StructuredTool } from 'langchain/tools' +import { Tool, StructuredTool } from '@langchain/core/tools' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' +import { AIMessage, HumanMessage, SystemMessage } from '@langchain/core/messages' +import { VectorStoreRetriever } from '@langchain/core/vectorstores' +import { PromptTemplate } from '@langchain/core/prompts' +import { AutoGPT } from 'langchain/experimental/autogpt' import { LLMChain } from 'langchain/chains' -import { PromptTemplate } from 'langchain/prompts' +import { INode, INodeData, INodeParams } from '../../../src/Interface' type ObjectTool = StructuredTool const FINISH_NAME = 'finish' diff --git a/packages/components/nodes/agents/BabyAGI/BabyAGI.ts b/packages/components/nodes/agents/BabyAGI/BabyAGI.ts index f82f134b..c70cd800 100644 --- a/packages/components/nodes/agents/BabyAGI/BabyAGI.ts +++ b/packages/components/nodes/agents/BabyAGI/BabyAGI.ts @@ -1,7 +1,7 @@ +import { BaseChatModel } from '@langchain/core/language_models/chat_models' +import { VectorStore } from '@langchain/core/vectorstores' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { BabyAGI } from './core' -import { BaseChatModel } from 'langchain/chat_models/base' -import { VectorStore } from 'langchain/vectorstores/base' class BabyAGI_Agents implements INode { label: string diff --git a/packages/components/nodes/agents/BabyAGI/core.ts b/packages/components/nodes/agents/BabyAGI/core.ts index 444aa3eb..5f7af2ca 100644 --- a/packages/components/nodes/agents/BabyAGI/core.ts +++ b/packages/components/nodes/agents/BabyAGI/core.ts @@ -1,8 +1,8 @@ +import { BaseChatModel } from '@langchain/core/language_models/chat_models' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' +import { PromptTemplate } from '@langchain/core/prompts' import { LLMChain } from 'langchain/chains' -import { BaseChatModel } from 'langchain/chat_models/base' -import { VectorStore } from 'langchain/dist/vectorstores/base' -import { Document } from 'langchain/document' -import { PromptTemplate } from 'langchain/prompts' class TaskCreationChain extends LLMChain { constructor(prompt: PromptTemplate, llm: BaseChatModel) { diff --git a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts index 70996c4d..f55981ab 100644 --- a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts +++ b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts @@ -1,10 +1,10 @@ -import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface' +import { BaseLanguageModel } from '@langchain/core/language_models/base' import { AgentExecutor } from 'langchain/agents' +import { LLMChain } from 'langchain/chains' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' import { LoadPyodide, finalSystemPrompt, systemPrompt } from './core' -import { LLMChain } from 'langchain/chains' -import { BaseLanguageModel } from 'langchain/base_language' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' class CSV_Agents implements INode { label: string diff --git a/packages/components/nodes/agents/ConversationalAgent/ConversationalAgent.ts b/packages/components/nodes/agents/ConversationalAgent/ConversationalAgent.ts index 7f857b1c..e28a4a3f 100644 --- a/packages/components/nodes/agents/ConversationalAgent/ConversationalAgent.ts +++ b/packages/components/nodes/agents/ConversationalAgent/ConversationalAgent.ts @@ -1,14 +1,16 @@ -import { Tool } from 'langchain/tools' -import { BaseChatModel } from 'langchain/chat_models/base' import { flatten } from 'lodash' -import { AgentStep, BaseMessage, ChainValues, AIMessage, HumanMessage } from 'langchain/schema' -import { RunnableSequence } from 'langchain/schema/runnable' +import { Tool } from '@langchain/core/tools' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' +import { AIMessage, BaseMessage, HumanMessage } from '@langchain/core/messages' +import { ChainValues } from '@langchain/core/utils/types' +import { AgentStep } from '@langchain/core/agents' +import { renderTemplate } from '@langchain/core/prompts' +import { RunnableSequence } from '@langchain/core/runnables' +import { ChatConversationalAgent } from 'langchain/agents' import { getBaseClasses } from '../../../src/utils' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { AgentExecutor } from '../../../src/agents' -import { ChatConversationalAgent } from 'langchain/agents' -import { renderTemplate } from '@langchain/core/prompts' const DEFAULT_PREFIX = `Assistant is a large language model trained by OpenAI. diff --git a/packages/components/nodes/agents/ConversationalRetrievalAgent/ConversationalRetrievalAgent.ts b/packages/components/nodes/agents/ConversationalRetrievalAgent/ConversationalRetrievalAgent.ts index 406a156f..36bc6807 100644 --- a/packages/components/nodes/agents/ConversationalRetrievalAgent/ConversationalRetrievalAgent.ts +++ b/packages/components/nodes/agents/ConversationalRetrievalAgent/ConversationalRetrievalAgent.ts @@ -1,13 +1,14 @@ -import { ChainValues, AgentStep, BaseMessage } from 'langchain/schema' import { flatten } from 'lodash' -import { ChatOpenAI } from 'langchain/chat_models/openai' -import { ChatPromptTemplate, MessagesPlaceholder } from 'langchain/prompts' -import { formatToOpenAIFunction } from 'langchain/tools' -import { RunnableSequence } from 'langchain/schema/runnable' +import { BaseMessage } from '@langchain/core/messages' +import { ChainValues } from '@langchain/core/utils/types' +import { AgentStep } from '@langchain/core/agents' +import { RunnableSequence } from '@langchain/core/runnables' +import { ChatOpenAI, formatToOpenAIFunction } from '@langchain/openai' +import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts' +import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' -import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser' import { AgentExecutor, formatAgentSteps } from '../../../src/agents' const defaultMessage = `Do your best to answer the questions. Feel free to use any tools available to look up relevant information, only if necessary.` diff --git a/packages/components/nodes/agents/MRKLAgentChat/MRKLAgentChat.ts b/packages/components/nodes/agents/MRKLAgentChat/MRKLAgentChat.ts index 19835e36..9dce98af 100644 --- a/packages/components/nodes/agents/MRKLAgentChat/MRKLAgentChat.ts +++ b/packages/components/nodes/agents/MRKLAgentChat/MRKLAgentChat.ts @@ -1,10 +1,12 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { initializeAgentExecutorWithOptions, AgentExecutor } from 'langchain/agents' -import { getBaseClasses } from '../../../src/utils' -import { Tool } from 'langchain/tools' -import { BaseLanguageModel } from 'langchain/base_language' import { flatten } from 'lodash' +import { AgentExecutor, createReactAgent } from 'langchain/agents' +import { pull } from 'langchain/hub' +import { Tool } from '@langchain/core/tools' +import type { PromptTemplate } from '@langchain/core/prompts' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' import { additionalCallbacks } from '../../../src/handler' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' class MRKLAgentChat_Agents implements INode { label: string @@ -20,7 +22,7 @@ class MRKLAgentChat_Agents implements INode { constructor() { this.label = 'ReAct Agent for Chat Models' this.name = 'mrklAgentChat' - this.version = 1.0 + this.version = 2.0 this.type = 'AgentExecutor' this.category = 'Agents' this.icon = 'agent.svg' @@ -34,30 +36,42 @@ class MRKLAgentChat_Agents implements INode { list: true }, { - label: 'Language Model', + label: 'Chat Model', name: 'model', - type: 'BaseLanguageModel' + type: 'BaseChatModel' } ] } - async init(nodeData: INodeData): Promise { - const model = nodeData.inputs?.model as BaseLanguageModel - let tools = nodeData.inputs?.tools as Tool[] - tools = flatten(tools) - const executor = await initializeAgentExecutorWithOptions(tools, model, { - agentType: 'chat-zero-shot-react-description', - verbose: process.env.DEBUG === 'true' ? true : false - }) - return executor + async init(): Promise { + return null } async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { - const executor = nodeData.instance as AgentExecutor + const model = nodeData.inputs?.model as BaseChatModel + let tools = nodeData.inputs?.tools as Tool[] + tools = flatten(tools) + + const promptWithChat = await pull('hwchase17/react-chat') + + const agent = await createReactAgent({ + llm: model, + tools, + prompt: promptWithChat + }) + + const executor = new AgentExecutor({ + agent, + tools, + verbose: process.env.DEBUG === 'true' ? true : false + }) const callbacks = await additionalCallbacks(nodeData, options) - const result = await executor.call({ input }, [...callbacks]) + const result = await executor.invoke({ + input, + callbacks + }) return result?.output } diff --git a/packages/components/nodes/agents/MRKLAgentLLM/MRKLAgentLLM.ts b/packages/components/nodes/agents/MRKLAgentLLM/MRKLAgentLLM.ts index 43a4dee2..3bd6ba1e 100644 --- a/packages/components/nodes/agents/MRKLAgentLLM/MRKLAgentLLM.ts +++ b/packages/components/nodes/agents/MRKLAgentLLM/MRKLAgentLLM.ts @@ -1,10 +1,12 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { initializeAgentExecutorWithOptions, AgentExecutor } from 'langchain/agents' -import { Tool } from 'langchain/tools' -import { getBaseClasses } from '../../../src/utils' -import { BaseLanguageModel } from 'langchain/base_language' import { flatten } from 'lodash' +import { AgentExecutor, createReactAgent } from 'langchain/agents' +import { pull } from 'langchain/hub' +import { Tool } from '@langchain/core/tools' +import type { PromptTemplate } from '@langchain/core/prompts' +import { BaseLanguageModel } from 'langchain/base_language' import { additionalCallbacks } from '../../../src/handler' +import { getBaseClasses } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' class MRKLAgentLLM_Agents implements INode { label: string @@ -41,24 +43,35 @@ class MRKLAgentLLM_Agents implements INode { ] } - async init(nodeData: INodeData): Promise { + async init(): Promise { + return null + } + + async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { const model = nodeData.inputs?.model as BaseLanguageModel let tools = nodeData.inputs?.tools as Tool[] tools = flatten(tools) - const executor = await initializeAgentExecutorWithOptions(tools, model, { - agentType: 'zero-shot-react-description', + const prompt = await pull('hwchase17/react') + + const agent = await createReactAgent({ + llm: model, + tools, + prompt + }) + + const executor = new AgentExecutor({ + agent, + tools, verbose: process.env.DEBUG === 'true' ? true : false }) - return executor - } - - async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { - const executor = nodeData.instance as AgentExecutor const callbacks = await additionalCallbacks(nodeData, options) - const result = await executor.call({ input }, [...callbacks]) + const result = await executor.invoke({ + input, + callbacks + }) return result?.output } diff --git a/packages/components/nodes/agents/OpenAIFunctionAgent/OpenAIFunctionAgent.ts b/packages/components/nodes/agents/OpenAIFunctionAgent/OpenAIFunctionAgent.ts index c21c887a..7af8457d 100644 --- a/packages/components/nodes/agents/OpenAIFunctionAgent/OpenAIFunctionAgent.ts +++ b/packages/components/nodes/agents/OpenAIFunctionAgent/OpenAIFunctionAgent.ts @@ -1,13 +1,14 @@ -import { ChainValues, AgentStep, BaseMessage } from 'langchain/schema' -import { getBaseClasses } from '../../../src/utils' import { flatten } from 'lodash' -import { RunnableSequence } from 'langchain/schema/runnable' -import { formatToOpenAIFunction } from 'langchain/tools' -import { ChatOpenAI } from 'langchain/chat_models/openai' +import { BaseMessage } from '@langchain/core/messages' +import { ChainValues } from '@langchain/core/utils/types' +import { AgentStep } from '@langchain/core/agents' +import { RunnableSequence } from '@langchain/core/runnables' +import { ChatOpenAI, formatToOpenAIFunction } from '@langchain/openai' +import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts' +import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser' +import { getBaseClasses } from '../../../src/utils' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' -import { ChatPromptTemplate, MessagesPlaceholder } from 'langchain/prompts' -import { OpenAIFunctionsAgentOutputParser } from 'langchain/agents/openai/output_parser' import { AgentExecutor, formatAgentSteps } from '../../../src/agents' class OpenAIFunctionAgent_Agents implements INode { diff --git a/packages/components/nodes/analytic/LLMonitor/Lunary.svg b/packages/components/nodes/analytic/Lunary/Lunary.svg similarity index 100% rename from packages/components/nodes/analytic/LLMonitor/Lunary.svg rename to packages/components/nodes/analytic/Lunary/Lunary.svg diff --git a/packages/components/nodes/analytic/LLMonitor/LLMonitor.ts b/packages/components/nodes/analytic/Lunary/Lunary.ts similarity index 71% rename from packages/components/nodes/analytic/LLMonitor/LLMonitor.ts rename to packages/components/nodes/analytic/Lunary/Lunary.ts index 93bfbbf3..4a6217d3 100644 --- a/packages/components/nodes/analytic/LLMonitor/LLMonitor.ts +++ b/packages/components/nodes/analytic/Lunary/Lunary.ts @@ -1,6 +1,6 @@ import { INode, INodeParams } from '../../../src/Interface' -class LLMonitor_Analytic implements INode { +class Lunary_Analytic implements INode { label: string name: string version: number @@ -13,10 +13,10 @@ class LLMonitor_Analytic implements INode { credential: INodeParams constructor() { - this.label = 'LLMonitor' - this.name = 'llmonitor' + this.label = 'Lunary' + this.name = 'lunary' this.version = 1.0 - this.type = 'LLMonitor' + this.type = 'Lunary' this.icon = 'Lunary.svg' this.category = 'Analytic' this.baseClasses = [this.type] @@ -25,9 +25,9 @@ class LLMonitor_Analytic implements INode { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['llmonitorApi'] + credentialNames: ['lunaryApi'] } } } -module.exports = { nodeClass: LLMonitor_Analytic } +module.exports = { nodeClass: Lunary_Analytic } diff --git a/packages/components/nodes/cache/InMemoryCache/InMemoryCache.ts b/packages/components/nodes/cache/InMemoryCache/InMemoryCache.ts index a8aa9fd4..bddcfb70 100644 --- a/packages/components/nodes/cache/InMemoryCache/InMemoryCache.ts +++ b/packages/components/nodes/cache/InMemoryCache/InMemoryCache.ts @@ -1,6 +1,6 @@ -import { getBaseClasses, ICommonObject, INode, INodeData, INodeParams } from '../../../src' -import { BaseCache } from 'langchain/schema' +import { BaseCache } from '@langchain/core/caches' import hash from 'object-hash' +import { getBaseClasses, ICommonObject, INode, INodeData, INodeParams } from '../../../src' class InMemoryCache implements INode { label: string diff --git a/packages/components/nodes/cache/InMemoryCache/InMemoryEmbeddingCache.ts b/packages/components/nodes/cache/InMemoryCache/InMemoryEmbeddingCache.ts index f83fca3d..de426a72 100644 --- a/packages/components/nodes/cache/InMemoryCache/InMemoryEmbeddingCache.ts +++ b/packages/components/nodes/cache/InMemoryCache/InMemoryEmbeddingCache.ts @@ -1,7 +1,7 @@ -import { getBaseClasses, ICommonObject, INode, INodeData, INodeParams } from '../../../src' +import { Embeddings } from '@langchain/core/embeddings' +import { BaseStore } from '@langchain/core/stores' import { CacheBackedEmbeddings } from 'langchain/embeddings/cache_backed' -import { Embeddings } from 'langchain/embeddings/base' -import { BaseStore } from 'langchain/schema/storage' +import { getBaseClasses, ICommonObject, INode, INodeData, INodeParams } from '../../../src' class InMemoryEmbeddingCache implements INode { label: string diff --git a/packages/components/nodes/cache/MomentoCache/MomentoCache.ts b/packages/components/nodes/cache/MomentoCache/MomentoCache.ts index 8b4ce416..e30e8475 100644 --- a/packages/components/nodes/cache/MomentoCache/MomentoCache.ts +++ b/packages/components/nodes/cache/MomentoCache/MomentoCache.ts @@ -1,6 +1,6 @@ -import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' -import { MomentoCache as LangchainMomentoCache } from 'langchain/cache/momento' import { CacheClient, Configurations, CredentialProvider } from '@gomomento/sdk' +import { MomentoCache as LangchainMomentoCache } from '@langchain/community/caches/momento' +import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' class MomentoCache implements INode { label: string diff --git a/packages/components/nodes/cache/RedisCache/RedisCache.ts b/packages/components/nodes/cache/RedisCache/RedisCache.ts index 4e61c239..6fe02e99 100644 --- a/packages/components/nodes/cache/RedisCache/RedisCache.ts +++ b/packages/components/nodes/cache/RedisCache/RedisCache.ts @@ -1,8 +1,9 @@ -import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' -import { RedisCache as LangchainRedisCache } from 'langchain/cache/ioredis' import { Redis } from 'ioredis' -import { Generation, ChatGeneration, StoredGeneration, mapStoredMessageToChatMessage } from 'langchain/schema' import hash from 'object-hash' +import { RedisCache as LangchainRedisCache } from '@langchain/community/caches/ioredis' +import { StoredGeneration, mapStoredMessageToChatMessage } from '@langchain/core/messages' +import { Generation, ChatGeneration } from '@langchain/core/outputs' +import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' class RedisCache implements INode { label: string diff --git a/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts b/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts index fe1b4df8..36dddeb6 100644 --- a/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts +++ b/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts @@ -1,8 +1,8 @@ -import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' import { Redis } from 'ioredis' +import { RedisByteStore } from '@langchain/community/storage/ioredis' +import { Embeddings } from '@langchain/core/embeddings' import { CacheBackedEmbeddings } from 'langchain/embeddings/cache_backed' -import { RedisByteStore } from 'langchain/storage/ioredis' -import { Embeddings } from 'langchain/embeddings/base' +import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' class RedisEmbeddingsCache implements INode { label: string diff --git a/packages/components/nodes/cache/UpstashRedisCache/UpstashRedisCache.ts b/packages/components/nodes/cache/UpstashRedisCache/UpstashRedisCache.ts index 311979c2..c50595d2 100644 --- a/packages/components/nodes/cache/UpstashRedisCache/UpstashRedisCache.ts +++ b/packages/components/nodes/cache/UpstashRedisCache/UpstashRedisCache.ts @@ -1,5 +1,5 @@ +import { UpstashRedisCache as LangchainUpstashRedisCache } from '@langchain/community/caches/upstash_redis' import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' -import { UpstashRedisCache as LangchainUpstashRedisCache } from 'langchain/cache/upstash_redis' class UpstashRedisCache implements INode { label: string diff --git a/packages/components/nodes/chains/ApiChain/GETApiChain.ts b/packages/components/nodes/chains/ApiChain/GETApiChain.ts index 3494fa1c..cdf78ffc 100644 --- a/packages/components/nodes/chains/ApiChain/GETApiChain.ts +++ b/packages/components/nodes/chains/ApiChain/GETApiChain.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { PromptTemplate } from '@langchain/core/prompts' import { APIChain } from 'langchain/chains' import { getBaseClasses } from '../../../src/utils' -import { BaseLanguageModel } from 'langchain/base_language' -import { PromptTemplate } from 'langchain/prompts' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' export const API_URL_RAW_PROMPT_TEMPLATE = `You are given the below API Documentation: diff --git a/packages/components/nodes/chains/ApiChain/OpenAPIChain.ts b/packages/components/nodes/chains/ApiChain/OpenAPIChain.ts index 51459daa..d922a186 100644 --- a/packages/components/nodes/chains/ApiChain/OpenAPIChain.ts +++ b/packages/components/nodes/chains/ApiChain/OpenAPIChain.ts @@ -1,7 +1,7 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { ChatOpenAI } from '@langchain/openai' import { APIChain, createOpenAPIChain } from 'langchain/chains' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { ChatOpenAI } from 'langchain/chat_models/openai' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' class OpenApiChain_Chains implements INode { diff --git a/packages/components/nodes/chains/ApiChain/POSTApiChain.ts b/packages/components/nodes/chains/ApiChain/POSTApiChain.ts index 309b3310..e6f0bd34 100644 --- a/packages/components/nodes/chains/ApiChain/POSTApiChain.ts +++ b/packages/components/nodes/chains/ApiChain/POSTApiChain.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { getBaseClasses } from '../../../src/utils' -import { BaseLanguageModel } from 'langchain/base_language' -import { PromptTemplate } from 'langchain/prompts' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { PromptTemplate } from '@langchain/core/prompts' import { API_RESPONSE_RAW_PROMPT_TEMPLATE, API_URL_RAW_PROMPT_TEMPLATE, APIChain } from './postCore' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' class POSTApiChain_Chains implements INode { label: string diff --git a/packages/components/nodes/chains/ApiChain/postCore.ts b/packages/components/nodes/chains/ApiChain/postCore.ts index de7215d9..d7ac7cb1 100644 --- a/packages/components/nodes/chains/ApiChain/postCore.ts +++ b/packages/components/nodes/chains/ApiChain/postCore.ts @@ -1,8 +1,8 @@ -import { BaseLanguageModel } from 'langchain/base_language' -import { CallbackManagerForChainRun } from 'langchain/callbacks' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { CallbackManagerForChainRun } from '@langchain/core/callbacks/manager' import { BaseChain, ChainInputs, LLMChain, SerializedAPIChain } from 'langchain/chains' -import { BasePromptTemplate, PromptTemplate } from 'langchain/prompts' -import { ChainValues } from 'langchain/schema' +import { BasePromptTemplate, PromptTemplate } from '@langchain/core/prompts' +import { ChainValues } from '@langchain/core/utils/types' import fetch from 'node-fetch' export const API_URL_RAW_PROMPT_TEMPLATE = `You are given the below API Documentation: diff --git a/packages/components/nodes/chains/ConversationChain/ConversationChain.ts b/packages/components/nodes/chains/ConversationChain/ConversationChain.ts index 764f4f0e..9681ef6d 100644 --- a/packages/components/nodes/chains/ConversationChain/ConversationChain.ts +++ b/packages/components/nodes/chains/ConversationChain/ConversationChain.ts @@ -1,12 +1,12 @@ -import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' -import { ConversationChain } from 'langchain/chains' -import { getBaseClasses, handleEscapeCharacters } from '../../../src/utils' -import { ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder, SystemMessagePromptTemplate } from 'langchain/prompts' -import { BaseChatModel } from 'langchain/chat_models/base' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' -import { RunnableSequence } from 'langchain/schema/runnable' -import { StringOutputParser } from 'langchain/schema/output_parser' +import { ChatPromptTemplate, HumanMessagePromptTemplate, MessagesPlaceholder, SystemMessagePromptTemplate } from '@langchain/core/prompts' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' +import { RunnableSequence } from '@langchain/core/runnables' +import { StringOutputParser } from '@langchain/core/output_parsers' import { ConsoleCallbackHandler as LCConsoleCallbackHandler } from '@langchain/core/tracers/console' +import { ConversationChain } from 'langchain/chains' +import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams } from '../../../src/Interface' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { getBaseClasses, handleEscapeCharacters } from '../../../src/utils' let systemMessage = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.` const inputKey = 'input' diff --git a/packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts b/packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts index 964543de..46d739d1 100644 --- a/packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts +++ b/packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts @@ -1,19 +1,18 @@ -import { BaseLanguageModel } from 'langchain/base_language' -import { ConversationalRetrievalQAChain } from 'langchain/chains' -import { BaseRetriever } from 'langchain/schema/retriever' -import { BufferMemoryInput } from 'langchain/memory' -import { PromptTemplate } from 'langchain/prompts' -import { QA_TEMPLATE, REPHRASE_TEMPLATE, RESPONSE_TEMPLATE } from './prompts' -import { Runnable, RunnableSequence, RunnableMap, RunnableBranch, RunnableLambda } from 'langchain/schema/runnable' -import { BaseMessage, HumanMessage, AIMessage } from 'langchain/schema' -import { StringOutputParser } from 'langchain/schema/output_parser' -import type { Document } from 'langchain/document' -import { ChatPromptTemplate, MessagesPlaceholder } from 'langchain/prompts' import { applyPatch } from 'fast-json-patch' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { BaseRetriever } from '@langchain/core/retrievers' +import { PromptTemplate, ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts' +import { Runnable, RunnableSequence, RunnableMap, RunnableBranch, RunnableLambda } from '@langchain/core/runnables' +import { BaseMessage, HumanMessage, AIMessage } from '@langchain/core/messages' +import { ConsoleCallbackHandler as LCConsoleCallbackHandler } from '@langchain/core/tracers/console' +import { StringOutputParser } from '@langchain/core/output_parsers' +import type { Document } from '@langchain/core/documents' +import { BufferMemoryInput } from 'langchain/memory' +import { ConversationalRetrievalQAChain } from 'langchain/chains' import { convertBaseMessagetoIMessage, getBaseClasses } from '../../../src/utils' import { ConsoleCallbackHandler, additionalCallbacks } from '../../../src/handler' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, MemoryMethods } from '../../../src/Interface' -import { ConsoleCallbackHandler as LCConsoleCallbackHandler } from '@langchain/core/tracers/console' +import { QA_TEMPLATE, REPHRASE_TEMPLATE, RESPONSE_TEMPLATE } from './prompts' type RetrievalChainInput = { chat_history: string diff --git a/packages/components/nodes/chains/LLMChain/LLMChain.ts b/packages/components/nodes/chains/LLMChain/LLMChain.ts index f83fc36a..6ad8d526 100644 --- a/packages/components/nodes/chains/LLMChain/LLMChain.ts +++ b/packages/components/nodes/chains/LLMChain/LLMChain.ts @@ -1,13 +1,12 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { getBaseClasses, handleEscapeCharacters } from '../../../src/utils' -import { LLMChain } from 'langchain/chains' -import { BaseLanguageModel, BaseLanguageModelCallOptions } from 'langchain/base_language' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' -import { BaseOutputParser } from 'langchain/schema/output_parser' -import { formatResponse, injectOutputParser } from '../../outputparsers/OutputParserHelpers' -import { BaseLLMOutputParser } from 'langchain/schema/output_parser' +import { BaseLanguageModel, BaseLanguageModelCallOptions } from '@langchain/core/language_models/base' +import { BaseLLMOutputParser, BaseOutputParser } from '@langchain/core/output_parsers' import { OutputFixingParser } from 'langchain/output_parsers' +import { LLMChain } from 'langchain/chains' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { getBaseClasses, handleEscapeCharacters } from '../../../src/utils' import { checkInputs, Moderation, streamResponse } from '../../moderation/Moderation' +import { formatResponse, injectOutputParser } from '../../outputparsers/OutputParserHelpers' class LLMChain_Chains implements INode { label: string diff --git a/packages/components/nodes/chains/MultiPromptChain/MultiPromptChain.ts b/packages/components/nodes/chains/MultiPromptChain/MultiPromptChain.ts index 72c25566..c4c1d372 100644 --- a/packages/components/nodes/chains/MultiPromptChain/MultiPromptChain.ts +++ b/packages/components/nodes/chains/MultiPromptChain/MultiPromptChain.ts @@ -1,7 +1,7 @@ -import { BaseLanguageModel } from 'langchain/base_language' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { MultiPromptChain } from 'langchain/chains' import { ICommonObject, INode, INodeData, INodeParams, PromptRetriever } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { MultiPromptChain } from 'langchain/chains' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' class MultiPromptChain_Chains implements INode { diff --git a/packages/components/nodes/chains/MultiRetrievalQAChain/MultiRetrievalQAChain.ts b/packages/components/nodes/chains/MultiRetrievalQAChain/MultiRetrievalQAChain.ts index a2cfc309..3cb78ce8 100644 --- a/packages/components/nodes/chains/MultiRetrievalQAChain/MultiRetrievalQAChain.ts +++ b/packages/components/nodes/chains/MultiRetrievalQAChain/MultiRetrievalQAChain.ts @@ -1,7 +1,7 @@ -import { BaseLanguageModel } from 'langchain/base_language' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { MultiRetrievalQAChain } from 'langchain/chains' import { ICommonObject, INode, INodeData, INodeParams, VectorStoreRetriever } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { MultiRetrievalQAChain } from 'langchain/chains' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' class MultiRetrievalQAChain_Chains implements INode { diff --git a/packages/components/nodes/chains/RetrievalQAChain/RetrievalQAChain.ts b/packages/components/nodes/chains/RetrievalQAChain/RetrievalQAChain.ts index 7f13fcfd..3968d3c0 100644 --- a/packages/components/nodes/chains/RetrievalQAChain/RetrievalQAChain.ts +++ b/packages/components/nodes/chains/RetrievalQAChain/RetrievalQAChain.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { BaseRetriever } from '@langchain/core/retrievers' +import { BaseLanguageModel } from '@langchain/core/language_models/base' import { RetrievalQAChain } from 'langchain/chains' -import { BaseRetriever } from 'langchain/schema/retriever' -import { getBaseClasses } from '../../../src/utils' -import { BaseLanguageModel } from 'langchain/base_language' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' class RetrievalQAChain_Chains implements INode { label: string diff --git a/packages/components/nodes/chains/SqlDatabaseChain/SqlDatabaseChain.ts b/packages/components/nodes/chains/SqlDatabaseChain/SqlDatabaseChain.ts index ac33fa0e..2c9f3813 100644 --- a/packages/components/nodes/chains/SqlDatabaseChain/SqlDatabaseChain.ts +++ b/packages/components/nodes/chains/SqlDatabaseChain/SqlDatabaseChain.ts @@ -1,12 +1,12 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { SqlDatabaseChain, SqlDatabaseChainInput, DEFAULT_SQL_DATABASE_PROMPT } from 'langchain/chains/sql_db' -import { getBaseClasses, getInputVariables } from '../../../src/utils' -import { DataSource } from 'typeorm' -import { SqlDatabase } from 'langchain/sql_db' -import { BaseLanguageModel } from 'langchain/base_language' -import { PromptTemplate, PromptTemplateInput } from 'langchain/prompts' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { DataSourceOptions } from 'typeorm/data-source' +import { DataSource } from 'typeorm' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { PromptTemplate, PromptTemplateInput } from '@langchain/core/prompts' +import { SqlDatabaseChain, SqlDatabaseChainInput, DEFAULT_SQL_DATABASE_PROMPT } from 'langchain/chains/sql_db' +import { SqlDatabase } from 'langchain/sql_db' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' +import { getBaseClasses, getInputVariables } from '../../../src/utils' type DatabaseType = 'sqlite' | 'postgres' | 'mssql' | 'mysql' diff --git a/packages/components/nodes/chains/VectaraChain/VectaraChain.ts b/packages/components/nodes/chains/VectaraChain/VectaraChain.ts index 7d65c9cd..97bbaa67 100644 --- a/packages/components/nodes/chains/VectaraChain/VectaraChain.ts +++ b/packages/components/nodes/chains/VectaraChain/VectaraChain.ts @@ -1,9 +1,9 @@ +import fetch from 'node-fetch' +import { Document } from '@langchain/core/documents' +import { VectaraStore } from '@langchain/community/vectorstores/vectara' +import { VectorDBQAChain } from 'langchain/chains' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { VectorDBQAChain } from 'langchain/chains' -import { Document } from 'langchain/document' -import { VectaraStore } from 'langchain/vectorstores/vectara' -import fetch from 'node-fetch' // functionality based on https://github.com/vectara/vectara-answer const reorderCitations = (unorderedSummary: string) => { diff --git a/packages/components/nodes/chains/VectorDBQAChain/VectorDBQAChain.ts b/packages/components/nodes/chains/VectorDBQAChain/VectorDBQAChain.ts index 594ed921..ef0df01a 100644 --- a/packages/components/nodes/chains/VectorDBQAChain/VectorDBQAChain.ts +++ b/packages/components/nodes/chains/VectorDBQAChain/VectorDBQAChain.ts @@ -1,9 +1,9 @@ +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { VectorStore } from '@langchain/core/vectorstores' +import { VectorDBQAChain } from 'langchain/chains' +import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { VectorDBQAChain } from 'langchain/chains' -import { BaseLanguageModel } from 'langchain/base_language' -import { VectorStore } from 'langchain/vectorstores/base' -import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' class VectorDBQAChain_Chains implements INode { label: string diff --git a/packages/components/nodes/chatmodels/AWSBedrock/AWSChatBedrock.ts b/packages/components/nodes/chatmodels/AWSBedrock/AWSChatBedrock.ts index fedd731d..85586d14 100644 --- a/packages/components/nodes/chatmodels/AWSBedrock/AWSChatBedrock.ts +++ b/packages/components/nodes/chatmodels/AWSBedrock/AWSChatBedrock.ts @@ -1,9 +1,9 @@ +import { BedrockChat } from '@langchain/community/chat_models/bedrock' +import { BaseCache } from '@langchain/core/caches' +import { BaseChatModelParams } from '@langchain/core/language_models/chat_models' +import { BaseBedrockInput } from 'langchain/dist/util/bedrock' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { BedrockChat } from 'langchain/chat_models/bedrock' -import { BaseBedrockInput } from 'langchain/dist/util/bedrock' -import { BaseCache } from 'langchain/schema' -import { BaseChatModelParams } from 'langchain/chat_models/base' /** * I had to run the following to build the component diff --git a/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts b/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts index 9b7b724a..ea924fd0 100644 --- a/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts +++ b/packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts @@ -1,8 +1,8 @@ +import { AzureOpenAIInput, ChatOpenAI, OpenAIChatInput } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { AzureOpenAIInput, ChatOpenAI, OpenAIChatInput } from 'langchain/chat_models/openai' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class AzureChatOpenAI_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/Bittensor/Bittensor.ts b/packages/components/nodes/chatmodels/Bittensor/Bittensor.ts index 9563ea43..838592f4 100644 --- a/packages/components/nodes/chatmodels/Bittensor/Bittensor.ts +++ b/packages/components/nodes/chatmodels/Bittensor/Bittensor.ts @@ -1,7 +1,7 @@ +import { BaseCache } from '@langchain/core/caches' +import { NIBittensorChatModel, BittensorInput } from 'langchain/experimental/chat_models/bittensor' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { NIBittensorChatModel, BittensorInput } from 'langchain/experimental/chat_models/bittensor' -import { BaseCache } from 'langchain/schema' class Bittensor_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts b/packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts index 599578f5..8b4f7c0e 100644 --- a/packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts +++ b/packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts @@ -1,8 +1,8 @@ +import { AnthropicInput, ChatAnthropic } from '@langchain/anthropic' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { AnthropicInput, ChatAnthropic } from 'langchain/chat_models/anthropic' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class ChatAnthropic_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts index 9a4b8891..19029467 100644 --- a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts +++ b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { convertMultiOptionsToStringArray, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { BaseCache } from 'langchain/schema' -import { ChatGoogleGenerativeAI, GoogleGenerativeAIChatInput } from '@langchain/google-genai' import { HarmBlockThreshold, HarmCategory } from '@google/generative-ai' import type { SafetySetting } from '@google/generative-ai' +import { ChatGoogleGenerativeAI, GoogleGenerativeAIChatInput } from '@langchain/google-genai' +import { BaseCache } from '@langchain/core/caches' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { convertMultiOptionsToStringArray, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class GoogleGenerativeAI_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatGooglePaLM/ChatGooglePaLM.ts b/packages/components/nodes/chatmodels/ChatGooglePaLM/ChatGooglePaLM.ts index ab7a6169..5e55cfdd 100644 --- a/packages/components/nodes/chatmodels/ChatGooglePaLM/ChatGooglePaLM.ts +++ b/packages/components/nodes/chatmodels/ChatGooglePaLM/ChatGooglePaLM.ts @@ -1,7 +1,7 @@ +import { ChatGooglePaLM, GooglePaLMChatInput } from '@langchain/community/chat_models/googlepalm' +import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { ChatGooglePaLM, GooglePaLMChatInput } from 'langchain/chat_models/googlepalm' -import { BaseCache } from 'langchain/schema' class ChatGooglePaLM_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatGoogleVertexAI/ChatGoogleVertexAI.ts b/packages/components/nodes/chatmodels/ChatGoogleVertexAI/ChatGoogleVertexAI.ts index 4c961853..782a4aec 100644 --- a/packages/components/nodes/chatmodels/ChatGoogleVertexAI/ChatGoogleVertexAI.ts +++ b/packages/components/nodes/chatmodels/ChatGoogleVertexAI/ChatGoogleVertexAI.ts @@ -1,8 +1,8 @@ +import { GoogleAuthOptions } from 'google-auth-library' +import { BaseCache } from '@langchain/core/caches' +import { ChatGoogleVertexAI, GoogleVertexAIChatInput } from '@langchain/community/chat_models/googlevertexai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { ChatGoogleVertexAI, GoogleVertexAIChatInput } from 'langchain/chat_models/googlevertexai' -import { GoogleAuthOptions } from 'google-auth-library' -import { BaseCache } from 'langchain/schema' class GoogleVertexAI_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatHuggingFace/ChatHuggingFace.ts b/packages/components/nodes/chatmodels/ChatHuggingFace/ChatHuggingFace.ts index dff78193..4d29a7db 100644 --- a/packages/components/nodes/chatmodels/ChatHuggingFace/ChatHuggingFace.ts +++ b/packages/components/nodes/chatmodels/ChatHuggingFace/ChatHuggingFace.ts @@ -1,7 +1,7 @@ +import { BaseCache } from '@langchain/core/caches' +import { HFInput, HuggingFaceInference } from './core' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { HFInput, HuggingFaceInference } from './core' -import { BaseCache } from 'langchain/schema' class ChatHuggingFace_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatHuggingFace/core.ts b/packages/components/nodes/chatmodels/ChatHuggingFace/core.ts index 416567f0..0d74bbe7 100644 --- a/packages/components/nodes/chatmodels/ChatHuggingFace/core.ts +++ b/packages/components/nodes/chatmodels/ChatHuggingFace/core.ts @@ -1,5 +1,5 @@ +import { LLM, BaseLLMParams } from '@langchain/core/language_models/llms' import { getEnvironmentVariable } from '../../../src/utils' -import { LLM, BaseLLMParams } from 'langchain/llms/base' export interface HFInput { /** Model to use */ diff --git a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts index f2825d0d..e8516ac4 100644 --- a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts +++ b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts @@ -1,9 +1,8 @@ +import { OpenAIChatInput, ChatOpenAI } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAIChat } from 'langchain/llms/openai' -import { OpenAIChatInput } from 'langchain/chat_models/openai' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class ChatLocalAI_ChatModels implements INode { label: string @@ -25,7 +24,7 @@ class ChatLocalAI_ChatModels implements INode { this.icon = 'localai.png' this.category = 'Chat Models' this.description = 'Use local LLMs like llama.cpp, gpt4all using LocalAI' - this.baseClasses = [this.type, 'BaseChatModel', ...getBaseClasses(OpenAIChat)] + this.baseClasses = [this.type, 'BaseChatModel', ...getBaseClasses(ChatOpenAI)] this.credential = { label: 'Connect Credential', name: 'credential', @@ -111,7 +110,7 @@ class ChatLocalAI_ChatModels implements INode { if (cache) obj.cache = cache if (localAIApiKey) obj.openAIApiKey = localAIApiKey - const model = new OpenAIChat(obj, { basePath }) + const model = new ChatOpenAI(obj, { basePath }) return model } diff --git a/packages/components/nodes/chatmodels/ChatMistral/ChatMistral.ts b/packages/components/nodes/chatmodels/ChatMistral/ChatMistral.ts index 4524db46..87ad240a 100644 --- a/packages/components/nodes/chatmodels/ChatMistral/ChatMistral.ts +++ b/packages/components/nodes/chatmodels/ChatMistral/ChatMistral.ts @@ -1,7 +1,7 @@ +import { BaseCache } from '@langchain/core/caches' +import { ChatMistralAI, ChatMistralAIInput } from '@langchain/mistralai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { BaseCache } from 'langchain/schema' -import { ChatMistralAI, ChatMistralAIInput } from '@langchain/mistralai' class ChatMistral_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts index d445c7e1..09c3da42 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts @@ -1,8 +1,8 @@ +import { ChatOllama, ChatOllamaInput } from '@langchain/community/chat_models/ollama' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { ChatOllama, ChatOllamaInput } from 'langchain/chat_models/ollama' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class ChatOllama_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts index 49326163..75ddc23b 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts @@ -1,8 +1,8 @@ +import { ChatOpenAI, OpenAIChatInput } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { ChatOpenAI, OpenAIChatInput } from 'langchain/chat_models/openai' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class ChatOpenAI_ChatModels implements INode { label: string diff --git a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts index e80f17b7..c84f4c1e 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts @@ -1,8 +1,8 @@ +import { ChatOpenAI, OpenAIChatInput } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { ChatOpenAI, OpenAIChatInput } from 'langchain/chat_models/openai' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class ChatOpenAICustom_ChatModels implements INode { label: string diff --git a/packages/components/nodes/documentloaders/API/APILoader.ts b/packages/components/nodes/documentloaders/API/APILoader.ts index e2212366..ebe4f368 100644 --- a/packages/components/nodes/documentloaders/API/APILoader.ts +++ b/packages/components/nodes/documentloaders/API/APILoader.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import axios, { AxiosRequestConfig } from 'axios' +import { Document } from '@langchain/core/documents' import { TextSplitter } from 'langchain/text_splitter' import { BaseDocumentLoader } from 'langchain/document_loaders/base' -import { Document } from 'langchain/document' -import axios, { AxiosRequestConfig } from 'axios' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' class API_DocumentLoaders implements INode { label: string diff --git a/packages/components/nodes/documentloaders/Airtable/Airtable.ts b/packages/components/nodes/documentloaders/Airtable/Airtable.ts index 9a824ac9..225ed288 100644 --- a/packages/components/nodes/documentloaders/Airtable/Airtable.ts +++ b/packages/components/nodes/documentloaders/Airtable/Airtable.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import axios from 'axios' +import { Document } from '@langchain/core/documents' import { TextSplitter } from 'langchain/text_splitter' import { BaseDocumentLoader } from 'langchain/document_loaders/base' -import { Document } from 'langchain/document' -import axios from 'axios' import { getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' class Airtable_DocumentLoaders implements INode { label: string diff --git a/packages/components/nodes/documentloaders/ApifyWebsiteContentCrawler/ApifyWebsiteContentCrawler.ts b/packages/components/nodes/documentloaders/ApifyWebsiteContentCrawler/ApifyWebsiteContentCrawler.ts index 9ecaa594..c29a6bdf 100644 --- a/packages/components/nodes/documentloaders/ApifyWebsiteContentCrawler/ApifyWebsiteContentCrawler.ts +++ b/packages/components/nodes/documentloaders/ApifyWebsiteContentCrawler/ApifyWebsiteContentCrawler.ts @@ -2,7 +2,7 @@ import { INode, INodeData, INodeParams, ICommonObject } from '../../../src/Inter import { getCredentialData, getCredentialParam } from '../../../src/utils' import { TextSplitter } from 'langchain/text_splitter' import { ApifyDatasetLoader } from 'langchain/document_loaders/web/apify_dataset' -import { Document } from 'langchain/document' +import { Document } from '@langchain/core/documents' class ApifyWebsiteContentCrawler_DocumentLoaders implements INode { label: string diff --git a/packages/components/nodes/documentloaders/PlainText/PlainText.ts b/packages/components/nodes/documentloaders/PlainText/PlainText.ts index c2adceeb..d6c43867 100644 --- a/packages/components/nodes/documentloaders/PlainText/PlainText.ts +++ b/packages/components/nodes/documentloaders/PlainText/PlainText.ts @@ -1,6 +1,6 @@ import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { TextSplitter } from 'langchain/text_splitter' -import { Document } from 'langchain/document' +import { Document } from '@langchain/core/documents' import { handleEscapeCharacters } from '../../../src' class PlainText_DocumentLoaders implements INode { diff --git a/packages/components/nodes/documentloaders/Subtitles/Subtitles.ts b/packages/components/nodes/documentloaders/Subtitles/Subtitles.ts deleted file mode 100644 index f85898b3..00000000 --- a/packages/components/nodes/documentloaders/Subtitles/Subtitles.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { INode, INodeData, INodeParams } from '../../../src/Interface' -import { TextSplitter } from 'langchain/text_splitter' -import { SRTLoader } from 'langchain/document_loaders/fs/srt' - -class Subtitles_DocumentLoaders implements INode { - label: string - name: string - version: number - description: string - type: string - icon: string - category: string - baseClasses: string[] - inputs: INodeParams[] - - constructor() { - this.label = 'Subtitles File' - this.name = 'subtitlesFile' - this.version = 1.0 - this.type = 'Document' - this.icon = 'subtitlesFile.svg' - this.category = 'Document Loaders' - this.description = `Load data from subtitles files` - this.baseClasses = [this.type] - this.inputs = [ - { - label: 'Subtitles File', - name: 'subtitlesFile', - type: 'file', - fileType: '.srt' - }, - { - label: 'Text Splitter', - name: 'textSplitter', - type: 'TextSplitter', - optional: true - }, - { - label: 'Metadata', - name: 'metadata', - type: 'json', - optional: true, - additionalParams: true - } - ] - } - - async init(nodeData: INodeData): Promise { - const textSplitter = nodeData.inputs?.textSplitter as TextSplitter - const subtitlesFileBase64 = nodeData.inputs?.subtitlesFile as string - const metadata = nodeData.inputs?.metadata - - let alldocs = [] - let files: string[] = [] - - if (subtitlesFileBase64.startsWith('[') && subtitlesFileBase64.endsWith(']')) { - files = JSON.parse(subtitlesFileBase64) - } else { - files = [subtitlesFileBase64] - } - - for (const file of files) { - const splitDataURI = file.split(',') - splitDataURI.pop() - const bf = Buffer.from(splitDataURI.pop() || '', 'base64') - const blob = new Blob([bf]) - const loader = new SRTLoader(blob) - - if (textSplitter) { - const docs = await loader.loadAndSplit(textSplitter) - alldocs.push(...docs) - } else { - const docs = await loader.load() - alldocs.push(...docs) - } - } - - if (metadata) { - const parsedMetadata = typeof metadata === 'object' ? metadata : JSON.parse(metadata) - let finaldocs = [] - for (const doc of alldocs) { - const newdoc = { - ...doc, - metadata: { - ...doc.metadata, - ...parsedMetadata - } - } - finaldocs.push(newdoc) - } - return finaldocs - } - return alldocs - } -} - -module.exports = { nodeClass: Subtitles_DocumentLoaders } diff --git a/packages/components/nodes/documentloaders/Subtitles/subtitlesFile.svg b/packages/components/nodes/documentloaders/Subtitles/subtitlesFile.svg deleted file mode 100644 index 251f51e4..00000000 --- a/packages/components/nodes/documentloaders/Subtitles/subtitlesFile.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/packages/components/nodes/documentloaders/Text/Text.ts b/packages/components/nodes/documentloaders/Text/Text.ts index e41c5a9f..a9ba0ad2 100644 --- a/packages/components/nodes/documentloaders/Text/Text.ts +++ b/packages/components/nodes/documentloaders/Text/Text.ts @@ -1,7 +1,7 @@ import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { TextSplitter } from 'langchain/text_splitter' import { TextLoader } from 'langchain/document_loaders/fs/text' -import { Document } from 'langchain/document' +import { Document } from '@langchain/core/documents' import { handleEscapeCharacters } from '../../../src' class Text_DocumentLoaders implements INode { diff --git a/packages/components/nodes/documentloaders/VectorStoreToDocument/VectorStoreToDocument.ts b/packages/components/nodes/documentloaders/VectorStoreToDocument/VectorStoreToDocument.ts index becd0ac6..b991004c 100644 --- a/packages/components/nodes/documentloaders/VectorStoreToDocument/VectorStoreToDocument.ts +++ b/packages/components/nodes/documentloaders/VectorStoreToDocument/VectorStoreToDocument.ts @@ -1,4 +1,4 @@ -import { VectorStore } from 'langchain/vectorstores/base' +import { VectorStore } from '@langchain/core/vectorstores' import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { handleEscapeCharacters } from '../../../src/utils' diff --git a/packages/components/nodes/embeddings/AWSBedrockEmbedding/AWSBedrockEmbedding.ts b/packages/components/nodes/embeddings/AWSBedrockEmbedding/AWSBedrockEmbedding.ts index d7445c30..21a2840c 100644 --- a/packages/components/nodes/embeddings/AWSBedrockEmbedding/AWSBedrockEmbedding.ts +++ b/packages/components/nodes/embeddings/AWSBedrockEmbedding/AWSBedrockEmbedding.ts @@ -1,7 +1,7 @@ +import { BedrockRuntimeClient, InvokeModelCommand } from '@aws-sdk/client-bedrock-runtime' +import { BedrockEmbeddings, BedrockEmbeddingsParams } from '@langchain/community/embeddings/bedrock' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { BedrockEmbeddings, BedrockEmbeddingsParams } from 'langchain/embeddings/bedrock' -import { BedrockRuntimeClient, InvokeModelCommand } from '@aws-sdk/client-bedrock-runtime' class AWSBedrockEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts index b70caa4c..c77f79f6 100644 --- a/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts +++ b/packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts @@ -1,7 +1,6 @@ -import { AzureOpenAIInput } from 'langchain/chat_models/openai' +import { AzureOpenAIInput, OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from 'langchain/embeddings/openai' class AzureOpenAIEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/CohereEmbedding/CohereEmbedding.ts b/packages/components/nodes/embeddings/CohereEmbedding/CohereEmbedding.ts index 92d0fe7d..ac249460 100644 --- a/packages/components/nodes/embeddings/CohereEmbedding/CohereEmbedding.ts +++ b/packages/components/nodes/embeddings/CohereEmbedding/CohereEmbedding.ts @@ -1,6 +1,6 @@ +import { CohereEmbeddings, CohereEmbeddingsParams } from '@langchain/cohere' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { CohereEmbeddings, CohereEmbeddingsParams } from 'langchain/embeddings/cohere' class CohereEmbedding_Embeddings implements INode { label: string @@ -64,7 +64,7 @@ class CohereEmbedding_Embeddings implements INode { apiKey: cohereApiKey } - if (modelName) obj.modelName = modelName + if (modelName) obj.model = modelName const model = new CohereEmbeddings(obj) return model diff --git a/packages/components/nodes/embeddings/GooglePaLMEmbedding/GooglePaLMEmbedding.ts b/packages/components/nodes/embeddings/GooglePaLMEmbedding/GooglePaLMEmbedding.ts index d003a928..01087161 100644 --- a/packages/components/nodes/embeddings/GooglePaLMEmbedding/GooglePaLMEmbedding.ts +++ b/packages/components/nodes/embeddings/GooglePaLMEmbedding/GooglePaLMEmbedding.ts @@ -1,6 +1,6 @@ +import { GooglePaLMEmbeddings, GooglePaLMEmbeddingsParams } from '@langchain/community/embeddings/googlepalm' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { GooglePaLMEmbeddings, GooglePaLMEmbeddingsParams } from 'langchain/embeddings/googlepalm' class GooglePaLMEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/GoogleVertexAIEmbedding/GoogleVertexAIEmbedding.ts b/packages/components/nodes/embeddings/GoogleVertexAIEmbedding/GoogleVertexAIEmbedding.ts index e60f688d..b6da7ded 100644 --- a/packages/components/nodes/embeddings/GoogleVertexAIEmbedding/GoogleVertexAIEmbedding.ts +++ b/packages/components/nodes/embeddings/GoogleVertexAIEmbedding/GoogleVertexAIEmbedding.ts @@ -1,7 +1,7 @@ -import { GoogleVertexAIEmbeddings, GoogleVertexAIEmbeddingsParams } from 'langchain/embeddings/googlevertexai' +import { GoogleAuthOptions } from 'google-auth-library' +import { GoogleVertexAIEmbeddings, GoogleVertexAIEmbeddingsParams } from '@langchain/community/embeddings/googlevertexai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { GoogleAuthOptions } from 'google-auth-library' class GoogleVertexAIEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/core.ts b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/core.ts index c75658d4..49e6efa4 100644 --- a/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/core.ts +++ b/packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/core.ts @@ -1,5 +1,5 @@ import { HfInference } from '@huggingface/inference' -import { Embeddings, EmbeddingsParams } from 'langchain/embeddings/base' +import { Embeddings, EmbeddingsParams } from '@langchain/core/embeddings' import { getEnvironmentVariable } from '../../../src/utils' export interface HuggingFaceInferenceEmbeddingsParams extends EmbeddingsParams { diff --git a/packages/components/nodes/embeddings/LocalAIEmbedding/LocalAIEmbedding.ts b/packages/components/nodes/embeddings/LocalAIEmbedding/LocalAIEmbedding.ts index 24efaf8c..46820c21 100644 --- a/packages/components/nodes/embeddings/LocalAIEmbedding/LocalAIEmbedding.ts +++ b/packages/components/nodes/embeddings/LocalAIEmbedding/LocalAIEmbedding.ts @@ -1,6 +1,6 @@ +import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from 'langchain/embeddings/openai' class LocalAIEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/MistralEmbedding/MistralEmbedding.ts b/packages/components/nodes/embeddings/MistralEmbedding/MistralEmbedding.ts index 9ad63533..a5574788 100644 --- a/packages/components/nodes/embeddings/MistralEmbedding/MistralEmbedding.ts +++ b/packages/components/nodes/embeddings/MistralEmbedding/MistralEmbedding.ts @@ -1,6 +1,6 @@ +import { MistralAIEmbeddings, MistralAIEmbeddingsParams } from '@langchain/mistralai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { MistralAIEmbeddings, MistralAIEmbeddingsParams } from '@langchain/mistralai' class MistralEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/OllamaEmbedding/OllamaEmbedding.ts b/packages/components/nodes/embeddings/OllamaEmbedding/OllamaEmbedding.ts index 8892b03f..690a1c0c 100644 --- a/packages/components/nodes/embeddings/OllamaEmbedding/OllamaEmbedding.ts +++ b/packages/components/nodes/embeddings/OllamaEmbedding/OllamaEmbedding.ts @@ -1,7 +1,7 @@ +import { OllamaEmbeddings } from '@langchain/community/embeddings/ollama' +import { OllamaInput } from 'langchain/llms/ollama' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { OllamaInput } from 'langchain/llms/ollama' -import { OllamaEmbeddings } from 'langchain/embeddings/ollama' class OllamaEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding.ts b/packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding.ts index b3d0045b..4ddabe11 100644 --- a/packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding.ts +++ b/packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding.ts @@ -1,6 +1,6 @@ +import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from 'langchain/embeddings/openai' class OpenAIEmbedding_Embeddings implements INode { label: string diff --git a/packages/components/nodes/embeddings/OpenAIEmbeddingCustom/OpenAIEmbeddingCustom.ts b/packages/components/nodes/embeddings/OpenAIEmbeddingCustom/OpenAIEmbeddingCustom.ts index 9bf87f6b..421f1a2d 100644 --- a/packages/components/nodes/embeddings/OpenAIEmbeddingCustom/OpenAIEmbeddingCustom.ts +++ b/packages/components/nodes/embeddings/OpenAIEmbeddingCustom/OpenAIEmbeddingCustom.ts @@ -1,6 +1,6 @@ +import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAIEmbeddings, OpenAIEmbeddingsParams } from 'langchain/embeddings/openai' class OpenAIEmbeddingCustom_Embeddings implements INode { label: string diff --git a/packages/components/nodes/llms/AWSBedrock/AWSBedrock.ts b/packages/components/nodes/llms/AWSBedrock/AWSBedrock.ts index 0fa417b4..a22265e3 100644 --- a/packages/components/nodes/llms/AWSBedrock/AWSBedrock.ts +++ b/packages/components/nodes/llms/AWSBedrock/AWSBedrock.ts @@ -1,9 +1,9 @@ +import { Bedrock } from '@langchain/community/llms/bedrock' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' +import { BaseBedrockInput } from 'langchain/dist/util/bedrock' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { Bedrock } from 'langchain/llms/bedrock' -import { BaseBedrockInput } from 'langchain/dist/util/bedrock' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' /** * I had to run the following to build the component diff --git a/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts b/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts index a8ac8830..6badb4ec 100644 --- a/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts +++ b/packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts @@ -1,8 +1,9 @@ +import { AzureOpenAIInput, OpenAI, OpenAIInput } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { AzureOpenAIInput, OpenAI, OpenAIInput } from 'langchain/llms/openai' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' + class AzureOpenAI_LLMs implements INode { label: string name: string diff --git a/packages/components/nodes/llms/Bittensor/Bittensor.ts b/packages/components/nodes/llms/Bittensor/Bittensor.ts index 68652828..3641a720 100644 --- a/packages/components/nodes/llms/Bittensor/Bittensor.ts +++ b/packages/components/nodes/llms/Bittensor/Bittensor.ts @@ -1,8 +1,8 @@ +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' +import { NIBittensorLLM, BittensorInput } from 'langchain/experimental/llms/bittensor' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { NIBittensorLLM, BittensorInput } from 'langchain/experimental/llms/bittensor' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class Bittensor_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/Cohere/Cohere.ts b/packages/components/nodes/llms/Cohere/Cohere.ts index 1760b10d..d3b0dc49 100644 --- a/packages/components/nodes/llms/Cohere/Cohere.ts +++ b/packages/components/nodes/llms/Cohere/Cohere.ts @@ -1,7 +1,7 @@ +import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { Cohere, CohereInput } from './core' -import { BaseCache } from 'langchain/schema' class Cohere_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/Cohere/core.ts b/packages/components/nodes/llms/Cohere/core.ts index 97c81571..30c5e240 100644 --- a/packages/components/nodes/llms/Cohere/core.ts +++ b/packages/components/nodes/llms/Cohere/core.ts @@ -1,4 +1,4 @@ -import { LLM, BaseLLMParams } from 'langchain/llms/base' +import { LLM, BaseLLMParams } from '@langchain/core/language_models/llms' export interface CohereInput extends BaseLLMParams { /** Sampling temperature to use */ diff --git a/packages/components/nodes/llms/GooglePaLM/GooglePaLM.ts b/packages/components/nodes/llms/GooglePaLM/GooglePaLM.ts index d22b70f7..4dfa626a 100644 --- a/packages/components/nodes/llms/GooglePaLM/GooglePaLM.ts +++ b/packages/components/nodes/llms/GooglePaLM/GooglePaLM.ts @@ -1,7 +1,8 @@ +import { GooglePaLM, GooglePaLMTextInput } from '@langchain/community/llms/googlepalm' +import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { GooglePaLM, GooglePaLMTextInput } from 'langchain/llms/googlepalm' -import { BaseCache } from 'langchain/schema' + class GooglePaLM_LLMs implements INode { label: string name: string diff --git a/packages/components/nodes/llms/GoogleVertexAI/GoogleVertexAI.ts b/packages/components/nodes/llms/GoogleVertexAI/GoogleVertexAI.ts index f3f807f8..634212d3 100644 --- a/packages/components/nodes/llms/GoogleVertexAI/GoogleVertexAI.ts +++ b/packages/components/nodes/llms/GoogleVertexAI/GoogleVertexAI.ts @@ -1,8 +1,8 @@ +import { GoogleAuthOptions } from 'google-auth-library' +import { BaseCache } from '@langchain/core/caches' +import { GoogleVertexAI, GoogleVertexAITextInput } from '@langchain/community/llms/googlevertexai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { GoogleVertexAI, GoogleVertexAITextInput } from 'langchain/llms/googlevertexai' -import { GoogleAuthOptions } from 'google-auth-library' -import { BaseCache } from 'langchain/schema' class GoogleVertexAI_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/HuggingFaceInference/HuggingFaceInference.ts b/packages/components/nodes/llms/HuggingFaceInference/HuggingFaceInference.ts index 17260e9b..92d9d723 100644 --- a/packages/components/nodes/llms/HuggingFaceInference/HuggingFaceInference.ts +++ b/packages/components/nodes/llms/HuggingFaceInference/HuggingFaceInference.ts @@ -1,7 +1,7 @@ +import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { HFInput, HuggingFaceInference } from './core' -import { BaseCache } from 'langchain/schema' class HuggingFaceInference_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/HuggingFaceInference/core.ts b/packages/components/nodes/llms/HuggingFaceInference/core.ts index 416567f0..0d74bbe7 100644 --- a/packages/components/nodes/llms/HuggingFaceInference/core.ts +++ b/packages/components/nodes/llms/HuggingFaceInference/core.ts @@ -1,5 +1,5 @@ +import { LLM, BaseLLMParams } from '@langchain/core/language_models/llms' import { getEnvironmentVariable } from '../../../src/utils' -import { LLM, BaseLLMParams } from 'langchain/llms/base' export interface HFInput { /** Model to use */ diff --git a/packages/components/nodes/llms/Ollama/Ollama.ts b/packages/components/nodes/llms/Ollama/Ollama.ts index 385890c9..e87d08a1 100644 --- a/packages/components/nodes/llms/Ollama/Ollama.ts +++ b/packages/components/nodes/llms/Ollama/Ollama.ts @@ -1,8 +1,8 @@ +import { Ollama, OllamaInput } from '@langchain/community/llms/ollama' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { Ollama, OllamaInput } from 'langchain/llms/ollama' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class Ollama_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/OpenAI/OpenAI.ts b/packages/components/nodes/llms/OpenAI/OpenAI.ts index f2a2a85f..d777e817 100644 --- a/packages/components/nodes/llms/OpenAI/OpenAI.ts +++ b/packages/components/nodes/llms/OpenAI/OpenAI.ts @@ -1,8 +1,8 @@ +import { OpenAI, OpenAIInput } from '@langchain/openai' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { OpenAI, OpenAIInput } from 'langchain/llms/openai' -import { BaseLLMParams } from 'langchain/llms/base' -import { BaseCache } from 'langchain/schema' class OpenAI_LLMs implements INode { label: string diff --git a/packages/components/nodes/llms/Replicate/Replicate.ts b/packages/components/nodes/llms/Replicate/Replicate.ts index fd5373a1..bd6df3d2 100644 --- a/packages/components/nodes/llms/Replicate/Replicate.ts +++ b/packages/components/nodes/llms/Replicate/Replicate.ts @@ -1,8 +1,8 @@ +import { Replicate, ReplicateInput } from '@langchain/community/llms/replicate' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { Replicate, ReplicateInput } from 'langchain/llms/replicate' -import { BaseCache } from 'langchain/schema' -import { BaseLLMParams } from 'langchain/llms/base' class Replicate_LLMs implements INode { label: string diff --git a/packages/components/nodes/memory/BufferMemory/BufferMemory.ts b/packages/components/nodes/memory/BufferMemory/BufferMemory.ts index 4a6252b5..620183fa 100644 --- a/packages/components/nodes/memory/BufferMemory/BufferMemory.ts +++ b/packages/components/nodes/memory/BufferMemory/BufferMemory.ts @@ -1,7 +1,7 @@ import { FlowiseMemory, IMessage, INode, INodeData, INodeParams, MemoryMethods } from '../../../src/Interface' import { convertBaseMessagetoIMessage, getBaseClasses } from '../../../src/utils' import { BufferMemory, BufferMemoryInput } from 'langchain/memory' -import { BaseMessage } from 'langchain/schema' +import { BaseMessage } from '@langchain/core/messages' class BufferMemory_Memory implements INode { label: string diff --git a/packages/components/nodes/memory/BufferWindowMemory/BufferWindowMemory.ts b/packages/components/nodes/memory/BufferWindowMemory/BufferWindowMemory.ts index c21405a4..754c2e8a 100644 --- a/packages/components/nodes/memory/BufferWindowMemory/BufferWindowMemory.ts +++ b/packages/components/nodes/memory/BufferWindowMemory/BufferWindowMemory.ts @@ -1,7 +1,7 @@ import { FlowiseWindowMemory, IMessage, INode, INodeData, INodeParams, MemoryMethods } from '../../../src/Interface' import { convertBaseMessagetoIMessage, getBaseClasses } from '../../../src/utils' import { BufferWindowMemory, BufferWindowMemoryInput } from 'langchain/memory' -import { BaseMessage } from 'langchain/schema' +import { BaseMessage } from '@langchain/core/messages' class BufferWindowMemory_Memory implements INode { label: string diff --git a/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts b/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts index 45d39326..c3b3df91 100644 --- a/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts +++ b/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts @@ -2,7 +2,7 @@ import { FlowiseSummaryMemory, IMessage, INode, INodeData, INodeParams, MemoryMe import { convertBaseMessagetoIMessage, getBaseClasses } from '../../../src/utils' import { ConversationSummaryMemory, ConversationSummaryMemoryInput } from 'langchain/memory' import { BaseLanguageModel } from 'langchain/base_language' -import { BaseMessage } from 'langchain/schema' +import { BaseMessage } from '@langchain/core/messages' class ConversationSummaryMemory_Memory implements INode { label: string diff --git a/packages/components/nodes/memory/DynamoDb/DynamoDb.ts b/packages/components/nodes/memory/DynamoDb/DynamoDb.ts index 91c1d369..e877db0e 100644 --- a/packages/components/nodes/memory/DynamoDb/DynamoDb.ts +++ b/packages/components/nodes/memory/DynamoDb/DynamoDb.ts @@ -9,9 +9,9 @@ import { DeleteItemCommandInput, AttributeValue } from '@aws-sdk/client-dynamodb' -import { DynamoDBChatMessageHistory } from 'langchain/stores/message/dynamodb' +import { DynamoDBChatMessageHistory } from '@langchain/community/stores/message/dynamodb' +import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, StoredMessage, BaseMessage } from '@langchain/core/messages' import { BufferMemory, BufferMemoryInput } from 'langchain/memory' -import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, StoredMessage, BaseMessage } from 'langchain/schema' import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, MemoryMethods, MessageType } from '../../../src/Interface' diff --git a/packages/components/nodes/memory/MongoDBMemory/MongoDBMemory.ts b/packages/components/nodes/memory/MongoDBMemory/MongoDBMemory.ts index c593c20d..f5156c8d 100644 --- a/packages/components/nodes/memory/MongoDBMemory/MongoDBMemory.ts +++ b/packages/components/nodes/memory/MongoDBMemory/MongoDBMemory.ts @@ -1,7 +1,7 @@ import { MongoClient, Collection, Document } from 'mongodb' -import { MongoDBChatMessageHistory } from 'langchain/stores/message/mongodb' +import { MongoDBChatMessageHistory } from '@langchain/community/stores/message/mongodb' import { BufferMemory, BufferMemoryInput } from 'langchain/memory' -import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, BaseMessage } from 'langchain/schema' +import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, BaseMessage } from '@langchain/core/messages' import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { FlowiseMemory, ICommonObject, IMessage, INode, INodeData, INodeParams, MemoryMethods, MessageType } from '../../../src/Interface' diff --git a/packages/components/nodes/memory/MotorheadMemory/MotorheadMemory.ts b/packages/components/nodes/memory/MotorheadMemory/MotorheadMemory.ts index 19506fc1..a506bfed 100644 --- a/packages/components/nodes/memory/MotorheadMemory/MotorheadMemory.ts +++ b/packages/components/nodes/memory/MotorheadMemory/MotorheadMemory.ts @@ -3,7 +3,7 @@ import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCre import { ICommonObject } from '../../../src' import { MotorheadMemory, MotorheadMemoryInput, InputValues, OutputValues } from 'langchain/memory' import fetch from 'node-fetch' -import { AIMessage, BaseMessage, ChatMessage, HumanMessage } from 'langchain/schema' +import { AIMessage, BaseMessage, ChatMessage, HumanMessage } from '@langchain/core/messages' type MotorheadMessage = { content: string diff --git a/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts b/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts index baf4ea6b..e831ca89 100644 --- a/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts +++ b/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts @@ -1,7 +1,7 @@ import { Redis } from 'ioredis' import { BufferMemory, BufferMemoryInput } from 'langchain/memory' -import { RedisChatMessageHistory, RedisChatMessageHistoryInput } from 'langchain/stores/message/ioredis' -import { mapStoredMessageToChatMessage, BaseMessage, AIMessage, HumanMessage } from 'langchain/schema' +import { RedisChatMessageHistory, RedisChatMessageHistoryInput } from '@langchain/community/stores/message/ioredis' +import { mapStoredMessageToChatMessage, BaseMessage, AIMessage, HumanMessage } from '@langchain/core/messages' import { INode, INodeData, INodeParams, ICommonObject, MessageType, IMessage, MemoryMethods, FlowiseMemory } from '../../../src/Interface' import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/memory/UpstashRedisBackedChatMemory/UpstashRedisBackedChatMemory.ts b/packages/components/nodes/memory/UpstashRedisBackedChatMemory/UpstashRedisBackedChatMemory.ts index 3d7f6dbf..4f250f9f 100644 --- a/packages/components/nodes/memory/UpstashRedisBackedChatMemory/UpstashRedisBackedChatMemory.ts +++ b/packages/components/nodes/memory/UpstashRedisBackedChatMemory/UpstashRedisBackedChatMemory.ts @@ -1,7 +1,7 @@ import { Redis } from '@upstash/redis' import { BufferMemory, BufferMemoryInput } from 'langchain/memory' -import { UpstashRedisChatMessageHistory } from 'langchain/stores/message/upstash_redis' -import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, StoredMessage, BaseMessage } from 'langchain/schema' +import { UpstashRedisChatMessageHistory } from '@langchain/community/stores/message/upstash_redis' +import { mapStoredMessageToChatMessage, AIMessage, HumanMessage, StoredMessage, BaseMessage } from '@langchain/core/messages' import { FlowiseMemory, IMessage, INode, INodeData, INodeParams, MemoryMethods, MessageType } from '../../../src/Interface' import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ICommonObject } from '../../../src/Interface' diff --git a/packages/components/nodes/memory/ZepMemory/ZepMemory.ts b/packages/components/nodes/memory/ZepMemory/ZepMemory.ts index 597eee8a..affafd07 100644 --- a/packages/components/nodes/memory/ZepMemory/ZepMemory.ts +++ b/packages/components/nodes/memory/ZepMemory/ZepMemory.ts @@ -1,9 +1,8 @@ -import { IMessage, INode, INodeData, INodeParams, MemoryMethods, MessageType } from '../../../src/Interface' -import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { ZepMemory, ZepMemoryInput } from 'langchain/memory/zep' -import { ICommonObject } from '../../../src' +import { ZepMemory, ZepMemoryInput } from '@langchain/community/memory/zep' +import { BaseMessage } from '@langchain/core/messages' import { InputValues, MemoryVariables, OutputValues } from 'langchain/memory' -import { BaseMessage } from 'langchain/schema' +import { IMessage, INode, INodeData, INodeParams, MemoryMethods, MessageType, ICommonObject } from '../../../src/Interface' +import { convertBaseMessagetoIMessage, getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class ZepMemory_Memory implements INode { label: string diff --git a/packages/components/nodes/moderation/OpenAIModeration/OpenAIModeration.ts b/packages/components/nodes/moderation/OpenAIModeration/OpenAIModeration.ts index 8f780605..734c57ec 100644 --- a/packages/components/nodes/moderation/OpenAIModeration/OpenAIModeration.ts +++ b/packages/components/nodes/moderation/OpenAIModeration/OpenAIModeration.ts @@ -1,7 +1,7 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src' import { Moderation } from '../Moderation' import { OpenAIModerationRunner } from './OpenAIModerationRunner' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src' class OpenAIModeration implements INode { label: string diff --git a/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModeration.ts b/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModeration.ts index ad3cfadd..af7458c0 100644 --- a/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModeration.ts +++ b/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModeration.ts @@ -2,7 +2,7 @@ import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src' import { Moderation } from '../Moderation' import { SimplePromptModerationRunner } from './SimplePromptModerationRunner' -import { BaseChatModel } from 'langchain/chat_models/base' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' class SimplePromptModeration implements INode { label: string diff --git a/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModerationRunner.ts b/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModerationRunner.ts index c9a11643..65726afb 100644 --- a/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModerationRunner.ts +++ b/packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModerationRunner.ts @@ -1,5 +1,5 @@ import { Moderation } from '../Moderation' -import { BaseChatModel } from 'langchain/chat_models/base' +import { BaseChatModel } from '@langchain/core/language_models/chat_models' export class SimplePromptModerationRunner implements Moderation { private readonly denyList: string = '' diff --git a/packages/components/nodes/outputparsers/CSVListOutputParser/CSVListOutputParser.ts b/packages/components/nodes/outputparsers/CSVListOutputParser/CSVListOutputParser.ts index 7b3e7e67..00528a5f 100644 --- a/packages/components/nodes/outputparsers/CSVListOutputParser/CSVListOutputParser.ts +++ b/packages/components/nodes/outputparsers/CSVListOutputParser/CSVListOutputParser.ts @@ -1,6 +1,5 @@ +import { BaseOutputParser, CommaSeparatedListOutputParser } from '@langchain/core/output_parsers' import { getBaseClasses, INode, INodeData, INodeParams } from '../../../src' -import { BaseOutputParser } from 'langchain/schema/output_parser' -import { CommaSeparatedListOutputParser } from 'langchain/output_parsers' import { CATEGORY } from '../OutputParserHelpers' class CSVListOutputParser implements INode { diff --git a/packages/components/nodes/outputparsers/CustomListOutputParser/CustomListOutputParser.ts b/packages/components/nodes/outputparsers/CustomListOutputParser/CustomListOutputParser.ts index d420a88d..8567324a 100644 --- a/packages/components/nodes/outputparsers/CustomListOutputParser/CustomListOutputParser.ts +++ b/packages/components/nodes/outputparsers/CustomListOutputParser/CustomListOutputParser.ts @@ -1,7 +1,6 @@ -import { getBaseClasses, INode, INodeData, INodeParams } from '../../../src' -import { BaseOutputParser } from 'langchain/schema/output_parser' -import { CustomListOutputParser as LangchainCustomListOutputParser } from 'langchain/output_parsers' +import { BaseOutputParser, CustomListOutputParser as LangchainCustomListOutputParser } from '@langchain/core/output_parsers' import { CATEGORY } from '../OutputParserHelpers' +import { getBaseClasses, INode, INodeData, INodeParams } from '../../../src' class CustomListOutputParser implements INode { label: string diff --git a/packages/components/nodes/outputparsers/OutputParserHelpers.ts b/packages/components/nodes/outputparsers/OutputParserHelpers.ts index 8ea77e6b..f68b3c42 100644 --- a/packages/components/nodes/outputparsers/OutputParserHelpers.ts +++ b/packages/components/nodes/outputparsers/OutputParserHelpers.ts @@ -1,8 +1,8 @@ -import { BaseOutputParser } from 'langchain/schema/output_parser' +import { BaseOutputParser } from '@langchain/core/output_parsers' +import { ChatPromptTemplate, FewShotPromptTemplate, PromptTemplate, SystemMessagePromptTemplate } from '@langchain/core/prompts' +import { BaseLanguageModel, BaseLanguageModelCallOptions } from '@langchain/core/language_models/base' import { LLMChain } from 'langchain/chains' -import { BaseLanguageModel, BaseLanguageModelCallOptions } from 'langchain/base_language' import { ICommonObject } from '../../src' -import { ChatPromptTemplate, FewShotPromptTemplate, PromptTemplate, SystemMessagePromptTemplate } from 'langchain/prompts' export const CATEGORY = 'Output Parsers' diff --git a/packages/components/nodes/outputparsers/StructuredOutputParser/StructuredOutputParser.ts b/packages/components/nodes/outputparsers/StructuredOutputParser/StructuredOutputParser.ts index fc28fd1c..2d12a4f5 100644 --- a/packages/components/nodes/outputparsers/StructuredOutputParser/StructuredOutputParser.ts +++ b/packages/components/nodes/outputparsers/StructuredOutputParser/StructuredOutputParser.ts @@ -1,8 +1,8 @@ -import { convertSchemaToZod, getBaseClasses, INode, INodeData, INodeParams } from '../../../src' -import { BaseOutputParser } from 'langchain/schema/output_parser' +import { z } from 'zod' +import { BaseOutputParser } from '@langchain/core/output_parsers' import { StructuredOutputParser as LangchainStructuredOutputParser } from 'langchain/output_parsers' import { CATEGORY } from '../OutputParserHelpers' -import { z } from 'zod' +import { convertSchemaToZod, getBaseClasses, INode, INodeData, INodeParams } from '../../../src' class StructuredOutputParser implements INode { label: string diff --git a/packages/components/nodes/prompts/ChatPromptTemplate/ChatPromptTemplate.ts b/packages/components/nodes/prompts/ChatPromptTemplate/ChatPromptTemplate.ts index de86413c..5d84b451 100644 --- a/packages/components/nodes/prompts/ChatPromptTemplate/ChatPromptTemplate.ts +++ b/packages/components/nodes/prompts/ChatPromptTemplate/ChatPromptTemplate.ts @@ -1,6 +1,6 @@ import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate } from 'langchain/prompts' +import { ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate } from '@langchain/core/prompts' class ChatPromptTemplate_Prompts implements INode { label: string diff --git a/packages/components/nodes/prompts/FewShotPromptTemplate/FewShotPromptTemplate.ts b/packages/components/nodes/prompts/FewShotPromptTemplate/FewShotPromptTemplate.ts index a1a2afc2..f2d9c0fa 100644 --- a/packages/components/nodes/prompts/FewShotPromptTemplate/FewShotPromptTemplate.ts +++ b/packages/components/nodes/prompts/FewShotPromptTemplate/FewShotPromptTemplate.ts @@ -1,8 +1,7 @@ import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getInputVariables } from '../../../src/utils' -import { FewShotPromptTemplate, FewShotPromptTemplateInput, PromptTemplate } from 'langchain/prompts' -import { Example } from 'langchain/schema' -import { TemplateFormat } from 'langchain/dist/prompts/template' +import { FewShotPromptTemplate, FewShotPromptTemplateInput, PromptTemplate, TemplateFormat } from '@langchain/core/prompts' +import type { Example } from '@langchain/core/prompts' class FewShotPromptTemplate_Prompts implements INode { label: string diff --git a/packages/components/nodes/prompts/PromptTemplate/PromptTemplate.ts b/packages/components/nodes/prompts/PromptTemplate/PromptTemplate.ts index f28d6976..7ecf37d1 100644 --- a/packages/components/nodes/prompts/PromptTemplate/PromptTemplate.ts +++ b/packages/components/nodes/prompts/PromptTemplate/PromptTemplate.ts @@ -1,6 +1,6 @@ import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface' import { getBaseClasses, getInputVariables } from '../../../src/utils' -import { PromptTemplateInput } from 'langchain/prompts' +import { PromptTemplateInput } from '@langchain/core/prompts' class PromptTemplate_Prompts implements INode { label: string diff --git a/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerank.ts b/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerank.ts index f74b8365..b25f5d85 100644 --- a/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerank.ts +++ b/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerank.ts @@ -1,7 +1,8 @@ -import { Callbacks } from 'langchain/callbacks' -import { Document } from 'langchain/document' -import { BaseDocumentCompressor } from 'langchain/retrievers/document_compressors' import axios from 'axios' +import { Callbacks } from '@langchain/core/callbacks/manager' +import { Document } from '@langchain/core/documents' +import { BaseDocumentCompressor } from 'langchain/retrievers/document_compressors' + export class CohereRerank extends BaseDocumentCompressor { private cohereAPIKey: any private COHERE_API_URL = 'https://api.cohere.ai/v1/rerank' diff --git a/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerankRetriever.ts b/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerankRetriever.ts index 442fdc7a..cbb4622e 100644 --- a/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerankRetriever.ts +++ b/packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerankRetriever.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { BaseRetriever } from 'langchain/schema/retriever' +import { BaseRetriever } from '@langchain/core/retrievers' +import { VectorStoreRetriever } from '@langchain/core/vectorstores' import { ContextualCompressionRetriever } from 'langchain/retrievers/contextual_compression' -import { getCredentialData, getCredentialParam, handleEscapeCharacters } from '../../../src' import { CohereRerank } from './CohereRerank' -import { VectorStoreRetriever } from 'langchain/vectorstores/base' +import { getCredentialData, getCredentialParam, handleEscapeCharacters } from '../../../src' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class CohereRerankRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/EmbeddingsFilterRetriever/EmbeddingsFilterRetriever.ts b/packages/components/nodes/retrievers/EmbeddingsFilterRetriever/EmbeddingsFilterRetriever.ts index d1049fa4..30c539ef 100644 --- a/packages/components/nodes/retrievers/EmbeddingsFilterRetriever/EmbeddingsFilterRetriever.ts +++ b/packages/components/nodes/retrievers/EmbeddingsFilterRetriever/EmbeddingsFilterRetriever.ts @@ -1,9 +1,9 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { BaseRetriever } from 'langchain/schema/retriever' -import { Embeddings } from 'langchain/embeddings/base' +import { BaseRetriever } from '@langchain/core/retrievers' +import { Embeddings } from '@langchain/core/embeddings' import { ContextualCompressionRetriever } from 'langchain/retrievers/contextual_compression' import { EmbeddingsFilter } from 'langchain/retrievers/document_compressors/embeddings_filter' import { handleEscapeCharacters } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class EmbeddingsFilterRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/HydeRetriever/HydeRetriever.ts b/packages/components/nodes/retrievers/HydeRetriever/HydeRetriever.ts index 10fff764..ffdff70c 100644 --- a/packages/components/nodes/retrievers/HydeRetriever/HydeRetriever.ts +++ b/packages/components/nodes/retrievers/HydeRetriever/HydeRetriever.ts @@ -1,9 +1,9 @@ -import { VectorStore } from 'langchain/vectorstores/base' -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { VectorStore } from '@langchain/core/vectorstores' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { PromptTemplate } from '@langchain/core/prompts' import { HydeRetriever, HydeRetrieverOptions, PromptKey } from 'langchain/retrievers/hyde' -import { BaseLanguageModel } from 'langchain/base_language' -import { PromptTemplate } from 'langchain/prompts' import { handleEscapeCharacters } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class HydeRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/LLMFilterRetriever/LLMFilterCompressionRetriever.ts b/packages/components/nodes/retrievers/LLMFilterRetriever/LLMFilterCompressionRetriever.ts index 6b710cf3..2350d173 100644 --- a/packages/components/nodes/retrievers/LLMFilterRetriever/LLMFilterCompressionRetriever.ts +++ b/packages/components/nodes/retrievers/LLMFilterRetriever/LLMFilterCompressionRetriever.ts @@ -1,9 +1,9 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { BaseRetriever } from 'langchain/schema/retriever' +import { BaseRetriever } from '@langchain/core/retrievers' +import { BaseLanguageModel } from '@langchain/core/language_models/base' import { ContextualCompressionRetriever } from 'langchain/retrievers/contextual_compression' -import { BaseLanguageModel } from 'langchain/base_language' import { LLMChainExtractor } from 'langchain/retrievers/document_compressors/chain_extract' import { handleEscapeCharacters } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class LLMFilterCompressionRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/RRFRetriever/RRFRetriever.ts b/packages/components/nodes/retrievers/RRFRetriever/RRFRetriever.ts index ed15ed24..c4268f2f 100644 --- a/packages/components/nodes/retrievers/RRFRetriever/RRFRetriever.ts +++ b/packages/components/nodes/retrievers/RRFRetriever/RRFRetriever.ts @@ -1,10 +1,10 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { BaseLanguageModel } from 'langchain/base_language' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { BaseRetriever } from '@langchain/core/retrievers' +import { VectorStoreRetriever } from '@langchain/core/vectorstores' import { ContextualCompressionRetriever } from 'langchain/retrievers/contextual_compression' -import { BaseRetriever } from 'langchain/schema/retriever' import { ReciprocalRankFusion } from './ReciprocalRankFusion' -import { VectorStoreRetriever } from 'langchain/vectorstores/base' import { handleEscapeCharacters } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class RRFRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/RRFRetriever/ReciprocalRankFusion.ts b/packages/components/nodes/retrievers/RRFRetriever/ReciprocalRankFusion.ts index 0789ca17..36141c5c 100644 --- a/packages/components/nodes/retrievers/RRFRetriever/ReciprocalRankFusion.ts +++ b/packages/components/nodes/retrievers/RRFRetriever/ReciprocalRankFusion.ts @@ -1,10 +1,10 @@ -import { BaseDocumentCompressor } from 'langchain/retrievers/document_compressors' -import { Document } from 'langchain/document' -import { Callbacks } from 'langchain/callbacks' -import { BaseLanguageModel } from 'langchain/base_language' -import { ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate } from 'langchain/prompts' +import { Document } from '@langchain/core/documents' +import { Callbacks } from '@langchain/core/callbacks/manager' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { VectorStoreRetriever } from '@langchain/core/vectorstores' +import { ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate } from '@langchain/core/prompts' import { LLMChain } from 'langchain/chains' -import { VectorStoreRetriever } from 'langchain/vectorstores/base' +import { BaseDocumentCompressor } from 'langchain/retrievers/document_compressors' export class ReciprocalRankFusion extends BaseDocumentCompressor { private readonly llm: BaseLanguageModel diff --git a/packages/components/nodes/retrievers/SimilarityThresholdRetriever/SimilarityThresholdRetriever.ts b/packages/components/nodes/retrievers/SimilarityThresholdRetriever/SimilarityThresholdRetriever.ts index 5f5a9ed0..b5395d36 100644 --- a/packages/components/nodes/retrievers/SimilarityThresholdRetriever/SimilarityThresholdRetriever.ts +++ b/packages/components/nodes/retrievers/SimilarityThresholdRetriever/SimilarityThresholdRetriever.ts @@ -1,7 +1,7 @@ -import { VectorStore } from 'langchain/vectorstores/base' +import { VectorStore } from '@langchain/core/vectorstores' +import { ScoreThresholdRetriever } from 'langchain/retrievers/score_threshold' import { INode, INodeData, INodeParams, INodeOutputsValue } from '../../../src/Interface' import { handleEscapeCharacters } from '../../../src' -import { ScoreThresholdRetriever } from 'langchain/retrievers/score_threshold' class SimilarityThresholdRetriever_Retrievers implements INode { label: string diff --git a/packages/components/nodes/retrievers/VectorStoreRetriever/VectorStoreRetriever.ts b/packages/components/nodes/retrievers/VectorStoreRetriever/VectorStoreRetriever.ts index 41f66571..071e327b 100644 --- a/packages/components/nodes/retrievers/VectorStoreRetriever/VectorStoreRetriever.ts +++ b/packages/components/nodes/retrievers/VectorStoreRetriever/VectorStoreRetriever.ts @@ -1,4 +1,4 @@ -import { VectorStore } from 'langchain/vectorstores/base' +import { VectorStore } from '@langchain/core/vectorstores' import { INode, INodeData, INodeParams, VectorStoreRetriever, VectorStoreRetrieverInput } from '../../../src/Interface' class VectorStoreRetriever_Retrievers implements INode { diff --git a/packages/components/nodes/tools/AIPlugin/AIPlugin.ts b/packages/components/nodes/tools/AIPlugin/AIPlugin.ts index e9c0fa3d..ac1427f7 100644 --- a/packages/components/nodes/tools/AIPlugin/AIPlugin.ts +++ b/packages/components/nodes/tools/AIPlugin/AIPlugin.ts @@ -1,5 +1,5 @@ +import { AIPluginTool } from '@langchain/community/tools/aiplugin' import { INode, INodeData, INodeParams } from '../../../src/Interface' -import { AIPluginTool } from 'langchain/tools' import { getBaseClasses } from '../../../src/utils' class AIPlugin implements INode { diff --git a/packages/components/nodes/tools/BraveSearchAPI/BraveSearchAPI.ts b/packages/components/nodes/tools/BraveSearchAPI/BraveSearchAPI.ts index 9e9c760d..34564f2c 100644 --- a/packages/components/nodes/tools/BraveSearchAPI/BraveSearchAPI.ts +++ b/packages/components/nodes/tools/BraveSearchAPI/BraveSearchAPI.ts @@ -1,6 +1,6 @@ +import { BraveSearch } from '@langchain/community/tools/brave_search' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { BraveSearch } from 'langchain/tools' class BraveSearchAPI_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/ChainTool/ChainTool.ts b/packages/components/nodes/tools/ChainTool/ChainTool.ts index 42b5e6e1..a79a8b4a 100644 --- a/packages/components/nodes/tools/ChainTool/ChainTool.ts +++ b/packages/components/nodes/tools/ChainTool/ChainTool.ts @@ -1,6 +1,6 @@ +import { BaseChain } from 'langchain/chains' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { BaseChain } from 'langchain/chains' import { ChainTool } from './core' class ChainTool_Tools implements INode { diff --git a/packages/components/nodes/tools/ChainTool/core.ts b/packages/components/nodes/tools/ChainTool/core.ts index 5520d6df..60ba5977 100644 --- a/packages/components/nodes/tools/ChainTool/core.ts +++ b/packages/components/nodes/tools/ChainTool/core.ts @@ -1,4 +1,4 @@ -import { DynamicTool, DynamicToolInput } from 'langchain/tools' +import { DynamicTool, DynamicToolInput } from '@langchain/core/tools' import { BaseChain } from 'langchain/chains' import { handleEscapeCharacters } from '../../../src/utils' diff --git a/packages/components/nodes/tools/CustomTool/core.ts b/packages/components/nodes/tools/CustomTool/core.ts index 19be88f1..594f1902 100644 --- a/packages/components/nodes/tools/CustomTool/core.ts +++ b/packages/components/nodes/tools/CustomTool/core.ts @@ -1,9 +1,9 @@ import { z } from 'zod' import { NodeVM } from 'vm2' -import { availableDependencies, defaultAllowBuiltInDep, prepareSandboxVars } from '../../../src/utils' import { RunnableConfig } from '@langchain/core/runnables' import { StructuredTool, ToolParams } from '@langchain/core/tools' import { CallbackManagerForToolRun, Callbacks, CallbackManager, parseCallbackConfigArg } from '@langchain/core/callbacks/manager' +import { availableDependencies, defaultAllowBuiltInDep, prepareSandboxVars } from '../../../src/utils' class ToolInputParsingException extends Error { output?: string diff --git a/packages/components/nodes/tools/GoogleSearchAPI/GoogleSearchAPI.ts b/packages/components/nodes/tools/GoogleSearchAPI/GoogleSearchAPI.ts index 78fe8e73..b60186c4 100644 --- a/packages/components/nodes/tools/GoogleSearchAPI/GoogleSearchAPI.ts +++ b/packages/components/nodes/tools/GoogleSearchAPI/GoogleSearchAPI.ts @@ -1,6 +1,6 @@ +import { GoogleCustomSearch } from '@langchain/community/tools/google_custom_search' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { GoogleCustomSearch } from 'langchain/tools' class GoogleCustomSearchAPI_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts b/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts index 1dc0705b..0537ae67 100644 --- a/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts +++ b/packages/components/nodes/tools/OpenAPIToolkit/OpenAPIToolkit.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' -import { OpenApiToolkit } from 'langchain/agents' -import { JsonSpec, JsonObject } from 'langchain/tools' -import { BaseLanguageModel } from 'langchain/base_language' import { load } from 'js-yaml' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { OpenApiToolkit } from 'langchain/agents' +import { JsonSpec, JsonObject } from './core' +import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getCredentialData, getCredentialParam } from '../../../src' class OpenAPIToolkit_Tools implements INode { diff --git a/packages/components/nodes/tools/OpenAPIToolkit/core.ts b/packages/components/nodes/tools/OpenAPIToolkit/core.ts new file mode 100644 index 00000000..7e332db2 --- /dev/null +++ b/packages/components/nodes/tools/OpenAPIToolkit/core.ts @@ -0,0 +1,140 @@ +import jsonpointer from 'jsonpointer' +import { Serializable } from '@langchain/core/load/serializable' +import { Tool, ToolParams } from '@langchain/core/tools' + +export type Json = string | number | boolean | null | { [key: string]: Json } | Json[] + +export type JsonObject = { [key: string]: Json } + +/** + * Represents a JSON object in the LangChain framework. Provides methods + * to get keys and values from the JSON object. + */ +export class JsonSpec extends Serializable { + lc_namespace = ['langchain', 'tools', 'json'] + + obj: JsonObject + + maxValueLength = 4000 + + constructor(obj: JsonObject, max_value_length = 4000) { + super(...arguments) + this.obj = obj + this.maxValueLength = max_value_length + } + + /** + * Retrieves all keys at a given path in the JSON object. + * @param input The path to the keys in the JSON object, provided as a string in JSON pointer syntax. + * @returns A string containing all keys at the given path, separated by commas. + */ + public getKeys(input: string): string { + const pointer = jsonpointer.compile(input) + const res = pointer.get(this.obj) as Json + if (typeof res === 'object' && !Array.isArray(res) && res !== null) { + return Object.keys(res) + .map((i) => i.replaceAll('~', '~0').replaceAll('/', '~1')) + .join(', ') + } + + throw new Error(`Value at ${input} is not a dictionary, get the value directly instead.`) + } + + /** + * Retrieves the value at a given path in the JSON object. + * @param input The path to the value in the JSON object, provided as a string in JSON pointer syntax. + * @returns The value at the given path in the JSON object, as a string. If the value is a large dictionary or exceeds the maximum length, a message is returned instead. + */ + public getValue(input: string): string { + const pointer = jsonpointer.compile(input) + const res = pointer.get(this.obj) as Json + + if (res === null || res === undefined) { + throw new Error(`Value at ${input} is null or undefined.`) + } + + const str = typeof res === 'object' ? JSON.stringify(res) : res.toString() + if (typeof res === 'object' && !Array.isArray(res) && str.length > this.maxValueLength) { + return `Value is a large dictionary, should explore its keys directly.` + } + + if (str.length > this.maxValueLength) { + return `${str.slice(0, this.maxValueLength)}...` + } + return str + } +} + +export interface JsonToolFields extends ToolParams { + jsonSpec: JsonSpec +} + +/** + * A tool in the LangChain framework that lists all keys at a given path + * in a JSON object. + */ +export class JsonListKeysTool extends Tool { + static lc_name() { + return 'JsonListKeysTool' + } + + name = 'json_list_keys' + + jsonSpec: JsonSpec + + constructor(jsonSpec: JsonSpec) + + constructor(fields: JsonToolFields) + + constructor(fields: JsonSpec | JsonToolFields) { + if (!('jsonSpec' in fields)) { + // eslint-disable-next-line no-param-reassign + fields = { jsonSpec: fields } + } + super(fields) + + this.jsonSpec = fields.jsonSpec + } + + /** @ignore */ + async _call(input: string) { + try { + return this.jsonSpec.getKeys(input) + } catch (error) { + return `${error}` + } + } + + description = `Can be used to list all keys at a given path. + Before calling this you should be SURE that the path to this exists. + The input is a text representation of the path to the json as json pointer syntax (e.g. /key1/0/key2).` +} + +/** + * A tool in the LangChain framework that retrieves the value at a given + * path in a JSON object. + */ +export class JsonGetValueTool extends Tool { + static lc_name() { + return 'JsonGetValueTool' + } + + name = 'json_get_value' + + constructor(public jsonSpec: JsonSpec) { + super() + } + + /** @ignore */ + async _call(input: string) { + try { + return this.jsonSpec.getValue(input) + } catch (error) { + return `${error}` + } + } + + description = `Can be used to see value in string format at a given path. + Before calling this you should be SURE that the path to this exists. + The input is a text representation of the path to the json as json pointer syntax (e.g. /key1/0/key2).` +} diff --git a/packages/components/nodes/tools/ReadFile/ReadFile.ts b/packages/components/nodes/tools/ReadFile/ReadFile.ts index 2aa2c66e..68c0d38a 100644 --- a/packages/components/nodes/tools/ReadFile/ReadFile.ts +++ b/packages/components/nodes/tools/ReadFile/ReadFile.ts @@ -1,7 +1,14 @@ +import { z } from 'zod' +import { StructuredTool, ToolParams } from '@langchain/core/tools' +import { Serializable } from '@langchain/core/load/serializable' +import { NodeFileStore } from 'langchain/stores/file/node' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { ReadFileTool } from 'langchain/tools' -import { NodeFileStore } from 'langchain/stores/file/node' + +abstract class BaseFileStore extends Serializable { + abstract readFile(path: string): Promise + abstract writeFile(path: string, contents: string): Promise +} class ReadFile_Tools implements INode { label: string @@ -41,4 +48,38 @@ class ReadFile_Tools implements INode { } } +interface ReadFileParams extends ToolParams { + store: BaseFileStore +} + +/** + * Class for reading files from the disk. Extends the StructuredTool + * class. + */ +export class ReadFileTool extends StructuredTool { + static lc_name() { + return 'ReadFileTool' + } + + schema = z.object({ + file_path: z.string().describe('name of file') + }) + + name = 'read_file' + + description = 'Read file from disk' + + store: BaseFileStore + + constructor({ store }: ReadFileParams) { + super(...arguments) + + this.store = store + } + + async _call({ file_path }: z.infer) { + return await this.store.readFile(file_path) + } +} + module.exports = { nodeClass: ReadFile_Tools } diff --git a/packages/components/nodes/tools/RequestsGet/core.ts b/packages/components/nodes/tools/RequestsGet/core.ts index 14bc07f3..ea97cdf2 100644 --- a/packages/components/nodes/tools/RequestsGet/core.ts +++ b/packages/components/nodes/tools/RequestsGet/core.ts @@ -1,5 +1,5 @@ import fetch from 'node-fetch' -import { Tool } from 'langchain/tools' +import { Tool } from '@langchain/core/tools' export const desc = `A portal to the internet. Use this when you need to get specific content from a website. Input should be a url (i.e. https://www.google.com). The output will be the text response of the GET request.` diff --git a/packages/components/nodes/tools/RequestsPost/core.ts b/packages/components/nodes/tools/RequestsPost/core.ts index 403ba42b..a380f167 100644 --- a/packages/components/nodes/tools/RequestsPost/core.ts +++ b/packages/components/nodes/tools/RequestsPost/core.ts @@ -1,4 +1,4 @@ -import { Tool } from 'langchain/tools' +import { Tool } from '@langchain/core/tools' import fetch from 'node-fetch' export const desc = `Use this when you want to POST to a website. diff --git a/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts b/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts index cc74a015..65422bd5 100644 --- a/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts +++ b/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts @@ -1,8 +1,8 @@ +import { DynamicTool } from '@langchain/core/tools' +import { BaseRetriever } from '@langchain/core/retrievers' +import { createRetrieverTool } from 'langchain/tools/retriever' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { DynamicTool } from 'langchain/tools' -import { createRetrieverTool } from 'langchain/agents/toolkits' -import { BaseRetriever } from 'langchain/schema/retriever' class Retriever_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/SearchApi/SearchAPI.ts b/packages/components/nodes/tools/SearchApi/SearchAPI.ts index 3f760087..410f142a 100644 --- a/packages/components/nodes/tools/SearchApi/SearchAPI.ts +++ b/packages/components/nodes/tools/SearchApi/SearchAPI.ts @@ -1,6 +1,6 @@ +import { SearchApi } from '@langchain/community/tools/searchapi' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SearchApi } from 'langchain/tools' class SearchAPI_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/SerpAPI/SerpAPI.ts b/packages/components/nodes/tools/SerpAPI/SerpAPI.ts index 184dc1c4..b4940f45 100644 --- a/packages/components/nodes/tools/SerpAPI/SerpAPI.ts +++ b/packages/components/nodes/tools/SerpAPI/SerpAPI.ts @@ -1,6 +1,6 @@ +import { SerpAPI } from '@langchain/community/tools/serpapi' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SerpAPI } from 'langchain/tools' class SerpAPI_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/Serper/Serper.ts b/packages/components/nodes/tools/Serper/Serper.ts index 2e67a61d..2dbefafa 100644 --- a/packages/components/nodes/tools/Serper/Serper.ts +++ b/packages/components/nodes/tools/Serper/Serper.ts @@ -1,6 +1,6 @@ +import { Serper } from '@langchain/community/tools/serper' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { Serper } from 'langchain/tools' class Serper_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/WebBrowser/WebBrowser.ts b/packages/components/nodes/tools/WebBrowser/WebBrowser.ts index 64a093d0..874051c7 100644 --- a/packages/components/nodes/tools/WebBrowser/WebBrowser.ts +++ b/packages/components/nodes/tools/WebBrowser/WebBrowser.ts @@ -1,8 +1,8 @@ -import { BaseLanguageModel } from 'langchain/base_language' +import { BaseLanguageModel } from '@langchain/core/language_models/base' +import { Embeddings } from '@langchain/core/embeddings' +import { WebBrowser } from 'langchain/tools/webbrowser' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { WebBrowser } from 'langchain/tools/webbrowser' -import { Embeddings } from 'langchain/embeddings/base' class WebBrowser_Tools implements INode { label: string diff --git a/packages/components/nodes/tools/WriteFile/WriteFile.ts b/packages/components/nodes/tools/WriteFile/WriteFile.ts index 2eb7843f..22d58e42 100644 --- a/packages/components/nodes/tools/WriteFile/WriteFile.ts +++ b/packages/components/nodes/tools/WriteFile/WriteFile.ts @@ -1,7 +1,14 @@ +import { z } from 'zod' +import { StructuredTool, ToolParams } from '@langchain/core/tools' +import { Serializable } from '@langchain/core/load/serializable' +import { NodeFileStore } from 'langchain/stores/file/node' import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' -import { WriteFileTool } from 'langchain/tools' -import { NodeFileStore } from 'langchain/stores/file/node' + +abstract class BaseFileStore extends Serializable { + abstract readFile(path: string): Promise + abstract writeFile(path: string, contents: string): Promise +} class WriteFile_Tools implements INode { label: string @@ -41,4 +48,40 @@ class WriteFile_Tools implements INode { } } +interface WriteFileParams extends ToolParams { + store: BaseFileStore +} + +/** + * Class for writing data to files on the disk. Extends the StructuredTool + * class. + */ +export class WriteFileTool extends StructuredTool { + static lc_name() { + return 'WriteFileTool' + } + + schema = z.object({ + file_path: z.string().describe('name of file'), + text: z.string().describe('text to write to file') + }) + + name = 'write_file' + + description = 'Write file from disk' + + store: BaseFileStore + + constructor({ store, ...rest }: WriteFileParams) { + super(rest) + + this.store = store + } + + async _call({ file_path, text }: z.infer) { + await this.store.writeFile(file_path, text) + return 'File written to successfully.' + } +} + module.exports = { nodeClass: WriteFile_Tools } diff --git a/packages/components/nodes/vectorstores/Astra/Astra.ts b/packages/components/nodes/vectorstores/Astra/Astra.ts index edaadc9c..b8afe3a1 100644 --- a/packages/components/nodes/vectorstores/Astra/Astra.ts +++ b/packages/components/nodes/vectorstores/Astra/Astra.ts @@ -1,9 +1,9 @@ import { flatten } from 'lodash' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { AstraDBVectorStore, AstraLibArgs } from '@langchain/community/vectorstores/astradb' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData } from '../../../src/utils' -import { AstraDBVectorStore, AstraLibArgs } from '@langchain/community/vectorstores/astradb' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' class Astra_VectorStores implements INode { diff --git a/packages/components/nodes/vectorstores/Chroma/Chroma.ts b/packages/components/nodes/vectorstores/Chroma/Chroma.ts index 6e1cfa67..70ab2d22 100644 --- a/packages/components/nodes/vectorstores/Chroma/Chroma.ts +++ b/packages/components/nodes/vectorstores/Chroma/Chroma.ts @@ -1,7 +1,7 @@ import { flatten } from 'lodash' -import { Chroma } from 'langchain/vectorstores/chroma' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { Chroma } from '@langchain/community/vectorstores/chroma' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ChromaExtended } from './core' diff --git a/packages/components/nodes/vectorstores/Chroma/Chroma_Existing.ts b/packages/components/nodes/vectorstores/Chroma/Chroma_Existing.ts index 62d3f8a2..90c650c0 100644 --- a/packages/components/nodes/vectorstores/Chroma/Chroma_Existing.ts +++ b/packages/components/nodes/vectorstores/Chroma/Chroma_Existing.ts @@ -1,7 +1,7 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Chroma } from 'langchain/vectorstores/chroma' -import { Embeddings } from 'langchain/embeddings/base' +import { Chroma } from '@langchain/community/vectorstores/chroma' +import { Embeddings } from '@langchain/core/embeddings' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { ChromaExtended } from './core' class Chroma_Existing_VectorStores implements INode { diff --git a/packages/components/nodes/vectorstores/Chroma/Chroma_Upsert.ts b/packages/components/nodes/vectorstores/Chroma/Chroma_Upsert.ts index e8564478..66a0ef7b 100644 --- a/packages/components/nodes/vectorstores/Chroma/Chroma_Upsert.ts +++ b/packages/components/nodes/vectorstores/Chroma/Chroma_Upsert.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Chroma } from 'langchain/vectorstores/chroma' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { flatten } from 'lodash' +import { Chroma } from '@langchain/community/vectorstores/chroma' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { ChromaExtended } from './core' class ChromaUpsert_VectorStores implements INode { diff --git a/packages/components/nodes/vectorstores/Chroma/core.ts b/packages/components/nodes/vectorstores/Chroma/core.ts index b1bf9cc7..370830a3 100644 --- a/packages/components/nodes/vectorstores/Chroma/core.ts +++ b/packages/components/nodes/vectorstores/Chroma/core.ts @@ -1,5 +1,5 @@ -import { Chroma, ChromaLibArgs } from 'langchain/vectorstores/chroma' -import { Embeddings } from 'langchain/embeddings/base' +import { Chroma, ChromaLibArgs } from '@langchain/community/vectorstores/chroma' +import { Embeddings } from '@langchain/core/embeddings' import type { Collection } from 'chromadb' import { ChromaClient } from 'chromadb' diff --git a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts index 3c1dc5a1..e8bbf95c 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts @@ -8,10 +8,10 @@ import { INodeParams } from '../../../src' import { Client, ClientOptions } from '@elastic/elasticsearch' -import { ElasticClientArgs, ElasticVectorSearch } from 'langchain/vectorstores/elasticsearch' -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' +import { ElasticClientArgs, ElasticVectorSearch } from '@langchain/community/vectorstores/elasticsearch' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' export abstract class ElasticSearchBase { label: string diff --git a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch.ts b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch.ts index 04c90c6b..cfc721b8 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { Client, ClientOptions } from '@elastic/elasticsearch' -import { Document } from 'langchain/document' -import { Embeddings } from 'langchain/embeddings/base' -import { ElasticClientArgs, ElasticVectorSearch } from 'langchain/vectorstores/elasticsearch' +import { Document } from '@langchain/core/documents' +import { Embeddings } from '@langchain/core/embeddings' +import { ElasticClientArgs, ElasticVectorSearch } from '@langchain/community/vectorstores/elasticsearch' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Existing.ts b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Existing.ts index fcb1b2a5..fa1b0b6f 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Existing.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Existing.ts @@ -1,10 +1,9 @@ -import { ICommonObject, INode, INodeData } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' - -import { ElasticClientArgs, ElasticVectorSearch } from 'langchain/vectorstores/elasticsearch' +import { Embeddings } from '@langchain/core/embeddings' +import { ElasticClientArgs, ElasticVectorSearch } from '@langchain/community/vectorstores/elasticsearch' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' import { ElasticSearchBase } from './ElasticSearchBase' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' +import { ICommonObject, INode, INodeData } from '../../../src/Interface' class ElasicsearchExisting_VectorStores extends ElasticSearchBase implements INode { constructor() { diff --git a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Upsert.ts b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Upsert.ts index a8ccd49a..973976eb 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Upsert.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/Elasticsearch_Upsert.ts @@ -1,11 +1,10 @@ -import { ICommonObject, INode, INodeData } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' - -import { ElasticClientArgs, ElasticVectorSearch } from 'langchain/vectorstores/elasticsearch' import { flatten } from 'lodash' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { VectorStore } from '@langchain/core/vectorstores' +import { ElasticClientArgs, ElasticVectorSearch } from '@langchain/community/vectorstores/elasticsearch' +import { ICommonObject, INode, INodeData } from '../../../src/Interface' import { ElasticSearchBase } from './ElasticSearchBase' -import { VectorStore } from 'langchain/vectorstores/base' class ElasicsearchUpsert_VectorStores extends ElasticSearchBase implements INode { constructor() { diff --git a/packages/components/nodes/vectorstores/Faiss/Faiss.ts b/packages/components/nodes/vectorstores/Faiss/Faiss.ts index 4120a57e..8a306ed9 100644 --- a/packages/components/nodes/vectorstores/Faiss/Faiss.ts +++ b/packages/components/nodes/vectorstores/Faiss/Faiss.ts @@ -1,7 +1,7 @@ import { flatten } from 'lodash' -import { Document } from 'langchain/document' -import { FaissStore } from 'langchain/vectorstores/faiss' -import { Embeddings } from 'langchain/embeddings/base' +import { Document } from '@langchain/core/documents' +import { FaissStore } from '@langchain/community/vectorstores/faiss' +import { Embeddings } from '@langchain/core/embeddings' import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Faiss/Faiss_Existing.ts b/packages/components/nodes/vectorstores/Faiss/Faiss_Existing.ts index 6f4e54d7..b5cd5dba 100644 --- a/packages/components/nodes/vectorstores/Faiss/Faiss_Existing.ts +++ b/packages/components/nodes/vectorstores/Faiss/Faiss_Existing.ts @@ -1,8 +1,8 @@ +import { FaissStore } from '@langchain/community/vectorstores/faiss' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { FaissStore } from 'langchain/vectorstores/faiss' -import { Embeddings } from 'langchain/embeddings/base' import { getBaseClasses } from '../../../src/utils' -import { Document } from 'langchain/document' class Faiss_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Faiss/Faiss_Upsert.ts b/packages/components/nodes/vectorstores/Faiss/Faiss_Upsert.ts index 9b658a37..3eb144a4 100644 --- a/packages/components/nodes/vectorstores/Faiss/Faiss_Upsert.ts +++ b/packages/components/nodes/vectorstores/Faiss/Faiss_Upsert.ts @@ -1,9 +1,9 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses } from '../../../src/utils' -import { FaissStore } from 'langchain/vectorstores/faiss' import { flatten } from 'lodash' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { FaissStore } from '@langchain/community/vectorstores/faiss' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' class FaissUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/InMemory/InMemoryVectorStore.ts b/packages/components/nodes/vectorstores/InMemory/InMemoryVectorStore.ts index 620c3af7..aff7f637 100644 --- a/packages/components/nodes/vectorstores/InMemory/InMemoryVectorStore.ts +++ b/packages/components/nodes/vectorstores/InMemory/InMemoryVectorStore.ts @@ -1,7 +1,7 @@ import { flatten } from 'lodash' import { MemoryVectorStore } from 'langchain/vectorstores/memory' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Milvus/Milvus.ts b/packages/components/nodes/vectorstores/Milvus/Milvus.ts index 7566f8a8..d6cfaea1 100644 --- a/packages/components/nodes/vectorstores/Milvus/Milvus.ts +++ b/packages/components/nodes/vectorstores/Milvus/Milvus.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { DataType, ErrorCode, MetricType, IndexType } from '@zilliz/milvus2-sdk-node' -import { Document } from 'langchain/document' -import { MilvusLibArgs, Milvus } from 'langchain/vectorstores/milvus' -import { Embeddings } from 'langchain/embeddings/base' +import { Document } from '@langchain/core/documents' +import { MilvusLibArgs, Milvus } from '@langchain/community/vectorstores/milvus' +import { Embeddings } from '@langchain/core/embeddings' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Milvus/Milvus_Existing.ts b/packages/components/nodes/vectorstores/Milvus/Milvus_Existing.ts index bce5b9cb..5077b449 100644 --- a/packages/components/nodes/vectorstores/Milvus/Milvus_Existing.ts +++ b/packages/components/nodes/vectorstores/Milvus/Milvus_Existing.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { DataType, ErrorCode } from '@zilliz/milvus2-sdk-node' -import { MilvusLibArgs, Milvus } from 'langchain/vectorstores/milvus' -import { Embeddings } from 'langchain/embeddings/base' +import { MilvusLibArgs, Milvus } from '@langchain/community/vectorstores/milvus' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { Document } from 'langchain/document' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class Milvus_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Milvus/Milvus_Upsert.ts b/packages/components/nodes/vectorstores/Milvus/Milvus_Upsert.ts index a0cae742..42e4dad8 100644 --- a/packages/components/nodes/vectorstores/Milvus/Milvus_Upsert.ts +++ b/packages/components/nodes/vectorstores/Milvus/Milvus_Upsert.ts @@ -1,10 +1,10 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { DataType, ErrorCode, MetricType, IndexType } from '@zilliz/milvus2-sdk-node' -import { MilvusLibArgs, Milvus } from 'langchain/vectorstores/milvus' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { flatten } from 'lodash' +import { DataType, ErrorCode, MetricType, IndexType } from '@zilliz/milvus2-sdk-node' +import { MilvusLibArgs, Milvus } from '@langchain/community/vectorstores/milvus' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' interface InsertRow { [x: string]: string | number[] diff --git a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts index 6ba7199f..d574b32c 100644 --- a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts +++ b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBAtlas.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { MongoClient } from 'mongodb' -import { MongoDBAtlasVectorSearch } from 'langchain/vectorstores/mongodb_atlas' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { MongoDBAtlasVectorSearch } from '@langchain/community/vectorstores/mongodb_atlas' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' diff --git a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBSearchBase.ts b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBSearchBase.ts index 9866f6a9..db7c3397 100644 --- a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBSearchBase.ts +++ b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDBSearchBase.ts @@ -7,11 +7,10 @@ import { INodeOutputsValue, INodeParams } from '../../../src' - -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' -import { MongoDBAtlasVectorSearch } from 'langchain/vectorstores/mongodb_atlas' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' +import { MongoDBAtlasVectorSearch } from '@langchain/community/vectorstores/mongodb_atlas' import { Collection, MongoClient } from 'mongodb' export abstract class MongoDBSearchBase { diff --git a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Existing.ts b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Existing.ts index 7b06814a..7d0c8476 100644 --- a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Existing.ts +++ b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Existing.ts @@ -1,8 +1,8 @@ import { Collection } from 'mongodb' -import { MongoDBAtlasVectorSearch } from 'langchain/vectorstores/mongodb_atlas' -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' +import { MongoDBAtlasVectorSearch } from '@langchain/community/vectorstores/mongodb_atlas' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' import { MongoDBSearchBase } from './MongoDBSearchBase' import { ICommonObject, INode, INodeData } from '../../../src/Interface' diff --git a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Upsert.ts b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Upsert.ts index d9287243..a580e820 100644 --- a/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Upsert.ts +++ b/packages/components/nodes/vectorstores/MongoDBAtlas/MongoDB_Upsert.ts @@ -1,9 +1,9 @@ import { flatten } from 'lodash' import { Collection } from 'mongodb' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { VectorStore } from 'langchain/vectorstores/base' -import { MongoDBAtlasVectorSearch } from 'langchain/vectorstores/mongodb_atlas' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { VectorStore } from '@langchain/core/vectorstores' +import { MongoDBAtlasVectorSearch } from '@langchain/community/vectorstores/mongodb_atlas' import { ICommonObject, INode, INodeData } from '../../../src/Interface' import { MongoDBSearchBase } from './MongoDBSearchBase' diff --git a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch.ts b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch.ts index 6be8977d..b67c8e4f 100644 --- a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch.ts +++ b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { Client } from '@opensearch-project/opensearch' -import { Document } from 'langchain/document' -import { OpenSearchVectorStore } from 'langchain/vectorstores/opensearch' -import { Embeddings } from 'langchain/embeddings/base' +import { Document } from '@langchain/core/documents' +import { OpenSearchVectorStore } from '@langchain/community/vectorstores/opensearch' +import { Embeddings } from '@langchain/core/embeddings' import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_Upsert.ts b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_Upsert.ts index e5512df8..b25f1962 100644 --- a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_Upsert.ts +++ b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_Upsert.ts @@ -1,10 +1,10 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { OpenSearchVectorStore } from 'langchain/vectorstores/opensearch' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { OpenSearchVectorStore } from '@langchain/community/vectorstores/opensearch' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { Client } from '@opensearch-project/opensearch' import { flatten } from 'lodash' import { getBaseClasses } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class OpenSearchUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_existing.ts b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_existing.ts index b4765a9a..fde96041 100644 --- a/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_existing.ts +++ b/packages/components/nodes/vectorstores/OpenSearch/OpenSearch_existing.ts @@ -1,8 +1,8 @@ -import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { OpenSearchVectorStore } from 'langchain/vectorstores/opensearch' -import { Embeddings } from 'langchain/embeddings/base' +import { OpenSearchVectorStore } from '@langchain/community/vectorstores/opensearch' +import { Embeddings } from '@langchain/core/embeddings' import { Client } from '@opensearch-project/opensearch' import { getBaseClasses } from '../../../src/utils' +import { INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class OpenSearch_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts index a1ec0e57..cb204820 100644 --- a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts +++ b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { Pinecone } from '@pinecone-database/pinecone' -import { PineconeLibArgs, PineconeStore } from 'langchain/vectorstores/pinecone' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { PineconeStoreParams, PineconeStore } from '@langchain/pinecone' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' @@ -120,7 +120,7 @@ class Pinecone_VectorStores implements INode { } } - const obj: PineconeLibArgs = { + const obj: PineconeStoreParams = { pineconeIndex } @@ -158,7 +158,7 @@ class Pinecone_VectorStores implements INode { } } - const obj: PineconeLibArgs = { + const obj: PineconeStoreParams = { pineconeIndex } diff --git a/packages/components/nodes/vectorstores/Pinecone/Pinecone_Existing.ts b/packages/components/nodes/vectorstores/Pinecone/Pinecone_Existing.ts index f805fc33..74a9c2de 100644 --- a/packages/components/nodes/vectorstores/Pinecone/Pinecone_Existing.ts +++ b/packages/components/nodes/vectorstores/Pinecone/Pinecone_Existing.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { Pinecone } from '@pinecone-database/pinecone' -import { PineconeLibArgs, PineconeStore } from 'langchain/vectorstores/pinecone' -import { Embeddings } from 'langchain/embeddings/base' +import { PineconeStoreParams, PineconeStore } from '@langchain/pinecone' +import { Embeddings } from '@langchain/core/embeddings' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class Pinecone_Existing_VectorStores implements INode { label: string @@ -102,7 +102,7 @@ class Pinecone_Existing_VectorStores implements INode { const pineconeIndex = client.Index(index) - const obj: PineconeLibArgs = { + const obj: PineconeStoreParams = { pineconeIndex } diff --git a/packages/components/nodes/vectorstores/Pinecone/Pinecone_Upsert.ts b/packages/components/nodes/vectorstores/Pinecone/Pinecone_Upsert.ts index 14dbf663..8190449e 100644 --- a/packages/components/nodes/vectorstores/Pinecone/Pinecone_Upsert.ts +++ b/packages/components/nodes/vectorstores/Pinecone/Pinecone_Upsert.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { Pinecone } from '@pinecone-database/pinecone' -import { PineconeLibArgs, PineconeStore } from 'langchain/vectorstores/pinecone' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { PineconeStoreParams, PineconeStore } from '@langchain/pinecone' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' @@ -111,7 +111,7 @@ class PineconeUpsert_VectorStores implements INode { } } - const obj: PineconeLibArgs = { + const obj: PineconeStoreParams = { pineconeIndex } diff --git a/packages/components/nodes/vectorstores/Postgres/Postgres.ts b/packages/components/nodes/vectorstores/Postgres/Postgres.ts index 4e8bae32..b3c89eba 100644 --- a/packages/components/nodes/vectorstores/Postgres/Postgres.ts +++ b/packages/components/nodes/vectorstores/Postgres/Postgres.ts @@ -1,9 +1,9 @@ import { Pool } from 'pg' import { flatten } from 'lodash' import { DataSourceOptions } from 'typeorm' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { TypeORMVectorStore, TypeORMVectorStoreDocument } from 'langchain/vectorstores/typeorm' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { TypeORMVectorStore, TypeORMVectorStoreDocument } from '@langchain/community/vectorstores/typeorm' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Postgres/Postgres_Exisiting.ts b/packages/components/nodes/vectorstores/Postgres/Postgres_Exisiting.ts index 3fa8a107..2aca118b 100644 --- a/packages/components/nodes/vectorstores/Postgres/Postgres_Exisiting.ts +++ b/packages/components/nodes/vectorstores/Postgres/Postgres_Exisiting.ts @@ -1,10 +1,10 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' import { DataSourceOptions } from 'typeorm' -import { TypeORMVectorStore, TypeORMVectorStoreDocument } from 'langchain/vectorstores/typeorm' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { Pool } from 'pg' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { TypeORMVectorStore, TypeORMVectorStoreDocument } from '@langchain/community/vectorstores/typeorm' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class Postgres_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Postgres/Postgres_Upsert.ts b/packages/components/nodes/vectorstores/Postgres/Postgres_Upsert.ts index d26a642d..e3ce4e16 100644 --- a/packages/components/nodes/vectorstores/Postgres/Postgres_Upsert.ts +++ b/packages/components/nodes/vectorstores/Postgres/Postgres_Upsert.ts @@ -1,11 +1,11 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' import { DataSourceOptions } from 'typeorm' -import { TypeORMVectorStore, TypeORMVectorStoreDocument } from 'langchain/vectorstores/typeorm' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { flatten } from 'lodash' import { Pool } from 'pg' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { TypeORMVectorStore, TypeORMVectorStoreDocument } from '@langchain/community/vectorstores/typeorm' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class PostgresUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts index e07b728a..41ab3088 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant.ts @@ -1,9 +1,9 @@ import { flatten } from 'lodash' import { QdrantClient } from '@qdrant/js-client-rest' -import { VectorStoreRetrieverInput } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' -import { QdrantVectorStore, QdrantLibArgs } from 'langchain/vectorstores/qdrant' -import { Embeddings } from 'langchain/embeddings/base' +import { VectorStoreRetrieverInput } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' +import { QdrantVectorStore, QdrantLibArgs } from '@langchain/community/vectorstores/qdrant' +import { Embeddings } from '@langchain/core/embeddings' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts index fb114402..efae5247 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Existing.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { QdrantClient } from '@qdrant/js-client-rest' -import { QdrantVectorStore, QdrantLibArgs } from 'langchain/vectorstores/qdrant' -import { Embeddings } from 'langchain/embeddings/base' +import { QdrantVectorStore, QdrantLibArgs } from '@langchain/community/vectorstores/qdrant' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStoreRetrieverInput } from '@langchain/core/vectorstores' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { VectorStoreRetrieverInput } from 'langchain/vectorstores/base' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' type RetrieverConfig = Partial> diff --git a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Upsert.ts b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Upsert.ts index c43a0c8d..3333a5a7 100644 --- a/packages/components/nodes/vectorstores/Qdrant/Qdrant_Upsert.ts +++ b/packages/components/nodes/vectorstores/Qdrant/Qdrant_Upsert.ts @@ -1,11 +1,11 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { QdrantClient } from '@qdrant/js-client-rest' -import { QdrantVectorStore, QdrantLibArgs } from 'langchain/vectorstores/qdrant' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { QdrantVectorStore, QdrantLibArgs } from '@langchain/community/vectorstores/qdrant' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { flatten } from 'lodash' -import { VectorStoreRetrieverInput } from 'langchain/vectorstores/base' +import { VectorStoreRetrieverInput } from '@langchain/core/vectorstores' type RetrieverConfig = Partial> diff --git a/packages/components/nodes/vectorstores/Redis/Redis.ts b/packages/components/nodes/vectorstores/Redis/Redis.ts index 49f9e8ff..843303bd 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { createClient, SearchOptions } from 'redis' -import { Embeddings } from 'langchain/embeddings/base' -import { RedisVectorStore, RedisVectorStoreConfig } from 'langchain/vectorstores/redis' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { RedisVectorStore, RedisVectorStoreConfig } from '@langchain/community/vectorstores/redis' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { escapeAllStrings, escapeSpecialChars, unEscapeSpecialChars } from './utils' diff --git a/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts b/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts index b6aa6ebb..f4200fda 100644 --- a/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts +++ b/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts @@ -7,12 +7,11 @@ import { INodeOutputsValue, INodeParams } from '../../../src' - -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' import { createClient, SearchOptions } from 'redis' -import { RedisVectorStore } from 'langchain/vectorstores/redis' +import { RedisVectorStore } from '@langchain/community/vectorstores/redis' import { escapeSpecialChars, unEscapeSpecialChars } from './utils' export abstract class RedisSearchBase { diff --git a/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts b/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts index e8848d33..177e0ebc 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts @@ -1,9 +1,8 @@ +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { RedisVectorStore, RedisVectorStoreConfig } from '@langchain/community/vectorstores/redis' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { RedisVectorStore, RedisVectorStoreConfig } from 'langchain/vectorstores/redis' -import { Document } from 'langchain/document' - import { RedisSearchBase } from './RedisSearchBase' class RedisExisting_VectorStores extends RedisSearchBase implements INode { diff --git a/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts b/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts index 4da58eaf..f93ab55d 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts @@ -1,11 +1,10 @@ -import { ICommonObject, INode, INodeData } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' - +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { flatten } from 'lodash' +import { VectorStore } from '@langchain/core/vectorstores' +import { RedisVectorStore, RedisVectorStoreConfig } from '@langchain/community/vectorstores/redis' import { RedisSearchBase } from './RedisSearchBase' -import { VectorStore } from 'langchain/vectorstores/base' -import { RedisVectorStore, RedisVectorStoreConfig } from 'langchain/vectorstores/redis' +import { ICommonObject, INode, INodeData } from '../../../src/Interface' import { escapeAllStrings } from './utils' class RedisUpsert_VectorStores extends RedisSearchBase implements INode { diff --git a/packages/components/nodes/vectorstores/Singlestore/Singlestore.ts b/packages/components/nodes/vectorstores/Singlestore/Singlestore.ts index d16252ac..797b7467 100644 --- a/packages/components/nodes/vectorstores/Singlestore/Singlestore.ts +++ b/packages/components/nodes/vectorstores/Singlestore/Singlestore.ts @@ -1,7 +1,7 @@ import { flatten } from 'lodash' -import { Embeddings } from 'langchain/embeddings/base' -import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from 'langchain/vectorstores/singlestore' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from '@langchain/community/vectorstores/singlestore' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Singlestore/Singlestore_Existing.ts b/packages/components/nodes/vectorstores/Singlestore/Singlestore_Existing.ts index 34061764..07f32257 100644 --- a/packages/components/nodes/vectorstores/Singlestore/Singlestore_Existing.ts +++ b/packages/components/nodes/vectorstores/Singlestore/Singlestore_Existing.ts @@ -1,7 +1,7 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' +import { Embeddings } from '@langchain/core/embeddings' +import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from '@langchain/community/vectorstores/singlestore' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from 'langchain/vectorstores/singlestore' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class SingleStoreExisting_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Singlestore/Singlestore_Upsert.ts b/packages/components/nodes/vectorstores/Singlestore/Singlestore_Upsert.ts index f158f9e8..7e2b93c2 100644 --- a/packages/components/nodes/vectorstores/Singlestore/Singlestore_Upsert.ts +++ b/packages/components/nodes/vectorstores/Singlestore/Singlestore_Upsert.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from 'langchain/vectorstores/singlestore' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { SingleStoreVectorStore, SingleStoreVectorStoreConfig } from '@langchain/community/vectorstores/singlestore' import { flatten } from 'lodash' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class SingleStoreUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Supabase/Supabase.ts b/packages/components/nodes/vectorstores/Supabase/Supabase.ts index a5477914..74849911 100644 --- a/packages/components/nodes/vectorstores/Supabase/Supabase.ts +++ b/packages/components/nodes/vectorstores/Supabase/Supabase.ts @@ -1,10 +1,10 @@ import { flatten } from 'lodash' import { createClient } from '@supabase/supabase-js' -import { Document } from 'langchain/document' -import { Embeddings } from 'langchain/embeddings/base' +import { Document } from '@langchain/core/documents' +import { Embeddings } from '@langchain/core/embeddings' +import { SupabaseVectorStore, SupabaseLibArgs } from '@langchain/community/vectorstores/supabase' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SupabaseLibArgs, SupabaseVectorStore } from 'langchain/vectorstores/supabase' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' class Supabase_VectorStores implements INode { diff --git a/packages/components/nodes/vectorstores/Supabase/Supabase_Exisiting.ts b/packages/components/nodes/vectorstores/Supabase/Supabase_Exisiting.ts index 8f135cf7..03bd3437 100644 --- a/packages/components/nodes/vectorstores/Supabase/Supabase_Exisiting.ts +++ b/packages/components/nodes/vectorstores/Supabase/Supabase_Exisiting.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SupabaseLibArgs, SupabaseVectorStore } from 'langchain/vectorstores/supabase' +import { Embeddings } from '@langchain/core/embeddings' +import { SupabaseLibArgs, SupabaseVectorStore } from '@langchain/community/vectorstores/supabase' import { createClient } from '@supabase/supabase-js' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class Supabase_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Supabase/Supabase_Upsert.ts b/packages/components/nodes/vectorstores/Supabase/Supabase_Upsert.ts index 9e97f48f..002c9d79 100644 --- a/packages/components/nodes/vectorstores/Supabase/Supabase_Upsert.ts +++ b/packages/components/nodes/vectorstores/Supabase/Supabase_Upsert.ts @@ -1,10 +1,10 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { SupabaseVectorStore } from 'langchain/vectorstores/supabase' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { SupabaseVectorStore } from '@langchain/community/vectorstores/supabase' import { createClient } from '@supabase/supabase-js' import { flatten } from 'lodash' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class SupabaseUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Vectara/Vectara.ts b/packages/components/nodes/vectorstores/Vectara/Vectara.ts index 939a4ac3..a661b18f 100644 --- a/packages/components/nodes/vectorstores/Vectara/Vectara.ts +++ b/packages/components/nodes/vectorstores/Vectara/Vectara.ts @@ -1,7 +1,14 @@ import { flatten } from 'lodash' -import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig, VectaraFile, MMRConfig } from 'langchain/vectorstores/vectara' -import { Document } from 'langchain/document' -import { Embeddings } from 'langchain/embeddings/base' +import { + VectaraStore, + VectaraLibArgs, + VectaraFilter, + VectaraContextConfig, + VectaraFile, + MMRConfig +} from '@langchain/community/vectorstores/vectara' +import { Document } from '@langchain/core/documents' +import { Embeddings } from '@langchain/core/embeddings' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' diff --git a/packages/components/nodes/vectorstores/Vectara/Vectara_Existing.ts b/packages/components/nodes/vectorstores/Vectara/Vectara_Existing.ts index dda6b8da..d8322de4 100644 --- a/packages/components/nodes/vectorstores/Vectara/Vectara_Existing.ts +++ b/packages/components/nodes/vectorstores/Vectara/Vectara_Existing.ts @@ -1,6 +1,6 @@ +import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig } from '@langchain/community/vectorstores/vectara' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig } from 'langchain/vectorstores/vectara' class VectaraExisting_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Vectara/Vectara_Upload.ts b/packages/components/nodes/vectorstores/Vectara/Vectara_Upload.ts index 0c1e6ef3..614fc1ca 100644 --- a/packages/components/nodes/vectorstores/Vectara/Vectara_Upload.ts +++ b/packages/components/nodes/vectorstores/Vectara/Vectara_Upload.ts @@ -1,6 +1,6 @@ +import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig, VectaraFile } from '@langchain/community/vectorstores/vectara' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig, VectaraFile } from 'langchain/vectorstores/vectara' class VectaraUpload_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Vectara/Vectara_Upsert.ts b/packages/components/nodes/vectorstores/Vectara/Vectara_Upsert.ts index 6ce2ffad..8b6b5eb2 100644 --- a/packages/components/nodes/vectorstores/Vectara/Vectara_Upsert.ts +++ b/packages/components/nodes/vectorstores/Vectara/Vectara_Upsert.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig } from 'langchain/vectorstores/vectara' -import { Document } from 'langchain/document' +import { Embeddings } from '@langchain/core/embeddings' +import { VectaraStore, VectaraLibArgs, VectaraFilter, VectaraContextConfig } from '@langchain/community/vectorstores/vectara' +import { Document } from '@langchain/core/documents' import { flatten } from 'lodash' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class VectaraUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts b/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts index 0eface58..e7cd074a 100644 --- a/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts +++ b/packages/components/nodes/vectorstores/Weaviate/Weaviate.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import weaviate, { WeaviateClient, ApiKey } from 'weaviate-ts-client' -import { WeaviateLibArgs, WeaviateStore } from 'langchain/vectorstores/weaviate' -import { Document } from 'langchain/document' -import { Embeddings } from 'langchain/embeddings/base' +import { WeaviateLibArgs, WeaviateStore } from '@langchain/community/vectorstores/weaviate' +import { Document } from '@langchain/core/documents' +import { Embeddings } from '@langchain/core/embeddings' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' diff --git a/packages/components/nodes/vectorstores/Weaviate/Weaviate_Existing.ts b/packages/components/nodes/vectorstores/Weaviate/Weaviate_Existing.ts index d11b351f..d39b3ca4 100644 --- a/packages/components/nodes/vectorstores/Weaviate/Weaviate_Existing.ts +++ b/packages/components/nodes/vectorstores/Weaviate/Weaviate_Existing.ts @@ -1,8 +1,8 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { Embeddings } from '@langchain/core/embeddings' import weaviate, { WeaviateClient, ApiKey } from 'weaviate-ts-client' -import { WeaviateLibArgs, WeaviateStore } from 'langchain/vectorstores/weaviate' +import { WeaviateLibArgs, WeaviateStore } from '@langchain/community/vectorstores/weaviate' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' class Weaviate_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Weaviate/Weaviate_Upsert.ts b/packages/components/nodes/vectorstores/Weaviate/Weaviate_Upsert.ts index 14adfabd..d157cc52 100644 --- a/packages/components/nodes/vectorstores/Weaviate/Weaviate_Upsert.ts +++ b/packages/components/nodes/vectorstores/Weaviate/Weaviate_Upsert.ts @@ -1,10 +1,10 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' -import { WeaviateLibArgs, WeaviateStore } from 'langchain/vectorstores/weaviate' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { WeaviateLibArgs, WeaviateStore } from '@langchain/community/vectorstores/weaviate' import weaviate, { WeaviateClient, ApiKey } from 'weaviate-ts-client' import { flatten } from 'lodash' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class WeaviateUpsert_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Zep/Zep.ts b/packages/components/nodes/vectorstores/Zep/Zep.ts index 3d9f1978..c5a8f0d4 100644 --- a/packages/components/nodes/vectorstores/Zep/Zep.ts +++ b/packages/components/nodes/vectorstores/Zep/Zep.ts @@ -1,8 +1,8 @@ import { flatten } from 'lodash' import { IDocument, ZepClient } from '@getzep/zep-js' -import { ZepVectorStore, IZepConfig } from 'langchain/vectorstores/zep' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' +import { ZepVectorStore, IZepConfig } from '@langchain/community/vectorstores/zep' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { addMMRInputParams, resolveVectorStoreOrRetriever } from '../VectorStoreUtils' diff --git a/packages/components/nodes/vectorstores/Zep/Zep_Existing.ts b/packages/components/nodes/vectorstores/Zep/Zep_Existing.ts index e6dbd252..75c2bd3f 100644 --- a/packages/components/nodes/vectorstores/Zep/Zep_Existing.ts +++ b/packages/components/nodes/vectorstores/Zep/Zep_Existing.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { ZepVectorStore, IZepConfig } from 'langchain/vectorstores/zep' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { IDocument, ZepClient } from '@getzep/zep-js' +import { ZepVectorStore, IZepConfig } from '@langchain/community/vectorstores/zep' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class Zep_Existing_VectorStores implements INode { label: string diff --git a/packages/components/nodes/vectorstores/Zep/Zep_Upsert.ts b/packages/components/nodes/vectorstores/Zep/Zep_Upsert.ts index 0b2e003a..f05fc207 100644 --- a/packages/components/nodes/vectorstores/Zep/Zep_Upsert.ts +++ b/packages/components/nodes/vectorstores/Zep/Zep_Upsert.ts @@ -1,9 +1,9 @@ -import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' -import { ZepVectorStore, IZepConfig } from 'langchain/vectorstores/zep' -import { Embeddings } from 'langchain/embeddings/base' -import { Document } from 'langchain/document' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { flatten } from 'lodash' +import { ZepVectorStore, IZepConfig } from '@langchain/community/vectorstores/zep' +import { Embeddings } from '@langchain/core/embeddings' +import { Document } from '@langchain/core/documents' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOutputsValue, INodeParams } from '../../../src/Interface' class Zep_Upsert_VectorStores implements INode { label: string diff --git a/packages/components/package.json b/packages/components/package.json index a9d57a10..176d2972 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -28,9 +28,13 @@ "@google-ai/generativelanguage": "^0.2.1", "@google/generative-ai": "^0.1.3", "@huggingface/inference": "^2.6.1", - "@langchain/community": "^0.0.16", - "@langchain/google-genai": "^0.0.6", + "@langchain/anthropic": "^0.0.9", + "@langchain/cohere": "^0.0.2", + "@langchain/community": "^0.0.20", + "@langchain/google-genai": "^0.0.7", "@langchain/mistralai": "^0.0.6", + "@langchain/openai": "^0.0.12", + "@langchain/pinecone": "^0.0.1", "@notionhq/client": "^2.2.8", "@opensearch-project/opensearch": "^1.2.0", "@pinecone-database/pinecone": "^2.0.1", @@ -56,12 +60,13 @@ "html-to-text": "^9.0.5", "husky": "^8.0.3", "ioredis": "^5.3.2", - "langchain": "^0.0.214", + "jsonpointer": "^5.0.1", + "langchain": "^0.1.7", "langfuse": "2.0.2", "langfuse-langchain": "2.3.3", - "langsmith": "0.0.53", + "langsmith": "0.0.63", "linkifyjs": "^4.1.1", - "llmonitor": "^0.5.5", + "lunary": "^0.6.16", "mammoth": "^1.5.1", "moment": "^2.29.3", "mongodb": "^6.2.0", diff --git a/packages/components/src/Interface.ts b/packages/components/src/Interface.ts index fe08f070..08227cb4 100644 --- a/packages/components/src/Interface.ts +++ b/packages/components/src/Interface.ts @@ -149,8 +149,8 @@ export interface IUsedTool { * Classes */ -import { PromptTemplate as LangchainPromptTemplate, PromptTemplateInput } from 'langchain/prompts' -import { VectorStore } from 'langchain/vectorstores/base' +import { PromptTemplate as LangchainPromptTemplate, PromptTemplateInput } from '@langchain/core/prompts' +import { VectorStore } from '@langchain/core/vectorstores' export class PromptTemplate extends LangchainPromptTemplate { promptValues: ICommonObject @@ -202,7 +202,7 @@ export class VectorStoreRetriever { /** * Implement abstract classes and interface for memory */ -import { BaseMessage } from 'langchain/schema' +import { BaseMessage } from '@langchain/core/messages' import { BufferMemory, BufferWindowMemory, ConversationSummaryMemory } from 'langchain/memory' export interface MemoryMethods { diff --git a/packages/components/src/agents.ts b/packages/components/src/agents.ts index 5e241d50..36adc201 100644 --- a/packages/components/src/agents.ts +++ b/packages/components/src/agents.ts @@ -1,11 +1,13 @@ -import { AgentExecutorInput, BaseSingleActionAgent, BaseMultiActionAgent, RunnableAgent, StoppingMethod } from 'langchain/agents' -import { ChainValues, AgentStep, AgentFinish, AgentAction, BaseMessage, FunctionMessage, AIMessage } from 'langchain/schema' -import { OutputParserException } from 'langchain/schema/output_parser' -import { CallbackManager, CallbackManagerForChainRun, Callbacks } from 'langchain/callbacks' +import { ChainValues } from '@langchain/core/utils/types' +import { AgentStep, AgentFinish, AgentAction } from '@langchain/core/agents' +import { BaseMessage, FunctionMessage, AIMessage } from '@langchain/core/messages' +import { OutputParserException } from '@langchain/core/output_parsers' +import { CallbackManager, CallbackManagerForChainRun, Callbacks } from '@langchain/core/callbacks/manager' import { ToolInputParsingException, Tool } from '@langchain/core/tools' -import { Runnable } from 'langchain/schema/runnable' -import { BaseChain, SerializedLLMChain } from 'langchain/chains' +import { Runnable } from '@langchain/core/runnables' import { Serializable } from '@langchain/core/load/serializable' +import { BaseChain, SerializedLLMChain } from 'langchain/chains' +import { AgentExecutorInput, BaseSingleActionAgent, BaseMultiActionAgent, RunnableAgent, StoppingMethod } from 'langchain/agents' type AgentExecutorOutput = ChainValues diff --git a/packages/components/src/handler.ts b/packages/components/src/handler.ts index 5d2b53f6..cc6499b1 100644 --- a/packages/components/src/handler.ts +++ b/packages/components/src/handler.ts @@ -1,17 +1,21 @@ -import { BaseTracer, Run, BaseCallbackHandler, LangChainTracer } from 'langchain/callbacks' -import { AgentAction, ChainValues } from 'langchain/schema' import { Logger } from 'winston' +import { v4 as uuidv4 } from 'uuid' import { Server } from 'socket.io' import { Client } from 'langsmith' -import { LLMonitorHandler, LLMonitorHandlerFields } from 'langchain/callbacks/handlers/llmonitor' -import { getCredentialData, getCredentialParam } from './utils' -import { ICommonObject, INodeData } from './Interface' import CallbackHandler from 'langfuse-langchain' -import { LangChainTracerFields } from '@langchain/core/tracers/tracer_langchain' +import lunary from 'lunary' import { RunTree, RunTreeConfig, Client as LangsmithClient } from 'langsmith' import { Langfuse, LangfuseTraceClient, LangfuseSpanClient, LangfuseGenerationClient } from 'langfuse' -import monitor from 'llmonitor' -import { v4 as uuidv4 } from 'uuid' + +import { BaseCallbackHandler } from '@langchain/core/callbacks/base' +import { LangChainTracer, LangChainTracerFields } from '@langchain/core/tracers/tracer_langchain' +import { BaseTracer, Run } from '@langchain/core/tracers/base' +import { ChainValues } from '@langchain/core/utils/types' +import { AgentAction } from '@langchain/core/agents' +import { LunaryHandler } from '@langchain/community/callbacks/handlers/lunary' + +import { getCredentialData, getCredentialParam } from './utils' +import { ICommonObject, INodeData } from './Interface' interface AgentRun extends Run { actions: AgentAction[] @@ -268,20 +272,20 @@ export const additionalCallbacks = async (nodeData: INodeData, options: ICommonO const handler = new CallbackHandler(langFuseOptions) callbacks.push(handler) - } else if (provider === 'llmonitor') { - const llmonitorAppId = getCredentialParam('llmonitorAppId', credentialData, nodeData) - const llmonitorEndpoint = getCredentialParam('llmonitorEndpoint', credentialData, nodeData) + } else if (provider === 'lunary') { + const lunaryAppId = getCredentialParam('lunaryAppId', credentialData, nodeData) + const lunaryEndpoint = getCredentialParam('lunaryEndpoint', credentialData, nodeData) - let llmonitorFields: LLMonitorHandlerFields = { - appId: llmonitorAppId, - apiUrl: llmonitorEndpoint ?? 'https://app.llmonitor.com' + let lunaryFields = { + appId: lunaryAppId, + apiUrl: lunaryEndpoint ?? 'https://app.lunary.ai' } - if (nodeData?.inputs?.analytics?.llmonitor) { - llmonitorFields = { ...llmonitorFields, ...nodeData?.inputs?.analytics?.llmonitor } + if (nodeData?.inputs?.analytics?.lunary) { + lunaryFields = { ...lunaryFields, ...nodeData?.inputs?.analytics?.lunary } } - const handler = new LLMonitorHandler(llmonitorFields) + const handler = new LunaryHandler(lunaryFields) callbacks.push(handler) } } @@ -339,16 +343,16 @@ export class AnalyticHandler { release }) this.handlers['langFuse'] = { client: langfuse } - } else if (provider === 'llmonitor') { - const llmonitorAppId = getCredentialParam('llmonitorAppId', credentialData, this.nodeData) - const llmonitorEndpoint = getCredentialParam('llmonitorEndpoint', credentialData, this.nodeData) + } else if (provider === 'lunary') { + const lunaryAppId = getCredentialParam('lunaryAppId', credentialData, this.nodeData) + const lunaryEndpoint = getCredentialParam('lunaryEndpoint', credentialData, this.nodeData) - monitor.init({ - appId: llmonitorAppId, - apiUrl: llmonitorEndpoint + lunary.init({ + appId: lunaryAppId, + apiUrl: lunaryEndpoint }) - this.handlers['llmonitor'] = { client: monitor } + this.handlers['lunary'] = { client: lunary } } } } @@ -361,7 +365,7 @@ export class AnalyticHandler { const returnIds: ICommonObject = { langSmith: {}, langFuse: {}, - llmonitor: {} + lunary: {} } if (Object.prototype.hasOwnProperty.call(this.handlers, 'langSmith')) { @@ -427,8 +431,8 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const monitor = this.handlers['lunary'].client if (monitor) { const runId = uuidv4() @@ -437,10 +441,10 @@ export class AnalyticHandler { name, userId: this.options.chatId, input, - ...this.nodeData?.inputs?.analytics?.llmonitor + ...this.nodeData?.inputs?.analytics?.lunary }) - this.handlers['llmonitor'].chainEvent = { [runId]: runId } - returnIds['llmonitor'].chainEvent = runId + this.handlers['lunary'].chainEvent = { [runId]: runId } + returnIds['lunary'].chainEvent = runId } } @@ -473,9 +477,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const chainEventId = returnIds['llmonitor'].chainEvent - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const chainEventId = returnIds['lunary'].chainEvent + const monitor = this.handlers['lunary'].client if (monitor && chainEventId) { await monitor.trackEvent('chain', 'end', { @@ -514,9 +518,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const chainEventId = returnIds['llmonitor'].chainEvent - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const chainEventId = returnIds['lunary'].chainEvent + const monitor = this.handlers['lunary'].client if (monitor && chainEventId) { await monitor.trackEvent('chain', 'end', { @@ -531,7 +535,7 @@ export class AnalyticHandler { const returnIds: ICommonObject = { langSmith: {}, langFuse: {}, - llmonitor: {} + lunary: {} } if (Object.prototype.hasOwnProperty.call(this.handlers, 'langSmith')) { @@ -562,9 +566,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const monitor = this.handlers['llmonitor'].client - const chainEventId: string = this.handlers['llmonitor'].chainEvent[parentIds['llmonitor'].chainEvent] + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const monitor = this.handlers['lunary'].client + const chainEventId: string = this.handlers['lunary'].chainEvent[parentIds['lunary'].chainEvent] if (monitor && chainEventId) { const runId = uuidv4() @@ -575,8 +579,8 @@ export class AnalyticHandler { userId: this.options.chatId, input }) - this.handlers['llmonitor'].llmEvent = { [runId]: runId } - returnIds['llmonitor'].llmEvent = runId + this.handlers['lunary'].llmEvent = { [runId]: runId } + returnIds['lunary'].llmEvent = runId } } @@ -605,9 +609,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const llmEventId: string = this.handlers['llmonitor'].llmEvent[returnIds['llmonitor'].llmEvent] - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const llmEventId: string = this.handlers['lunary'].llmEvent[returnIds['lunary'].llmEvent] + const monitor = this.handlers['lunary'].client if (monitor && llmEventId) { await monitor.trackEvent('llm', 'end', { @@ -640,9 +644,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const llmEventId: string = this.handlers['llmonitor'].llmEvent[returnIds['llmonitor'].llmEvent] - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const llmEventId: string = this.handlers['lunary'].llmEvent[returnIds['lunary'].llmEvent] + const monitor = this.handlers['lunary'].client if (monitor && llmEventId) { await monitor.trackEvent('llm', 'end', { @@ -657,7 +661,7 @@ export class AnalyticHandler { const returnIds: ICommonObject = { langSmith: {}, langFuse: {}, - llmonitor: {} + lunary: {} } if (Object.prototype.hasOwnProperty.call(this.handlers, 'langSmith')) { @@ -688,9 +692,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const monitor = this.handlers['llmonitor'].client - const chainEventId: string = this.handlers['llmonitor'].chainEvent[parentIds['llmonitor'].chainEvent] + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const monitor = this.handlers['lunary'].client + const chainEventId: string = this.handlers['lunary'].chainEvent[parentIds['lunary'].chainEvent] if (monitor && chainEventId) { const runId = uuidv4() @@ -701,8 +705,8 @@ export class AnalyticHandler { userId: this.options.chatId, input }) - this.handlers['llmonitor'].toolEvent = { [runId]: runId } - returnIds['llmonitor'].toolEvent = runId + this.handlers['lunary'].toolEvent = { [runId]: runId } + returnIds['lunary'].toolEvent = runId } } @@ -731,9 +735,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const toolEventId: string = this.handlers['llmonitor'].toolEvent[returnIds['llmonitor'].toolEvent] - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const toolEventId: string = this.handlers['lunary'].toolEvent[returnIds['lunary'].toolEvent] + const monitor = this.handlers['lunary'].client if (monitor && toolEventId) { await monitor.trackEvent('tool', 'end', { @@ -766,9 +770,9 @@ export class AnalyticHandler { } } - if (Object.prototype.hasOwnProperty.call(this.handlers, 'llmonitor')) { - const toolEventId: string = this.handlers['llmonitor'].llmEvent[returnIds['llmonitor'].toolEvent] - const monitor = this.handlers['llmonitor'].client + if (Object.prototype.hasOwnProperty.call(this.handlers, 'lunary')) { + const toolEventId: string = this.handlers['lunary'].llmEvent[returnIds['lunary'].toolEvent] + const monitor = this.handlers['lunary'].client if (monitor && toolEventId) { await monitor.trackEvent('tool', 'end', { diff --git a/packages/components/src/utils.ts b/packages/components/src/utils.ts index 7e9a68eb..5d1dab4d 100644 --- a/packages/components/src/utils.ts +++ b/packages/components/src/utils.ts @@ -8,7 +8,7 @@ import { DataSource } from 'typeorm' import { ICommonObject, IDatabaseEntity, IMessage, INodeData, IVariable } from './Interface' import { AES, enc } from 'crypto-js' import { ChatMessageHistory } from 'langchain/memory' -import { AIMessage, HumanMessage, BaseMessage } from 'langchain/schema' +import { AIMessage, HumanMessage, BaseMessage } from '@langchain/core/messages' export const numberOrExpressionRegex = '^(\\d+\\.?\\d*|{{.*}})$' //return true if string consists only numbers OR expression {{}} export const notEmptyRegex = '(.|\\s)*\\S(.|\\s)*' //return true if string is not empty or blank @@ -49,7 +49,7 @@ export const availableDependencies = [ 'langfuse', 'langsmith', 'linkifyjs', - 'llmonitor', + 'lunary', 'mammoth', 'moment', 'mongodb', diff --git a/packages/ui/src/ui-component/dialog/AnalyseFlowDialog.js b/packages/ui/src/ui-component/dialog/AnalyseFlowDialog.js index fe753957..a326db9a 100644 --- a/packages/ui/src/ui-component/dialog/AnalyseFlowDialog.js +++ b/packages/ui/src/ui-component/dialog/AnalyseFlowDialog.js @@ -31,7 +31,7 @@ import { Input } from 'ui-component/input/Input' import { StyledButton } from 'ui-component/button/StyledButton' import langsmithPNG from 'assets/images/langchain.png' import langfuseSVG from 'assets/images/langfuse.svg' -import llmonitorSVG from 'assets/images/lunary.svg' +import lunarySVG from 'assets/images/lunary.svg' // store import { HIDE_CANVAS_DIALOG, SHOW_CANVAS_DIALOG } from 'store/actions' @@ -97,16 +97,16 @@ const analyticProviders = [ ] }, { - label: 'LLMonitor', - name: 'llmonitor', - icon: llmonitorSVG, - url: 'https://llmonitor.com', + label: 'Lunary', + name: 'lunary', + icon: lunarySVG, + url: 'https://lunary.ai', inputs: [ { label: 'Connect Credential', name: 'credential', type: 'credential', - credentialNames: ['llmonitorApi'] + credentialNames: ['lunaryApi'] }, { label: 'On/Off', From 7486d33237c46bc0112fb7b3fb3e48f6cd1c89bf Mon Sep 17 00:00:00 2001 From: Ilango Date: Tue, 6 Feb 2024 10:36:27 +0530 Subject: [PATCH 02/19] Fix issue with relativeLinksMethod and limit not applying to manage links --- packages/server/src/index.ts | 3 ++- packages/ui/src/api/scraper.js | 6 +++--- .../src/ui-component/dialog/ManageScrapedLinksDialog.js | 2 +- packages/ui/src/views/canvas/NodeInputHandler.js | 8 ++++++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index dbb5717d..7ceba556 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1148,8 +1148,9 @@ export class App { this.app.get('/api/v1/fetch-links', async (req: Request, res: Response) => { const url = decodeURIComponent(req.query.url as string) const relativeLinksMethod = req.query.relativeLinksMethod as string + const limit = parseInt(req.query.limit as string) if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`) - const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, 0) : await xmlScrape(url, 0) + const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit) res.json({ status: 'OK', links }) }) diff --git a/packages/ui/src/api/scraper.js b/packages/ui/src/api/scraper.js index 382a9263..89333156 100644 --- a/packages/ui/src/api/scraper.js +++ b/packages/ui/src/api/scraper.js @@ -1,8 +1,8 @@ import client from './client' -const fetchAllLinks = (url, relativeLinksMethod) => - client.get(`/fetch-links?url=${encodeURIComponent(url)}&relativeLinksMethod=${relativeLinksMethod}`) +const fetchLinks = (url, relativeLinksMethod, relativeLinksLimit) => + client.get(`/fetch-links?url=${encodeURIComponent(url)}&relativeLinksMethod=${relativeLinksMethod}&limit=${relativeLinksLimit}`) export default { - fetchAllLinks + fetchLinks } diff --git a/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js b/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js index a707d82e..9a846ce9 100644 --- a/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js +++ b/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js @@ -53,7 +53,7 @@ const ManageScrapedLinksDialog = ({ show, dialogProps, onCancel, onSave }) => { const handleFetchLinks = async () => { setLoading(true) - const fetchLinksResp = await scraperApi.fetchAllLinks(url, 'webCrawl') + const fetchLinksResp = await scraperApi.fetchLinks(url, dialogProps.relativeLinksMethod, dialogProps.limit) if (fetchLinksResp.data) { setSelectedLinks(fetchLinksResp.data.links) } diff --git a/packages/ui/src/views/canvas/NodeInputHandler.js b/packages/ui/src/views/canvas/NodeInputHandler.js index bc877c9f..560fb34e 100644 --- a/packages/ui/src/views/canvas/NodeInputHandler.js +++ b/packages/ui/src/views/canvas/NodeInputHandler.js @@ -91,9 +91,11 @@ const NodeInputHandler = ({ inputAnchor, inputParam, data, disabled = false, isA } } - const onManageLinksDialogClicked = (url, selectedLinks) => { + const onManageLinksDialogClicked = (url, selectedLinks, relativeLinksMethod, limit) => { const dialogProps = { url, + relativeLinksMethod, + limit, selectedLinks, confirmButtonName: 'Save', cancelButtonName: 'Cancel' @@ -475,7 +477,9 @@ const NodeInputHandler = ({ inputAnchor, inputParam, data, disabled = false, isA onClick={() => onManageLinksDialogClicked( data.inputs[inputParam.name] ?? inputParam.default ?? '', - data.inputs.selectedLinks + data.inputs.selectedLinks, + data.inputs['relativeLinksMethod'] ?? 'webCrawl', + parseInt(data.inputs['limit']) ?? 0 ) } > From c2ae7e138cbf8a4355cafc109df5b7b5a0eb0a21 Mon Sep 17 00:00:00 2001 From: Ilango Date: Tue, 6 Feb 2024 14:40:19 +0530 Subject: [PATCH 03/19] Apply limit to selectedLinks even when relative links method is not specified --- packages/components/nodes/documentloaders/Cheerio/Cheerio.ts | 2 +- .../components/nodes/documentloaders/Playwright/Playwright.ts | 2 +- .../components/nodes/documentloaders/Puppeteer/Puppeteer.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts b/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts index 3eba0ece..6af1f9a9 100644 --- a/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts +++ b/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts @@ -143,7 +143,7 @@ class Cheerio_DocumentLoaders implements INode { } else if (selectedLinks && selectedLinks.length > 0) { if (process.env.DEBUG === 'true') options.logger.info(`pages: ${JSON.stringify(selectedLinks)}, length: ${selectedLinks.length}`) - for (const page of selectedLinks) { + for (const page of selectedLinks.slice(0, limit)) { docs.push(...(await cheerioLoader(page))) } } else { diff --git a/packages/components/nodes/documentloaders/Playwright/Playwright.ts b/packages/components/nodes/documentloaders/Playwright/Playwright.ts index 2de166ce..2ba60d0f 100644 --- a/packages/components/nodes/documentloaders/Playwright/Playwright.ts +++ b/packages/components/nodes/documentloaders/Playwright/Playwright.ts @@ -184,7 +184,7 @@ class Playwright_DocumentLoaders implements INode { } else if (selectedLinks && selectedLinks.length > 0) { if (process.env.DEBUG === 'true') options.logger.info(`pages: ${JSON.stringify(selectedLinks)}, length: ${selectedLinks.length}`) - for (const page of selectedLinks) { + for (const page of selectedLinks.slice(0, limit)) { docs.push(...(await playwrightLoader(page))) } } else { diff --git a/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts b/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts index 3d28f310..1f8c8f3f 100644 --- a/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts +++ b/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts @@ -185,7 +185,7 @@ class Puppeteer_DocumentLoaders implements INode { } else if (selectedLinks && selectedLinks.length > 0) { if (process.env.DEBUG === 'true') options.logger.info(`pages: ${JSON.stringify(selectedLinks)}, length: ${selectedLinks.length}`) - for (const page of selectedLinks) { + for (const page of selectedLinks.slice(0, limit)) { docs.push(...(await puppeteerLoader(page))) } } else { From 17a27d92a5e4c09b5b1ba865e7727fd560fb9f0c Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 7 Feb 2024 14:52:10 +0800 Subject: [PATCH 04/19] disable warnings --- packages/components/package.json | 4 ++-- packages/server/src/commands/start.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/components/package.json b/packages/components/package.json index 7ab8009b..f50d3fed 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -61,9 +61,9 @@ "husky": "^8.0.3", "ioredis": "^5.3.2", "jsonpointer": "^5.0.1", - "langchain": "^0.1.7", + "langchain": "^0.1.14", "langfuse": "2.0.2", - "langfuse-langchain": "2.6.0", + "langfuse-langchain": "^2.6.2-alpha.0", "langsmith": "0.0.63", "linkifyjs": "^4.1.1", "llamaindex": "^0.0.48", diff --git a/packages/server/src/commands/start.ts b/packages/server/src/commands/start.ts index dfb20766..12907bbe 100644 --- a/packages/server/src/commands/start.ts +++ b/packages/server/src/commands/start.ts @@ -123,6 +123,9 @@ export default class Start extends Command { // Telemetry if (flags.DISABLE_FLOWISE_TELEMETRY) process.env.DISABLE_FLOWISE_TELEMETRY = flags.DISABLE_FLOWISE_TELEMETRY + // Disable langchain warnings + process.env.LANGCHAIN_SUPPRESS_MIGRATION_WARNINGS = 'true' + await (async () => { try { logger.info('Starting Flowise...') From 4be28c4050135b6fc2354e43efccf30d3787acbc Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Wed, 7 Feb 2024 19:32:48 +0800 Subject: [PATCH 05/19] add finish log --- packages/server/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 7ceba556..bd44b739 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1151,6 +1151,7 @@ export class App { const limit = parseInt(req.query.limit as string) if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`) const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit) + if (process.env.DEBUG === 'true') console.info(`Finish ${relativeLinksMethod}`) res.json({ status: 'OK', links }) }) From e3c899230c036bbaa817952c07e8960e8fbdf5e6 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sat, 10 Feb 2024 12:02:21 +0800 Subject: [PATCH 06/19] add FLOWISE_FILE_SIZE_LIMIT variable --- packages/server/.env.example | 1 + packages/server/src/index.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/server/.env.example b/packages/server/.env.example index ebc59cf3..a7a93345 100644 --- a/packages/server/.env.example +++ b/packages/server/.env.example @@ -20,6 +20,7 @@ PORT=3000 # FLOWISE_USERNAME=user # FLOWISE_PASSWORD=1234 # FLOWISE_SECRETKEY_OVERWRITE=myencryptionkey +# FLOWISE_FILE_SIZE_LIMIT=50mb # DEBUG=true # LOG_LEVEL=debug (error | warn | info | verbose | debug) # TOOL_FUNCTION_BUILTIN_DEP=crypto,fs diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 48f93249..973ce1ea 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -120,8 +120,9 @@ export class App { async config(socketIO?: Server) { // Limit is needed to allow sending/receiving base64 encoded string - this.app.use(express.json({ limit: '50mb' })) - this.app.use(express.urlencoded({ limit: '50mb', extended: true })) + const flowise_file_size_limit = process.env.FLOWISE_FILE_SIZE_LIMIT ?? '50mb' + this.app.use(express.json({ limit: flowise_file_size_limit })) + this.app.use(express.urlencoded({ limit: flowise_file_size_limit, extended: true })) if (process.env.NUMBER_OF_PROXIES && parseInt(process.env.NUMBER_OF_PROXIES) > 0) this.app.set('trust proxy', parseInt(process.env.NUMBER_OF_PROXIES)) From 702b8c1aab8474e09373874657efb3c061b71ada Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sat, 10 Feb 2024 12:12:32 +0800 Subject: [PATCH 07/19] add FLOWISE_FILE_SIZE_LIMIT into docker env --- docker/.env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/.env.example b/docker/.env.example index a4beaf8a..84019299 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -21,6 +21,7 @@ LOG_PATH=/root/.flowise/logs # FLOWISE_USERNAME=user # FLOWISE_PASSWORD=1234 # FLOWISE_SECRETKEY_OVERWRITE=myencryptionkey +# FLOWISE_FILE_SIZE_LIMIT=50mb # DEBUG=true # LOG_LEVEL=debug (error | warn | info | verbose | debug) # TOOL_FUNCTION_BUILTIN_DEP=crypto,fs From a132f51727559c82fa157bcb37047cb727599b92 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sun, 11 Feb 2024 17:37:48 +0800 Subject: [PATCH 08/19] add more FLOWISE_FILE_SIZE_LIMIT --- CONTRIBUTING-ZH.md | 1 + CONTRIBUTING.md | 1 + docker/docker-compose.yml | 1 + packages/server/src/commands/start.ts | 4 ++++ 4 files changed, 7 insertions(+) diff --git a/CONTRIBUTING-ZH.md b/CONTRIBUTING-ZH.md index 7e35d194..e000da4f 100644 --- a/CONTRIBUTING-ZH.md +++ b/CONTRIBUTING-ZH.md @@ -123,6 +123,7 @@ Flowise 支持不同的环境变量来配置您的实例。您可以在 `package | PORT | Flowise 运行的 HTTP 端口 | 数字 | 3000 | | FLOWISE_USERNAME | 登录用户名 | 字符串 | | | FLOWISE_PASSWORD | 登录密码 | 字符串 | | +| FLOWISE_FILE_SIZE_LIMIT | 上传文件大小限制 | 字符串 | 50mb | | DEBUG | 打印组件的日志 | 布尔值 | | | LOG_PATH | 存储日志文件的位置 | 字符串 | `your-path/Flowise/logs` | | LOG_LEVEL | 日志的不同级别 | 枚举字符串: `error`, `info`, `verbose`, `debug` | `info` | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 25a27e84..fdeb848b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -127,6 +127,7 @@ Flowise support different environment variables to configure your instance. You | IFRAME_ORIGINS | The allowed origins for iframe src embedding | String | | | FLOWISE_USERNAME | Username to login | String | | | FLOWISE_PASSWORD | Password to login | String | | +| FLOWISE_FILE_SIZE_LIMIT | Upload File Size Limit | String | 50mb | | DEBUG | Print logs from components | Boolean | | | LOG_PATH | Location where log files are stored | String | `your-path/Flowise/logs` | | LOG_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` | diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 71bcfcfb..4da945fe 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -10,6 +10,7 @@ services: - IFRAME_ORIGINS=${IFRAME_ORIGINS} - FLOWISE_USERNAME=${FLOWISE_USERNAME} - FLOWISE_PASSWORD=${FLOWISE_PASSWORD} + - FLOWISE_FILE_SIZE_LIMIT=${FLOWISE_FILE_SIZE_LIMIT} - DEBUG=${DEBUG} - DATABASE_PATH=${DATABASE_PATH} - DATABASE_TYPE=${DATABASE_TYPE} diff --git a/packages/server/src/commands/start.ts b/packages/server/src/commands/start.ts index dfb20766..a649dba6 100644 --- a/packages/server/src/commands/start.ts +++ b/packages/server/src/commands/start.ts @@ -18,6 +18,7 @@ export default class Start extends Command { static flags = { FLOWISE_USERNAME: Flags.string(), FLOWISE_PASSWORD: Flags.string(), + FLOWISE_FILE_SIZE_LIMIT: Flags.string(), PORT: Flags.string(), CORS_ORIGINS: Flags.string(), IFRAME_ORIGINS: Flags.string(), @@ -91,6 +92,9 @@ export default class Start extends Command { if (flags.FLOWISE_PASSWORD) process.env.FLOWISE_PASSWORD = flags.FLOWISE_PASSWORD if (flags.APIKEY_PATH) process.env.APIKEY_PATH = flags.APIKEY_PATH + //API Configuration + if (flags.FLOWISE_FILE_SIZE_LIMIT) process.env.FLOWISE_FILE_SIZE_LIMIT = flags.FLOWISE_FILE_SIZE_LIMIT + // Credentials if (flags.SECRETKEY_PATH) process.env.SECRETKEY_PATH = flags.SECRETKEY_PATH if (flags.FLOWISE_SECRETKEY_OVERWRITE) process.env.FLOWISE_SECRETKEY_OVERWRITE = flags.FLOWISE_SECRETKEY_OVERWRITE From 5471a4c9aa48068a7aecf6433dc7e7da6bd8d973 Mon Sep 17 00:00:00 2001 From: Ilango Date: Mon, 12 Feb 2024 12:01:19 +0530 Subject: [PATCH 09/19] Show error when relative links method is not set and allow 0 as limit value --- .../nodes/documentloaders/Cheerio/Cheerio.ts | 4 +- .../documentloaders/Playwright/Playwright.ts | 4 +- .../documentloaders/Puppeteer/Puppeteer.ts | 4 +- packages/server/src/index.ts | 4 ++ .../dialog/ManageScrapedLinksDialog.js | 50 +++++++++++++++++-- 5 files changed, 58 insertions(+), 8 deletions(-) diff --git a/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts b/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts index 6af1f9a9..48ae85bc 100644 --- a/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts +++ b/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts @@ -126,7 +126,9 @@ class Cheerio_DocumentLoaders implements INode { let docs = [] if (relativeLinksMethod) { if (process.env.DEBUG === 'true') options.logger.info(`Start ${relativeLinksMethod}`) - if (!limit) limit = 10 + // if limit is 0 we don't want it to default to 10 so we check explicitly for null or undefined + // so when limit is 0 we can fetch all the links + if (limit === null || limit === undefined) limit = 10 else if (limit < 0) throw new Error('Limit cannot be less than 0') const pages: string[] = selectedLinks && selectedLinks.length > 0 diff --git a/packages/components/nodes/documentloaders/Playwright/Playwright.ts b/packages/components/nodes/documentloaders/Playwright/Playwright.ts index 2ba60d0f..55fa9608 100644 --- a/packages/components/nodes/documentloaders/Playwright/Playwright.ts +++ b/packages/components/nodes/documentloaders/Playwright/Playwright.ts @@ -167,7 +167,9 @@ class Playwright_DocumentLoaders implements INode { let docs = [] if (relativeLinksMethod) { if (process.env.DEBUG === 'true') options.logger.info(`Start ${relativeLinksMethod}`) - if (!limit) limit = 10 + // if limit is 0 we don't want it to default to 10 so we check explicitly for null or undefined + // so when limit is 0 we can fetch all the links + if (limit === null || limit === undefined) limit = 10 else if (limit < 0) throw new Error('Limit cannot be less than 0') const pages: string[] = selectedLinks && selectedLinks.length > 0 diff --git a/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts b/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts index 1f8c8f3f..90b5a277 100644 --- a/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts +++ b/packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts @@ -168,7 +168,9 @@ class Puppeteer_DocumentLoaders implements INode { let docs = [] if (relativeLinksMethod) { if (process.env.DEBUG === 'true') options.logger.info(`Start ${relativeLinksMethod}`) - if (!limit) limit = 10 + // if limit is 0 we don't want it to default to 10 so we check explicitly for null or undefined + // so when limit is 0 we can fetch all the links + if (limit === null || limit === undefined) limit = 10 else if (limit < 0) throw new Error('Limit cannot be less than 0') const pages: string[] = selectedLinks && selectedLinks.length > 0 diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 7ceba556..b994ba62 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1148,6 +1148,10 @@ export class App { this.app.get('/api/v1/fetch-links', async (req: Request, res: Response) => { const url = decodeURIComponent(req.query.url as string) const relativeLinksMethod = req.query.relativeLinksMethod as string + if (!relativeLinksMethod) { + return res.status(500).send('Please choose a Relative Links Method in Additional Parameters.') + } + const limit = parseInt(req.query.limit as string) if (process.env.DEBUG === 'true') console.info(`Start ${relativeLinksMethod}`) const links: string[] = relativeLinksMethod === 'webCrawl' ? await webCrawl(url, limit) : await xmlScrape(url, limit) diff --git a/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js b/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js index 9a846ce9..a4199504 100644 --- a/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js +++ b/packages/ui/src/ui-component/dialog/ManageScrapedLinksDialog.js @@ -16,7 +16,7 @@ import { Stack, Typography } from '@mui/material' -import { IconTrash } from '@tabler/icons' +import { IconTrash, IconX } from '@tabler/icons' import PerfectScrollbar from 'react-perfect-scrollbar' import { BackdropLoader } from 'ui-component/loading/BackdropLoader' @@ -24,12 +24,23 @@ import { StyledButton } from 'ui-component/button/StyledButton' import scraperApi from 'api/scraper' -import { HIDE_CANVAS_DIALOG, SHOW_CANVAS_DIALOG } from 'store/actions' +import useNotifier from 'utils/useNotifier' + +import { + HIDE_CANVAS_DIALOG, + SHOW_CANVAS_DIALOG, + enqueueSnackbar as enqueueSnackbarAction, + closeSnackbar as closeSnackbarAction +} from 'store/actions' const ManageScrapedLinksDialog = ({ show, dialogProps, onCancel, onSave }) => { const portalElement = document.getElementById('portal') const dispatch = useDispatch() + useNotifier() + const enqueueSnackbar = (...args) => dispatch(enqueueSnackbarAction(...args)) + const closeSnackbar = (...args) => dispatch(closeSnackbarAction(...args)) + const [loading, setLoading] = useState(false) const [selectedLinks, setSelectedLinks] = useState([]) const [url, setUrl] = useState('') @@ -53,9 +64,38 @@ const ManageScrapedLinksDialog = ({ show, dialogProps, onCancel, onSave }) => { const handleFetchLinks = async () => { setLoading(true) - const fetchLinksResp = await scraperApi.fetchLinks(url, dialogProps.relativeLinksMethod, dialogProps.limit) - if (fetchLinksResp.data) { - setSelectedLinks(fetchLinksResp.data.links) + try { + const fetchLinksResp = await scraperApi.fetchLinks(url, dialogProps.relativeLinksMethod, dialogProps.limit) + if (fetchLinksResp.data) { + setSelectedLinks(fetchLinksResp.data.links) + enqueueSnackbar({ + message: 'Successfully fetched links', + options: { + key: new Date().getTime() + Math.random(), + variant: 'success', + action: (key) => ( + + ) + } + }) + } + } catch (error) { + const errorData = error.response.data || `${error.response.status}: ${error.response.statusText}` + enqueueSnackbar({ + message: errorData, + options: { + key: new Date().getTime() + Math.random(), + variant: 'error', + persist: true, + action: (key) => ( + + ) + } + }) } setLoading(false) } From 55c2a8612b9065a1ee5d2cbafb0dfb34fed53710 Mon Sep 17 00:00:00 2001 From: Jared Tracy Date: Mon, 12 Feb 2024 20:12:54 -0600 Subject: [PATCH 10/19] fixes bug where querying by chatId results in no records previous logic for where clause of memoryType checked for existence of chatId and would query for memoryType is null This where clause logic results in an empty result for any request to the endpoint that filters by chatId --- packages/server/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 07797f32..a6566a5b 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1453,7 +1453,7 @@ export class App { chatflowid, chatType, chatId, - memoryType: memoryType ?? (chatId ? IsNull() : undefined), + memoryType: memoryType ?? undefined, sessionId: sessionId ?? undefined, createdDate: toDate && fromDate ? Between(fromDate, toDate) : undefined }, From a6abd593a62c743f1c2949e9b012b7017aff6e37 Mon Sep 17 00:00:00 2001 From: Jared Tracy Date: Mon, 12 Feb 2024 20:53:40 -0600 Subject: [PATCH 11/19] Allows query chatmessage API endpoint by messageId This will be useful when the exact message is required by another system. --- packages/server/src/index.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 07797f32..284c88d6 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -511,6 +511,7 @@ export class App { const chatId = req.query?.chatId as string | undefined const memoryType = req.query?.memoryType as string | undefined const sessionId = req.query?.sessionId as string | undefined + const messageId = req.query?.messageId as string | undefined const startDate = req.query?.startDate as string | undefined const endDate = req.query?.endDate as string | undefined let chatTypeFilter = req.query?.chatType as chatType | undefined @@ -538,7 +539,8 @@ export class App { memoryType, sessionId, startDate, - endDate + endDate, + messageId ) return res.json(chatmessages) }) @@ -1440,7 +1442,8 @@ export class App { memoryType?: string, sessionId?: string, startDate?: string, - endDate?: string + endDate?: string, + messageId?: string ): Promise { let fromDate if (startDate) fromDate = new Date(startDate) @@ -1455,7 +1458,8 @@ export class App { chatId, memoryType: memoryType ?? (chatId ? IsNull() : undefined), sessionId: sessionId ?? undefined, - createdDate: toDate && fromDate ? Between(fromDate, toDate) : undefined + createdDate: toDate && fromDate ? Between(fromDate, toDate) : undefined, + id: messageId ?? undefined }, order: { createdDate: sortOrder === 'DESC' ? 'DESC' : 'ASC' From 6de1e8aceccccf86e2bf78a13d7c533ea2a0679b Mon Sep 17 00:00:00 2001 From: Jared Tracy Date: Tue, 13 Feb 2024 10:44:05 -0600 Subject: [PATCH 12/19] handles invalid values for startDate, endDate also sets time window to beginning of the date or end of the date. This will be helpful with the timezone gap between the server (usually UTC) and the client (localized timezone) Ideal date solution to consider for the future would be to adjust the timestamp query based upon the server timezone setup. This becomes particularly helpful when the client is filtering by the end date but they are in a timezone behind UTC after the UTC has advanced to the next date. For example, being in Pacific time and querying for the current date after 4PM will result in not finding records that have been created after 4PM Pacific b/c the server timestamp (in UTC) will be the next calendar date. --- packages/server/src/index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index a6566a5b..d3453320 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1442,11 +1442,20 @@ export class App { startDate?: string, endDate?: string ): Promise { + const setDateToStartOrEndOfDay = (dateTimeStr: string, setHours: 'start' | 'end') => { + const date = new Date(dateTimeStr) + if (isNaN(date.getTime())) { + return undefined + } + setHours === 'start' ? date.setHours(0, 0, 0, 0) : date.setHours(23, 59, 59, 999) + return date + } + let fromDate - if (startDate) fromDate = new Date(startDate) + if (startDate) fromDate = setDateToStartOrEndOfDay(startDate, 'start') let toDate - if (endDate) toDate = new Date(endDate) + if (endDate) toDate = setDateToStartOrEndOfDay(endDate, 'end') return await this.AppDataSource.getRepository(ChatMessage).find({ where: { From 4d7c7d6ef5df5db53576ddd9e80bbffbd6acd952 Mon Sep 17 00:00:00 2001 From: Jared Tracy Date: Tue, 13 Feb 2024 11:11:53 -0600 Subject: [PATCH 13/19] Changes getMessage date logic from Between to >= and <= to fix issue if invalid startDate is passed in also cleans up imports from typeorm lib --- packages/server/src/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index d3453320..f401bbc1 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -10,7 +10,7 @@ import logger from './utils/logger' import { expressRequestLogger } from './utils/logger' import { v4 as uuidv4 } from 'uuid' import OpenAI from 'openai' -import { Between, IsNull, FindOptionsWhere } from 'typeorm' +import { FindOptionsWhere, MoreThanOrEqual, LessThanOrEqual } from 'typeorm' import { IChatFlow, IncomingInput, @@ -1464,7 +1464,8 @@ export class App { chatId, memoryType: memoryType ?? undefined, sessionId: sessionId ?? undefined, - createdDate: toDate && fromDate ? Between(fromDate, toDate) : undefined + ...(fromDate && { createdDate: MoreThanOrEqual(fromDate) }), + ...(toDate && { createdDate: LessThanOrEqual(toDate) }) }, order: { createdDate: sortOrder === 'DESC' ? 'DESC' : 'ASC' From 778e024c02f5fd292546b3416f9edc77dbba558b Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 14 Feb 2024 18:40:35 +0800 Subject: [PATCH 14/19] update query engine tool --- .../nodes/engine/QueryEngine/QueryEngine.ts | 94 ++- .../SubQuestionQueryEngine.ts | 160 ++-- .../tools/QueryEngineTool/QueryEngineTool.ts | 21 +- .../marketplaces/chatflows/Query Engine.json | 8 +- .../chatflows/SubQuestion Query Engine.json | 766 ++++++++++-------- 5 files changed, 581 insertions(+), 468 deletions(-) diff --git a/packages/components/nodes/engine/QueryEngine/QueryEngine.ts b/packages/components/nodes/engine/QueryEngine/QueryEngine.ts index bd6e040d..8ced3fcc 100644 --- a/packages/components/nodes/engine/QueryEngine/QueryEngine.ts +++ b/packages/components/nodes/engine/QueryEngine/QueryEngine.ts @@ -28,12 +28,12 @@ class QueryEngine_LlamaIndex implements INode { constructor(fields?: { sessionId?: string }) { this.label = 'Query Engine' this.name = 'queryEngine' - this.version = 1.0 + this.version = 2.0 this.type = 'QueryEngine' this.icon = 'query-engine.png' this.category = 'Engine' this.description = 'Simple query engine built to answer question over your data, without memory' - this.baseClasses = [this.type] + this.baseClasses = [this.type, 'BaseQueryEngine'] this.tags = ['LlamaIndex'] this.inputs = [ { @@ -59,52 +59,13 @@ class QueryEngine_LlamaIndex implements INode { this.sessionId = fields?.sessionId } - async init(): Promise { - return null + async init(nodeData: INodeData): Promise { + return prepareEngine(nodeData) } async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { const returnSourceDocuments = nodeData.inputs?.returnSourceDocuments as boolean - const vectorStoreRetriever = nodeData.inputs?.vectorStoreRetriever - const responseSynthesizerObj = nodeData.inputs?.responseSynthesizer - - let queryEngine = new RetrieverQueryEngine(vectorStoreRetriever) - - if (responseSynthesizerObj) { - if (responseSynthesizerObj.type === 'TreeSummarize') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new TreeSummarize(vectorStoreRetriever.serviceContext, responseSynthesizerObj.textQAPromptTemplate), - serviceContext: vectorStoreRetriever.serviceContext - }) - queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) - } else if (responseSynthesizerObj.type === 'CompactAndRefine') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new CompactAndRefine( - vectorStoreRetriever.serviceContext, - responseSynthesizerObj.textQAPromptTemplate, - responseSynthesizerObj.refinePromptTemplate - ), - serviceContext: vectorStoreRetriever.serviceContext - }) - queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) - } else if (responseSynthesizerObj.type === 'Refine') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new Refine( - vectorStoreRetriever.serviceContext, - responseSynthesizerObj.textQAPromptTemplate, - responseSynthesizerObj.refinePromptTemplate - ), - serviceContext: vectorStoreRetriever.serviceContext - }) - queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) - } else if (responseSynthesizerObj.type === 'SimpleResponseBuilder') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new SimpleResponseBuilder(vectorStoreRetriever.serviceContext), - serviceContext: vectorStoreRetriever.serviceContext - }) - queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) - } - } + const queryEngine = prepareEngine(nodeData) let text = '' let sourceDocuments: ICommonObject[] = [] @@ -140,4 +101,49 @@ class QueryEngine_LlamaIndex implements INode { } } +const prepareEngine = (nodeData: INodeData) => { + const vectorStoreRetriever = nodeData.inputs?.vectorStoreRetriever + const responseSynthesizerObj = nodeData.inputs?.responseSynthesizer + + let queryEngine = new RetrieverQueryEngine(vectorStoreRetriever) + + if (responseSynthesizerObj) { + if (responseSynthesizerObj.type === 'TreeSummarize') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new TreeSummarize(vectorStoreRetriever.serviceContext, responseSynthesizerObj.textQAPromptTemplate), + serviceContext: vectorStoreRetriever.serviceContext + }) + queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) + } else if (responseSynthesizerObj.type === 'CompactAndRefine') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new CompactAndRefine( + vectorStoreRetriever.serviceContext, + responseSynthesizerObj.textQAPromptTemplate, + responseSynthesizerObj.refinePromptTemplate + ), + serviceContext: vectorStoreRetriever.serviceContext + }) + queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) + } else if (responseSynthesizerObj.type === 'Refine') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new Refine( + vectorStoreRetriever.serviceContext, + responseSynthesizerObj.textQAPromptTemplate, + responseSynthesizerObj.refinePromptTemplate + ), + serviceContext: vectorStoreRetriever.serviceContext + }) + queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) + } else if (responseSynthesizerObj.type === 'SimpleResponseBuilder') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new SimpleResponseBuilder(vectorStoreRetriever.serviceContext), + serviceContext: vectorStoreRetriever.serviceContext + }) + queryEngine = new RetrieverQueryEngine(vectorStoreRetriever, responseSynthesizer) + } + } + + return queryEngine +} + module.exports = { nodeClass: QueryEngine_LlamaIndex } diff --git a/packages/components/nodes/engine/SubQuestionQueryEngine/SubQuestionQueryEngine.ts b/packages/components/nodes/engine/SubQuestionQueryEngine/SubQuestionQueryEngine.ts index a872c0a2..a2a1e029 100644 --- a/packages/components/nodes/engine/SubQuestionQueryEngine/SubQuestionQueryEngine.ts +++ b/packages/components/nodes/engine/SubQuestionQueryEngine/SubQuestionQueryEngine.ts @@ -33,13 +33,13 @@ class SubQuestionQueryEngine_LlamaIndex implements INode { constructor(fields?: { sessionId?: string }) { this.label = 'Sub Question Query Engine' this.name = 'subQuestionQueryEngine' - this.version = 1.0 + this.version = 2.0 this.type = 'SubQuestionQueryEngine' this.icon = 'subQueryEngine.svg' this.category = 'Engine' this.description = 'Breaks complex query into sub questions for each relevant data source, then gather all the intermediate reponses and synthesizes a final response' - this.baseClasses = [this.type] + this.baseClasses = [this.type, 'BaseQueryEngine'] this.tags = ['LlamaIndex'] this.inputs = [ { @@ -76,85 +76,13 @@ class SubQuestionQueryEngine_LlamaIndex implements INode { this.sessionId = fields?.sessionId } - async init(): Promise { - return null + async init(nodeData: INodeData): Promise { + return prepareEngine(nodeData) } async run(nodeData: INodeData, input: string, options: ICommonObject): Promise { const returnSourceDocuments = nodeData.inputs?.returnSourceDocuments as boolean - const embeddings = nodeData.inputs?.embeddings as BaseEmbedding - const model = nodeData.inputs?.model - - const serviceContext = serviceContextFromDefaults({ - llm: model, - embedModel: embeddings - }) - - let queryEngineTools = nodeData.inputs?.queryEngineTools as QueryEngineTool[] - queryEngineTools = flatten(queryEngineTools) - - let queryEngine = SubQuestionQueryEngine.fromDefaults({ - serviceContext, - queryEngineTools, - questionGen: new LLMQuestionGenerator({ llm: model }) - }) - - const responseSynthesizerObj = nodeData.inputs?.responseSynthesizer - if (responseSynthesizerObj) { - if (responseSynthesizerObj.type === 'TreeSummarize') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new TreeSummarize(serviceContext, responseSynthesizerObj.textQAPromptTemplate), - serviceContext - }) - queryEngine = SubQuestionQueryEngine.fromDefaults({ - responseSynthesizer, - serviceContext, - queryEngineTools, - questionGen: new LLMQuestionGenerator({ llm: model }) - }) - } else if (responseSynthesizerObj.type === 'CompactAndRefine') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new CompactAndRefine( - serviceContext, - responseSynthesizerObj.textQAPromptTemplate, - responseSynthesizerObj.refinePromptTemplate - ), - serviceContext - }) - queryEngine = SubQuestionQueryEngine.fromDefaults({ - responseSynthesizer, - serviceContext, - queryEngineTools, - questionGen: new LLMQuestionGenerator({ llm: model }) - }) - } else if (responseSynthesizerObj.type === 'Refine') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new Refine( - serviceContext, - responseSynthesizerObj.textQAPromptTemplate, - responseSynthesizerObj.refinePromptTemplate - ), - serviceContext - }) - queryEngine = SubQuestionQueryEngine.fromDefaults({ - responseSynthesizer, - serviceContext, - queryEngineTools, - questionGen: new LLMQuestionGenerator({ llm: model }) - }) - } else if (responseSynthesizerObj.type === 'SimpleResponseBuilder') { - const responseSynthesizer = new ResponseSynthesizer({ - responseBuilder: new SimpleResponseBuilder(serviceContext), - serviceContext - }) - queryEngine = SubQuestionQueryEngine.fromDefaults({ - responseSynthesizer, - serviceContext, - queryEngineTools, - questionGen: new LLMQuestionGenerator({ llm: model }) - }) - } - } + const queryEngine = prepareEngine(nodeData) let text = '' let sourceDocuments: ICommonObject[] = [] @@ -190,4 +118,82 @@ class SubQuestionQueryEngine_LlamaIndex implements INode { } } +const prepareEngine = (nodeData: INodeData) => { + const embeddings = nodeData.inputs?.embeddings as BaseEmbedding + const model = nodeData.inputs?.model + + const serviceContext = serviceContextFromDefaults({ + llm: model, + embedModel: embeddings + }) + + let queryEngineTools = nodeData.inputs?.queryEngineTools as QueryEngineTool[] + queryEngineTools = flatten(queryEngineTools) + + let queryEngine = SubQuestionQueryEngine.fromDefaults({ + serviceContext, + queryEngineTools, + questionGen: new LLMQuestionGenerator({ llm: model }) + }) + + const responseSynthesizerObj = nodeData.inputs?.responseSynthesizer + if (responseSynthesizerObj) { + if (responseSynthesizerObj.type === 'TreeSummarize') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new TreeSummarize(serviceContext, responseSynthesizerObj.textQAPromptTemplate), + serviceContext + }) + queryEngine = SubQuestionQueryEngine.fromDefaults({ + responseSynthesizer, + serviceContext, + queryEngineTools, + questionGen: new LLMQuestionGenerator({ llm: model }) + }) + } else if (responseSynthesizerObj.type === 'CompactAndRefine') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new CompactAndRefine( + serviceContext, + responseSynthesizerObj.textQAPromptTemplate, + responseSynthesizerObj.refinePromptTemplate + ), + serviceContext + }) + queryEngine = SubQuestionQueryEngine.fromDefaults({ + responseSynthesizer, + serviceContext, + queryEngineTools, + questionGen: new LLMQuestionGenerator({ llm: model }) + }) + } else if (responseSynthesizerObj.type === 'Refine') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new Refine( + serviceContext, + responseSynthesizerObj.textQAPromptTemplate, + responseSynthesizerObj.refinePromptTemplate + ), + serviceContext + }) + queryEngine = SubQuestionQueryEngine.fromDefaults({ + responseSynthesizer, + serviceContext, + queryEngineTools, + questionGen: new LLMQuestionGenerator({ llm: model }) + }) + } else if (responseSynthesizerObj.type === 'SimpleResponseBuilder') { + const responseSynthesizer = new ResponseSynthesizer({ + responseBuilder: new SimpleResponseBuilder(serviceContext), + serviceContext + }) + queryEngine = SubQuestionQueryEngine.fromDefaults({ + responseSynthesizer, + serviceContext, + queryEngineTools, + questionGen: new LLMQuestionGenerator({ llm: model }) + }) + } + } + + return queryEngine +} + module.exports = { nodeClass: SubQuestionQueryEngine_LlamaIndex } diff --git a/packages/components/nodes/tools/QueryEngineTool/QueryEngineTool.ts b/packages/components/nodes/tools/QueryEngineTool/QueryEngineTool.ts index 163eff76..cc25fa6f 100644 --- a/packages/components/nodes/tools/QueryEngineTool/QueryEngineTool.ts +++ b/packages/components/nodes/tools/QueryEngineTool/QueryEngineTool.ts @@ -1,5 +1,5 @@ import { INode, INodeData, INodeParams } from '../../../src/Interface' -import { VectorStoreIndex } from 'llamaindex' +import { BaseQueryEngine } from 'llamaindex' class QueryEngine_Tools implements INode { label: string @@ -16,7 +16,7 @@ class QueryEngine_Tools implements INode { constructor() { this.label = 'QueryEngine Tool' this.name = 'queryEngineToolLlamaIndex' - this.version = 1.0 + this.version = 2.0 this.type = 'QueryEngineTool' this.icon = 'queryEngineTool.svg' this.category = 'Tools' @@ -25,9 +25,9 @@ class QueryEngine_Tools implements INode { this.baseClasses = [this.type] this.inputs = [ { - label: 'Vector Store Index', - name: 'vectorStoreIndex', - type: 'VectorStoreIndex' + label: 'Base QueryEngine', + name: 'baseQueryEngine', + type: 'BaseQueryEngine' }, { label: 'Tool Name', @@ -45,20 +45,15 @@ class QueryEngine_Tools implements INode { } async init(nodeData: INodeData): Promise { - const vectorStoreIndex = nodeData.inputs?.vectorStoreIndex as VectorStoreIndex + const baseQueryEngine = nodeData.inputs?.baseQueryEngine as BaseQueryEngine const toolName = nodeData.inputs?.toolName as string const toolDesc = nodeData.inputs?.toolDesc as string const queryEngineTool = { - queryEngine: vectorStoreIndex.asQueryEngine({ - preFilters: { - ...(vectorStoreIndex as any).metadatafilter - } - }), + queryEngine: baseQueryEngine, metadata: { name: toolName, description: toolDesc - }, - vectorStoreIndex + } } return queryEngineTool diff --git a/packages/server/marketplaces/chatflows/Query Engine.json b/packages/server/marketplaces/chatflows/Query Engine.json index b3a3c292..63bbabfe 100644 --- a/packages/server/marketplaces/chatflows/Query Engine.json +++ b/packages/server/marketplaces/chatflows/Query Engine.json @@ -16,10 +16,10 @@ "data": { "id": "queryEngine_0", "label": "Query Engine", - "version": 1, + "version": 2, "name": "queryEngine", "type": "QueryEngine", - "baseClasses": ["QueryEngine"], + "baseClasses": ["QueryEngine", "BaseQueryEngine"], "tags": ["LlamaIndex"], "category": "Engine", "description": "Simple query engine built to answer question over your data, without memory", @@ -55,10 +55,10 @@ }, "outputAnchors": [ { - "id": "queryEngine_0-output-queryEngine-QueryEngine", + "id": "queryEngine_0-output-queryEngine-QueryEngine|BaseQueryEngine", "name": "queryEngine", "label": "QueryEngine", - "type": "QueryEngine" + "type": "QueryEngine | BaseQueryEngine" } ], "outputs": {}, diff --git a/packages/server/marketplaces/chatflows/SubQuestion Query Engine.json b/packages/server/marketplaces/chatflows/SubQuestion Query Engine.json index 620712c4..f8f6f430 100644 --- a/packages/server/marketplaces/chatflows/SubQuestion Query Engine.json +++ b/packages/server/marketplaces/chatflows/SubQuestion Query Engine.json @@ -9,8 +9,8 @@ "height": 749, "id": "compactrefineLlamaIndex_0", "position": { - "x": -1214.7329938486841, - "y": 56.52482754447425 + "x": -443.9012456561584, + "y": 826.6100190232154 }, "type": "customNode", "data": { @@ -63,8 +63,8 @@ }, "selected": false, "positionAbsolute": { - "x": -1214.7329938486841, - "y": 56.52482754447425 + "x": -443.9012456561584, + "y": 826.6100190232154 }, "dragging": false }, @@ -73,8 +73,8 @@ "height": 611, "id": "pineconeLlamaIndex_0", "position": { - "x": 37.23548045607484, - "y": -119.7364648743818 + "x": 35.45798119088212, + "y": -132.1789597307308 }, "type": "customNode", "data": { @@ -183,14 +183,14 @@ } ], "outputs": { - "output": "vectorStore" + "output": "retriever" }, "selected": false }, "selected": false, "positionAbsolute": { - "x": 37.23548045607484, - "y": -119.7364648743818 + "x": 35.45798119088212, + "y": -132.1789597307308 }, "dragging": false }, @@ -405,79 +405,13 @@ "y": -127.15143353229783 } }, - { - "width": 300, - "height": 511, - "id": "queryEngineToolLlamaIndex_0", - "position": { - "x": 460.37559236135905, - "y": -565.6224030941121 - }, - "type": "customNode", - "data": { - "id": "queryEngineToolLlamaIndex_0", - "label": "QueryEngine Tool", - "version": 1, - "name": "queryEngineToolLlamaIndex", - "type": "QueryEngineTool", - "baseClasses": ["QueryEngineTool"], - "tags": ["LlamaIndex"], - "category": "Tools", - "description": "Execute actions using ChatGPT Plugin Url", - "inputParams": [ - { - "label": "Tool Name", - "name": "toolName", - "type": "string", - "description": "Tool name must be small capital letter with underscore. Ex: my_tool", - "id": "queryEngineToolLlamaIndex_0-input-toolName-string" - }, - { - "label": "Tool Description", - "name": "toolDesc", - "type": "string", - "rows": 4, - "id": "queryEngineToolLlamaIndex_0-input-toolDesc-string" - } - ], - "inputAnchors": [ - { - "label": "Vector Store Index", - "name": "vectorStoreIndex", - "type": "VectorStoreIndex", - "id": "queryEngineToolLlamaIndex_0-input-vectorStoreIndex-VectorStoreIndex" - } - ], - "inputs": { - "vectorStoreIndex": "{{pineconeLlamaIndex_1.data.instance}}", - "toolName": "apple_tool", - "toolDesc": "A SEC Form 10K filing describing the financials of Apple Inc (APPL) for the 2022 time period." - }, - "outputAnchors": [ - { - "id": "queryEngineToolLlamaIndex_0-output-queryEngineToolLlamaIndex-QueryEngineTool", - "name": "queryEngineToolLlamaIndex", - "label": "QueryEngineTool", - "type": "QueryEngineTool" - } - ], - "outputs": {}, - "selected": false - }, - "selected": false, - "positionAbsolute": { - "x": 460.37559236135905, - "y": -565.6224030941121 - }, - "dragging": false - }, { "width": 300, "height": 611, "id": "pineconeLlamaIndex_1", "position": { - "x": 42.17855025460784, - "y": -839.8824444107056 + "x": 43.95604951980056, + "y": -783.0024679245387 }, "type": "customNode", "data": { @@ -586,162 +520,14 @@ } ], "outputs": { - "output": "vectorStore" + "output": "retriever" }, "selected": false }, "selected": false, "positionAbsolute": { - "x": 42.17855025460784, - "y": -839.8824444107056 - }, - "dragging": false - }, - { - "width": 300, - "height": 511, - "id": "queryEngineToolLlamaIndex_1", - "position": { - "x": 462.16721384216123, - "y": -17.750065363429798 - }, - "type": "customNode", - "data": { - "id": "queryEngineToolLlamaIndex_1", - "label": "QueryEngine Tool", - "version": 1, - "name": "queryEngineToolLlamaIndex", - "type": "QueryEngineTool", - "baseClasses": ["QueryEngineTool"], - "tags": ["LlamaIndex"], - "category": "Tools", - "description": "Execute actions using ChatGPT Plugin Url", - "inputParams": [ - { - "label": "Tool Name", - "name": "toolName", - "type": "string", - "description": "Tool name must be small capital letter with underscore. Ex: my_tool", - "id": "queryEngineToolLlamaIndex_1-input-toolName-string" - }, - { - "label": "Tool Description", - "name": "toolDesc", - "type": "string", - "rows": 4, - "id": "queryEngineToolLlamaIndex_1-input-toolDesc-string" - } - ], - "inputAnchors": [ - { - "label": "Vector Store Index", - "name": "vectorStoreIndex", - "type": "VectorStoreIndex", - "id": "queryEngineToolLlamaIndex_1-input-vectorStoreIndex-VectorStoreIndex" - } - ], - "inputs": { - "vectorStoreIndex": "{{pineconeLlamaIndex_0.data.instance}}", - "toolName": "tesla_tool", - "toolDesc": "A SEC Form 10K filing describing the financials of Tesla Inc (TSLA) for the 2022 time period." - }, - "outputAnchors": [ - { - "id": "queryEngineToolLlamaIndex_1-output-queryEngineToolLlamaIndex-QueryEngineTool", - "name": "queryEngineToolLlamaIndex", - "label": "QueryEngineTool", - "type": "QueryEngineTool" - } - ], - "outputs": {}, - "selected": false - }, - "selected": false, - "positionAbsolute": { - "x": 462.16721384216123, - "y": -17.750065363429798 - }, - "dragging": false - }, - { - "width": 300, - "height": 484, - "id": "subQuestionQueryEngine_0", - "position": { - "x": 982.7583030231563, - "y": 349.50858200305896 - }, - "type": "customNode", - "data": { - "id": "subQuestionQueryEngine_0", - "label": "Sub Question Query Engine", - "version": 1, - "name": "subQuestionQueryEngine", - "type": "SubQuestionQueryEngine", - "baseClasses": ["SubQuestionQueryEngine"], - "tags": ["LlamaIndex"], - "category": "Engine", - "description": "Simple query engine built to answer question over your data, without memory", - "inputParams": [ - { - "label": "Return Source Documents", - "name": "returnSourceDocuments", - "type": "boolean", - "optional": true, - "id": "subQuestionQueryEngine_0-input-returnSourceDocuments-boolean" - } - ], - "inputAnchors": [ - { - "label": "QueryEngine Tools", - "name": "queryEngineTools", - "type": "QueryEngineTool", - "list": true, - "id": "subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool" - }, - { - "label": "Chat Model", - "name": "model", - "type": "BaseChatModel_LlamaIndex", - "id": "subQuestionQueryEngine_0-input-model-BaseChatModel_LlamaIndex" - }, - { - "label": "Embeddings", - "name": "embeddings", - "type": "BaseEmbedding_LlamaIndex", - "id": "subQuestionQueryEngine_0-input-embeddings-BaseEmbedding_LlamaIndex" - }, - { - "label": "Response Synthesizer", - "name": "responseSynthesizer", - "type": "ResponseSynthesizer", - "description": "ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. See more", - "optional": true, - "id": "subQuestionQueryEngine_0-input-responseSynthesizer-ResponseSynthesizer" - } - ], - "inputs": { - "queryEngineTools": ["{{queryEngineToolLlamaIndex_1.data.instance}}", "{{queryEngineToolLlamaIndex_0.data.instance}}"], - "model": "{{chatOpenAI_LlamaIndex_1.data.instance}}", - "embeddings": "{{openAIEmbedding_LlamaIndex_1.data.instance}}", - "responseSynthesizer": "{{compactrefineLlamaIndex_0.data.instance}}", - "returnSourceDocuments": true - }, - "outputAnchors": [ - { - "id": "subQuestionQueryEngine_0-output-subQuestionQueryEngine-SubQuestionQueryEngine", - "name": "subQuestionQueryEngine", - "label": "SubQuestionQueryEngine", - "type": "SubQuestionQueryEngine" - } - ], - "outputs": {}, - "selected": false - }, - "selected": false, - "positionAbsolute": { - "x": 982.7583030231563, - "y": 349.50858200305896 + "x": 43.95604951980056, + "y": -783.0024679245387 }, "dragging": false }, @@ -750,8 +536,8 @@ "height": 529, "id": "chatOpenAI_LlamaIndex_1", "position": { - "x": -846.9087470244615, - "y": 23.446501495097493 + "x": -446.80851289432655, + "y": 246.8790997755625 }, "type": "customNode", "data": { @@ -884,8 +670,8 @@ }, "selected": false, "positionAbsolute": { - "x": -846.9087470244615, - "y": 23.446501495097493 + "x": -446.80851289432655, + "y": 246.8790997755625 }, "dragging": false }, @@ -894,8 +680,8 @@ "height": 334, "id": "openAIEmbedding_LlamaIndex_1", "position": { - "x": -437.3136244622061, - "y": 329.99986619821175 + "x": -37.812177549447284, + "y": 577.9112529482311 }, "type": "customNode", "data": { @@ -952,17 +738,370 @@ "selected": false, "dragging": false, "positionAbsolute": { - "x": -437.3136244622061, - "y": 329.99986619821175 + "x": -37.812177549447284, + "y": 577.9112529482311 } }, + { + "width": 300, + "height": 382, + "id": "queryEngine_0", + "position": { + "x": 416.2466817793368, + "y": -600.1335182096643 + }, + "type": "customNode", + "data": { + "id": "queryEngine_0", + "label": "Query Engine", + "version": 2, + "name": "queryEngine", + "type": "QueryEngine", + "baseClasses": ["QueryEngine", "BaseQueryEngine"], + "tags": ["LlamaIndex"], + "category": "Engine", + "description": "Simple query engine built to answer question over your data, without memory", + "inputParams": [ + { + "label": "Return Source Documents", + "name": "returnSourceDocuments", + "type": "boolean", + "optional": true, + "id": "queryEngine_0-input-returnSourceDocuments-boolean" + } + ], + "inputAnchors": [ + { + "label": "Vector Store Retriever", + "name": "vectorStoreRetriever", + "type": "VectorIndexRetriever", + "id": "queryEngine_0-input-vectorStoreRetriever-VectorIndexRetriever" + }, + { + "label": "Response Synthesizer", + "name": "responseSynthesizer", + "type": "ResponseSynthesizer", + "description": "ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. See more", + "optional": true, + "id": "queryEngine_0-input-responseSynthesizer-ResponseSynthesizer" + } + ], + "inputs": { + "vectorStoreRetriever": "{{pineconeLlamaIndex_1.data.instance}}", + "responseSynthesizer": "", + "returnSourceDocuments": "" + }, + "outputAnchors": [ + { + "id": "queryEngine_0-output-queryEngine-QueryEngine|BaseQueryEngine", + "name": "queryEngine", + "label": "QueryEngine", + "description": "Simple query engine built to answer question over your data, without memory", + "type": "QueryEngine | BaseQueryEngine" + } + ], + "outputs": {}, + "selected": false + }, + "selected": false, + "positionAbsolute": { + "x": 416.2466817793368, + "y": -600.1335182096643 + }, + "dragging": false + }, + { + "width": 300, + "height": 511, + "id": "queryEngineToolLlamaIndex_2", + "position": { + "x": 766.9839000102993, + "y": -654.6926410455919 + }, + "type": "customNode", + "data": { + "id": "queryEngineToolLlamaIndex_2", + "label": "QueryEngine Tool", + "version": 2, + "name": "queryEngineToolLlamaIndex", + "type": "QueryEngineTool", + "baseClasses": ["QueryEngineTool"], + "tags": ["LlamaIndex"], + "category": "Tools", + "description": "Tool used to invoke query engine", + "inputParams": [ + { + "label": "Tool Name", + "name": "toolName", + "type": "string", + "description": "Tool name must be small capital letter with underscore. Ex: my_tool", + "id": "queryEngineToolLlamaIndex_2-input-toolName-string" + }, + { + "label": "Tool Description", + "name": "toolDesc", + "type": "string", + "rows": 4, + "id": "queryEngineToolLlamaIndex_2-input-toolDesc-string" + } + ], + "inputAnchors": [ + { + "label": "Base QueryEngine", + "name": "baseQueryEngine", + "type": "BaseQueryEngine", + "id": "queryEngineToolLlamaIndex_2-input-baseQueryEngine-BaseQueryEngine" + } + ], + "inputs": { + "baseQueryEngine": "{{queryEngine_0.data.instance}}", + "toolName": "apple_tool", + "toolDesc": "A SEC Form 10K filing describing the financials of Apple Inc (APPL) for the 2022 time period." + }, + "outputAnchors": [ + { + "id": "queryEngineToolLlamaIndex_2-output-queryEngineToolLlamaIndex-QueryEngineTool", + "name": "queryEngineToolLlamaIndex", + "label": "QueryEngineTool", + "description": "Tool used to invoke query engine", + "type": "QueryEngineTool" + } + ], + "outputs": {}, + "selected": false + }, + "selected": false, + "positionAbsolute": { + "x": 766.9839000102993, + "y": -654.6926410455919 + }, + "dragging": false + }, + { + "width": 300, + "height": 511, + "id": "queryEngineToolLlamaIndex_1", + "position": { + "x": 771.5434180813253, + "y": -109.03650423344013 + }, + "type": "customNode", + "data": { + "id": "queryEngineToolLlamaIndex_1", + "label": "QueryEngine Tool", + "version": 2, + "name": "queryEngineToolLlamaIndex", + "type": "QueryEngineTool", + "baseClasses": ["QueryEngineTool"], + "tags": ["LlamaIndex"], + "category": "Tools", + "description": "Tool used to invoke query engine", + "inputParams": [ + { + "label": "Tool Name", + "name": "toolName", + "type": "string", + "description": "Tool name must be small capital letter with underscore. Ex: my_tool", + "id": "queryEngineToolLlamaIndex_1-input-toolName-string" + }, + { + "label": "Tool Description", + "name": "toolDesc", + "type": "string", + "rows": 4, + "id": "queryEngineToolLlamaIndex_1-input-toolDesc-string" + } + ], + "inputAnchors": [ + { + "label": "Base QueryEngine", + "name": "baseQueryEngine", + "type": "BaseQueryEngine", + "id": "queryEngineToolLlamaIndex_1-input-baseQueryEngine-BaseQueryEngine" + } + ], + "inputs": { + "baseQueryEngine": "{{queryEngine_1.data.instance}}", + "toolName": "tesla_tool", + "toolDesc": "A SEC Form 10K filing describing the financials of Tesla Inc (TSLA) for the 2022 time period." + }, + "outputAnchors": [ + { + "id": "queryEngineToolLlamaIndex_1-output-queryEngineToolLlamaIndex-QueryEngineTool", + "name": "queryEngineToolLlamaIndex", + "label": "QueryEngineTool", + "description": "Tool used to invoke query engine", + "type": "QueryEngineTool" + } + ], + "outputs": {}, + "selected": false + }, + "selected": false, + "positionAbsolute": { + "x": 771.5434180813253, + "y": -109.03650423344013 + }, + "dragging": false + }, + { + "width": 300, + "height": 382, + "id": "queryEngine_1", + "position": { + "x": 411.8632262885343, + "y": -68.91392354277994 + }, + "type": "customNode", + "data": { + "id": "queryEngine_1", + "label": "Query Engine", + "version": 2, + "name": "queryEngine", + "type": "QueryEngine", + "baseClasses": ["QueryEngine", "BaseQueryEngine"], + "tags": ["LlamaIndex"], + "category": "Engine", + "description": "Simple query engine built to answer question over your data, without memory", + "inputParams": [ + { + "label": "Return Source Documents", + "name": "returnSourceDocuments", + "type": "boolean", + "optional": true, + "id": "queryEngine_1-input-returnSourceDocuments-boolean" + } + ], + "inputAnchors": [ + { + "label": "Vector Store Retriever", + "name": "vectorStoreRetriever", + "type": "VectorIndexRetriever", + "id": "queryEngine_1-input-vectorStoreRetriever-VectorIndexRetriever" + }, + { + "label": "Response Synthesizer", + "name": "responseSynthesizer", + "type": "ResponseSynthesizer", + "description": "ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. See more", + "optional": true, + "id": "queryEngine_1-input-responseSynthesizer-ResponseSynthesizer" + } + ], + "inputs": { + "vectorStoreRetriever": "{{pineconeLlamaIndex_0.data.instance}}", + "responseSynthesizer": "", + "returnSourceDocuments": "" + }, + "outputAnchors": [ + { + "id": "queryEngine_1-output-queryEngine-QueryEngine|BaseQueryEngine", + "name": "queryEngine", + "label": "QueryEngine", + "description": "Simple query engine built to answer question over your data, without memory", + "type": "QueryEngine | BaseQueryEngine" + } + ], + "outputs": {}, + "selected": false + }, + "selected": false, + "positionAbsolute": { + "x": 411.8632262885343, + "y": -68.91392354277994 + }, + "dragging": false + }, + { + "width": 300, + "height": 484, + "id": "subQuestionQueryEngine_0", + "position": { + "x": 1204.489328490966, + "y": 347.2090726754211 + }, + "type": "customNode", + "data": { + "id": "subQuestionQueryEngine_0", + "label": "Sub Question Query Engine", + "version": 2, + "name": "subQuestionQueryEngine", + "type": "SubQuestionQueryEngine", + "baseClasses": ["SubQuestionQueryEngine", "BaseQueryEngine"], + "tags": ["LlamaIndex"], + "category": "Engine", + "description": "Breaks complex query into sub questions for each relevant data source, then gather all the intermediate reponses and synthesizes a final response", + "inputParams": [ + { + "label": "Return Source Documents", + "name": "returnSourceDocuments", + "type": "boolean", + "optional": true, + "id": "subQuestionQueryEngine_0-input-returnSourceDocuments-boolean" + } + ], + "inputAnchors": [ + { + "label": "QueryEngine Tools", + "name": "queryEngineTools", + "type": "QueryEngineTool", + "list": true, + "id": "subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool" + }, + { + "label": "Chat Model", + "name": "model", + "type": "BaseChatModel_LlamaIndex", + "id": "subQuestionQueryEngine_0-input-model-BaseChatModel_LlamaIndex" + }, + { + "label": "Embeddings", + "name": "embeddings", + "type": "BaseEmbedding_LlamaIndex", + "id": "subQuestionQueryEngine_0-input-embeddings-BaseEmbedding_LlamaIndex" + }, + { + "label": "Response Synthesizer", + "name": "responseSynthesizer", + "type": "ResponseSynthesizer", + "description": "ResponseSynthesizer is responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. See more", + "optional": true, + "id": "subQuestionQueryEngine_0-input-responseSynthesizer-ResponseSynthesizer" + } + ], + "inputs": { + "queryEngineTools": ["{{queryEngineToolLlamaIndex_2.data.instance}}", "{{queryEngineToolLlamaIndex_1.data.instance}}"], + "model": "{{chatOpenAI_LlamaIndex_1.data.instance}}", + "embeddings": "{{openAIEmbedding_LlamaIndex_1.data.instance}}", + "responseSynthesizer": "{{compactrefineLlamaIndex_0.data.instance}}", + "returnSourceDocuments": true + }, + "outputAnchors": [ + { + "id": "subQuestionQueryEngine_0-output-subQuestionQueryEngine-SubQuestionQueryEngine|BaseQueryEngine", + "name": "subQuestionQueryEngine", + "label": "SubQuestionQueryEngine", + "description": "Breaks complex query into sub questions for each relevant data source, then gather all the intermediate reponses and synthesizes a final response", + "type": "SubQuestionQueryEngine | BaseQueryEngine" + } + ], + "outputs": {}, + "selected": false + }, + "selected": false, + "positionAbsolute": { + "x": 1204.489328490966, + "y": 347.2090726754211 + }, + "dragging": false + }, { "width": 300, "height": 82, "id": "stickyNote_0", "position": { - "x": 35.90892935132143, - "y": -936.1282632923861 + "x": 1208.1786832265154, + "y": 238.26647262900994 }, "type": "stickyNote", "data": { @@ -987,13 +1126,14 @@ ], "inputAnchors": [], "inputs": { - "note": "Query previously upserted documents with corresponding metadata key value pair - \n{ source: \"apple\"}" + "note": "Break questions into subqueries, then retrieve corresponding context using queryengine tools" }, "outputAnchors": [ { "id": "stickyNote_0-output-stickyNote-StickyNote", "name": "stickyNote", "label": "StickyNote", + "description": "Add a sticky note", "type": "StickyNote" } ], @@ -1002,8 +1142,8 @@ }, "selected": false, "positionAbsolute": { - "x": 35.90892935132143, - "y": -936.1282632923861 + "x": 1208.1786832265154, + "y": 238.26647262900994 }, "dragging": false }, @@ -1012,8 +1152,8 @@ "height": 82, "id": "stickyNote_1", "position": { - "x": 37.74909394815296, - "y": -215.17456133022054 + "x": 416.8958270395809, + "y": -179.9680840754678 }, "type": "stickyNote", "data": { @@ -1038,13 +1178,14 @@ ], "inputAnchors": [], "inputs": { - "note": "Query previously upserted documents with corresponding metadata key value pair - \n{ source: \"tesla\"}" + "note": "Query previously upserted documents with corresponding metadata key value pair - \n{ source: \"\"}" }, "outputAnchors": [ { "id": "stickyNote_1-output-stickyNote-StickyNote", "name": "stickyNote", "label": "StickyNote", + "description": "Add a sticky note", "type": "StickyNote" } ], @@ -1053,59 +1194,8 @@ }, "selected": false, "positionAbsolute": { - "x": 37.74909394815296, - "y": -215.17456133022054 - }, - "dragging": false - }, - { - "width": 300, - "height": 163, - "id": "stickyNote_2", - "position": { - "x": 984.9543031068163, - "y": 171.04264459503852 - }, - "type": "stickyNote", - "data": { - "id": "stickyNote_2", - "label": "Sticky Note", - "version": 1, - "name": "stickyNote", - "type": "StickyNote", - "baseClasses": ["StickyNote"], - "category": "Utilities", - "description": "Add a sticky note", - "inputParams": [ - { - "label": "", - "name": "note", - "type": "string", - "rows": 1, - "placeholder": "Type something here", - "optional": true, - "id": "stickyNote_2-input-note-string" - } - ], - "inputAnchors": [], - "inputs": { - "note": "Break questions into subqueries, then retrieve corresponding context using queryengine tool.\n\nThis implementation does not contains memory, we can use OpenAI Agent to function call this flow" - }, - "outputAnchors": [ - { - "id": "stickyNote_2-output-stickyNote-StickyNote", - "name": "stickyNote", - "label": "StickyNote", - "type": "StickyNote" - } - ], - "outputs": {}, - "selected": false - }, - "selected": false, - "positionAbsolute": { - "x": 984.9543031068163, - "y": 171.04264459503852 + "x": 416.8958270395809, + "y": -179.9680840754678 }, "dragging": false } @@ -1128,20 +1218,60 @@ "id": "openAIEmbedding_LlamaIndex_0-openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding-pineconeLlamaIndex_1-pineconeLlamaIndex_1-input-embeddings-BaseEmbedding_LlamaIndex" }, { - "source": "pineconeLlamaIndex_1", - "sourceHandle": "pineconeLlamaIndex_1-output-vectorStore-Pinecone|VectorStoreIndex", - "target": "queryEngineToolLlamaIndex_0", - "targetHandle": "queryEngineToolLlamaIndex_0-input-vectorStoreIndex-VectorStoreIndex", + "source": "openAIEmbedding_LlamaIndex_0", + "sourceHandle": "openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding", + "target": "pineconeLlamaIndex_0", + "targetHandle": "pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex", "type": "buttonedge", - "id": "pineconeLlamaIndex_1-pineconeLlamaIndex_1-output-vectorStore-Pinecone|VectorStoreIndex-queryEngineToolLlamaIndex_0-queryEngineToolLlamaIndex_0-input-vectorStoreIndex-VectorStoreIndex" + "id": "openAIEmbedding_LlamaIndex_0-openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex" + }, + { + "source": "chatOpenAI_LlamaIndex_0", + "sourceHandle": "chatOpenAI_LlamaIndex_0-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex|BaseLLM", + "target": "pineconeLlamaIndex_0", + "targetHandle": "pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex", + "type": "buttonedge", + "id": "chatOpenAI_LlamaIndex_0-chatOpenAI_LlamaIndex_0-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex|BaseLLM-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex" + }, + { + "source": "pineconeLlamaIndex_1", + "sourceHandle": "pineconeLlamaIndex_1-output-retriever-Pinecone|VectorIndexRetriever", + "target": "queryEngine_0", + "targetHandle": "queryEngine_0-input-vectorStoreRetriever-VectorIndexRetriever", + "type": "buttonedge", + "id": "pineconeLlamaIndex_1-pineconeLlamaIndex_1-output-retriever-Pinecone|VectorIndexRetriever-queryEngine_0-queryEngine_0-input-vectorStoreRetriever-VectorIndexRetriever" + }, + { + "source": "queryEngine_0", + "sourceHandle": "queryEngine_0-output-queryEngine-QueryEngine|BaseQueryEngine", + "target": "queryEngineToolLlamaIndex_2", + "targetHandle": "queryEngineToolLlamaIndex_2-input-baseQueryEngine-BaseQueryEngine", + "type": "buttonedge", + "id": "queryEngine_0-queryEngine_0-output-queryEngine-QueryEngine|BaseQueryEngine-queryEngineToolLlamaIndex_2-queryEngineToolLlamaIndex_2-input-baseQueryEngine-BaseQueryEngine" }, { "source": "pineconeLlamaIndex_0", - "sourceHandle": "pineconeLlamaIndex_0-output-vectorStore-Pinecone|VectorStoreIndex", - "target": "queryEngineToolLlamaIndex_1", - "targetHandle": "queryEngineToolLlamaIndex_1-input-vectorStoreIndex-VectorStoreIndex", + "sourceHandle": "pineconeLlamaIndex_0-output-retriever-Pinecone|VectorIndexRetriever", + "target": "queryEngine_1", + "targetHandle": "queryEngine_1-input-vectorStoreRetriever-VectorIndexRetriever", "type": "buttonedge", - "id": "pineconeLlamaIndex_0-pineconeLlamaIndex_0-output-vectorStore-Pinecone|VectorStoreIndex-queryEngineToolLlamaIndex_1-queryEngineToolLlamaIndex_1-input-vectorStoreIndex-VectorStoreIndex" + "id": "pineconeLlamaIndex_0-pineconeLlamaIndex_0-output-retriever-Pinecone|VectorIndexRetriever-queryEngine_1-queryEngine_1-input-vectorStoreRetriever-VectorIndexRetriever" + }, + { + "source": "queryEngine_1", + "sourceHandle": "queryEngine_1-output-queryEngine-QueryEngine|BaseQueryEngine", + "target": "queryEngineToolLlamaIndex_1", + "targetHandle": "queryEngineToolLlamaIndex_1-input-baseQueryEngine-BaseQueryEngine", + "type": "buttonedge", + "id": "queryEngine_1-queryEngine_1-output-queryEngine-QueryEngine|BaseQueryEngine-queryEngineToolLlamaIndex_1-queryEngineToolLlamaIndex_1-input-baseQueryEngine-BaseQueryEngine" + }, + { + "source": "queryEngineToolLlamaIndex_2", + "sourceHandle": "queryEngineToolLlamaIndex_2-output-queryEngineToolLlamaIndex-QueryEngineTool", + "target": "subQuestionQueryEngine_0", + "targetHandle": "subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool", + "type": "buttonedge", + "id": "queryEngineToolLlamaIndex_2-queryEngineToolLlamaIndex_2-output-queryEngineToolLlamaIndex-QueryEngineTool-subQuestionQueryEngine_0-subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool" }, { "source": "queryEngineToolLlamaIndex_1", @@ -1151,14 +1281,6 @@ "type": "buttonedge", "id": "queryEngineToolLlamaIndex_1-queryEngineToolLlamaIndex_1-output-queryEngineToolLlamaIndex-QueryEngineTool-subQuestionQueryEngine_0-subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool" }, - { - "source": "queryEngineToolLlamaIndex_0", - "sourceHandle": "queryEngineToolLlamaIndex_0-output-queryEngineToolLlamaIndex-QueryEngineTool", - "target": "subQuestionQueryEngine_0", - "targetHandle": "subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool", - "type": "buttonedge", - "id": "queryEngineToolLlamaIndex_0-queryEngineToolLlamaIndex_0-output-queryEngineToolLlamaIndex-QueryEngineTool-subQuestionQueryEngine_0-subQuestionQueryEngine_0-input-queryEngineTools-QueryEngineTool" - }, { "source": "chatOpenAI_LlamaIndex_1", "sourceHandle": "chatOpenAI_LlamaIndex_1-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex|BaseLLM", @@ -1182,22 +1304,6 @@ "targetHandle": "subQuestionQueryEngine_0-input-responseSynthesizer-ResponseSynthesizer", "type": "buttonedge", "id": "compactrefineLlamaIndex_0-compactrefineLlamaIndex_0-output-compactrefineLlamaIndex-CompactRefine|ResponseSynthesizer-subQuestionQueryEngine_0-subQuestionQueryEngine_0-input-responseSynthesizer-ResponseSynthesizer" - }, - { - "source": "openAIEmbedding_LlamaIndex_0", - "sourceHandle": "openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding", - "target": "pineconeLlamaIndex_0", - "targetHandle": "pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex", - "type": "buttonedge", - "id": "openAIEmbedding_LlamaIndex_0-openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex" - }, - { - "source": "chatOpenAI_LlamaIndex_0", - "sourceHandle": "chatOpenAI_LlamaIndex_0-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex|BaseLLM", - "target": "pineconeLlamaIndex_0", - "targetHandle": "pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex", - "type": "buttonedge", - "id": "chatOpenAI_LlamaIndex_0-chatOpenAI_LlamaIndex_0-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex|BaseLLM-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex" } ] } From 342adff8cb551c0166c75a6b10d66e7832dcef95 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Fri, 16 Feb 2024 20:20:17 +0800 Subject: [PATCH 15/19] fix weird error --- packages/components/nodes/tools/CustomTool/core.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/components/nodes/tools/CustomTool/core.ts b/packages/components/nodes/tools/CustomTool/core.ts index 19be88f1..baaddb42 100644 --- a/packages/components/nodes/tools/CustomTool/core.ts +++ b/packages/components/nodes/tools/CustomTool/core.ts @@ -100,6 +100,7 @@ export class DynamicStructuredTool< return result } + // @ts-ignore protected async _call( arg: z.output, _?: CallbackManagerForToolRun, From a035940d1d8e0e1680729755302db7422799f8c0 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sat, 17 Feb 2024 20:25:20 +0800 Subject: [PATCH 16/19] add gpt-4-1106-vision-preview into ChatOpenAI node --- packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts index a0d0bd6e..d50c0012 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts @@ -59,6 +59,10 @@ class ChatOpenAI_ChatModels implements INode { label: 'gpt-4-1106-preview', name: 'gpt-4-1106-preview' }, + { + label: 'gpt-4-1106-vision-preview', + name: 'gpt-4-1106-vision-preview' + }, { label: 'gpt-4-vision-preview', name: 'gpt-4-vision-preview' From dd64bd028bae1a992ef979f0c5fa01725840a8e5 Mon Sep 17 00:00:00 2001 From: chungyau97 Date: Sat, 17 Feb 2024 21:11:27 +0800 Subject: [PATCH 17/19] add gpt-4-1106-vision-preview into ChatOpenAI marketplace --- .../chatflows/API Agent OpenAI.json | 16 +++++++++++++ .../marketplaces/chatflows/API Agent.json | 24 +++++++++++++++++++ .../Advanced Structured Output Parser.json | 4 ++++ .../marketplaces/chatflows/Antonym.json | 8 +++++++ .../marketplaces/chatflows/AutoGPT.json | 8 +++++++ .../marketplaces/chatflows/BabyAGI.json | 8 +++++++ .../marketplaces/chatflows/CSV Agent.json | 8 +++++++ .../chatflows/Chat with a Podcast.json | 8 +++++++ .../marketplaces/chatflows/ChatGPTPlugin.json | 8 +++++++ .../chatflows/Conversational Agent.json | 8 +++++++ .../Conversational Retrieval Agent.json | 8 +++++++ .../Conversational Retrieval QA Chain.json | 8 +++++++ .../chatflows/Flowise Docs QnA.json | 8 +++++++ .../server/marketplaces/chatflows/IfElse.json | 8 +++++++ .../chatflows/Image Generation.json | 8 +++++++ .../chatflows/Input Moderation.json | 8 +++++++ .../chatflows/List Output Parser.json | 8 +++++++ .../chatflows/Long Term Memory.json | 8 +++++++ .../chatflows/Metadata Filter.json | 8 +++++++ .../chatflows/Multi Prompt Chain.json | 8 +++++++ .../chatflows/Multi Retrieval QA Chain.json | 8 +++++++ .../chatflows/Multiple VectorDB.json | 24 +++++++++++++++++++ .../marketplaces/chatflows/OpenAI Agent.json | 8 +++++++ .../Prompt Chaining with VectorStore.json | 16 +++++++++++++ .../marketplaces/chatflows/ReAct Agent.json | 8 +++++++ .../marketplaces/chatflows/SQL DB Chain.json | 8 +++++++ .../marketplaces/chatflows/SQL Prompt.json | 24 +++++++++++++++++++ .../chatflows/Simple Conversation Chain.json | 8 +++++++ .../chatflows/Structured Output Parser.json | 8 +++++++ .../marketplaces/chatflows/Translator.json | 8 +++++++ .../marketplaces/chatflows/WebBrowser.json | 16 +++++++++++++ .../marketplaces/chatflows/WebPage QnA.json | 8 +++++++ 32 files changed, 324 insertions(+) diff --git a/packages/server/marketplaces/chatflows/API Agent OpenAI.json b/packages/server/marketplaces/chatflows/API Agent OpenAI.json index 621529fc..f3b5636e 100644 --- a/packages/server/marketplaces/chatflows/API Agent OpenAI.json +++ b/packages/server/marketplaces/chatflows/API Agent OpenAI.json @@ -125,6 +125,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -145,6 +149,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -464,6 +472,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -484,6 +496,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/API Agent.json b/packages/server/marketplaces/chatflows/API Agent.json index 9d5a6c54..31679a92 100644 --- a/packages/server/marketplaces/chatflows/API Agent.json +++ b/packages/server/marketplaces/chatflows/API Agent.json @@ -433,6 +433,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -453,6 +457,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -624,6 +632,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -644,6 +656,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -815,6 +831,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -835,6 +855,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Advanced Structured Output Parser.json b/packages/server/marketplaces/chatflows/Advanced Structured Output Parser.json index 3fd71988..bf477ba7 100644 --- a/packages/server/marketplaces/chatflows/Advanced Structured Output Parser.json +++ b/packages/server/marketplaces/chatflows/Advanced Structured Output Parser.json @@ -216,6 +216,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" diff --git a/packages/server/marketplaces/chatflows/Antonym.json b/packages/server/marketplaces/chatflows/Antonym.json index 97c5af71..a88b16cc 100644 --- a/packages/server/marketplaces/chatflows/Antonym.json +++ b/packages/server/marketplaces/chatflows/Antonym.json @@ -212,6 +212,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -232,6 +236,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/AutoGPT.json b/packages/server/marketplaces/chatflows/AutoGPT.json index c0ed0807..c2ec12b3 100644 --- a/packages/server/marketplaces/chatflows/AutoGPT.json +++ b/packages/server/marketplaces/chatflows/AutoGPT.json @@ -288,6 +288,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -308,6 +312,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/BabyAGI.json b/packages/server/marketplaces/chatflows/BabyAGI.json index 14976ad3..618a4920 100644 --- a/packages/server/marketplaces/chatflows/BabyAGI.json +++ b/packages/server/marketplaces/chatflows/BabyAGI.json @@ -381,6 +381,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -401,6 +405,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/CSV Agent.json b/packages/server/marketplaces/chatflows/CSV Agent.json index 3439625b..4d755155 100644 --- a/packages/server/marketplaces/chatflows/CSV Agent.json +++ b/packages/server/marketplaces/chatflows/CSV Agent.json @@ -106,6 +106,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -126,6 +130,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Chat with a Podcast.json b/packages/server/marketplaces/chatflows/Chat with a Podcast.json index c87b3f2c..e8f8399c 100644 --- a/packages/server/marketplaces/chatflows/Chat with a Podcast.json +++ b/packages/server/marketplaces/chatflows/Chat with a Podcast.json @@ -231,6 +231,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -251,6 +255,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/ChatGPTPlugin.json b/packages/server/marketplaces/chatflows/ChatGPTPlugin.json index 3777b637..2b87b51d 100644 --- a/packages/server/marketplaces/chatflows/ChatGPTPlugin.json +++ b/packages/server/marketplaces/chatflows/ChatGPTPlugin.json @@ -251,6 +251,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -271,6 +275,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Conversational Agent.json b/packages/server/marketplaces/chatflows/Conversational Agent.json index 4cb736a0..13b479af 100644 --- a/packages/server/marketplaces/chatflows/Conversational Agent.json +++ b/packages/server/marketplaces/chatflows/Conversational Agent.json @@ -193,6 +193,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -213,6 +217,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Conversational Retrieval Agent.json b/packages/server/marketplaces/chatflows/Conversational Retrieval Agent.json index a4ec6b5b..4120ef17 100644 --- a/packages/server/marketplaces/chatflows/Conversational Retrieval Agent.json +++ b/packages/server/marketplaces/chatflows/Conversational Retrieval Agent.json @@ -524,6 +524,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -544,6 +548,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Conversational Retrieval QA Chain.json b/packages/server/marketplaces/chatflows/Conversational Retrieval QA Chain.json index f76e89e6..32e0c762 100644 --- a/packages/server/marketplaces/chatflows/Conversational Retrieval QA Chain.json +++ b/packages/server/marketplaces/chatflows/Conversational Retrieval QA Chain.json @@ -406,6 +406,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -426,6 +430,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Flowise Docs QnA.json b/packages/server/marketplaces/chatflows/Flowise Docs QnA.json index 31d65c48..8ed4ac56 100644 --- a/packages/server/marketplaces/chatflows/Flowise Docs QnA.json +++ b/packages/server/marketplaces/chatflows/Flowise Docs QnA.json @@ -412,6 +412,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -432,6 +436,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/IfElse.json b/packages/server/marketplaces/chatflows/IfElse.json index e3b66f44..bcb2cd96 100644 --- a/packages/server/marketplaces/chatflows/IfElse.json +++ b/packages/server/marketplaces/chatflows/IfElse.json @@ -945,6 +945,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -965,6 +969,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Image Generation.json b/packages/server/marketplaces/chatflows/Image Generation.json index 46cb79ec..4b82dcf3 100644 --- a/packages/server/marketplaces/chatflows/Image Generation.json +++ b/packages/server/marketplaces/chatflows/Image Generation.json @@ -489,6 +489,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -509,6 +513,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Input Moderation.json b/packages/server/marketplaces/chatflows/Input Moderation.json index bd449777..2b78bdb2 100644 --- a/packages/server/marketplaces/chatflows/Input Moderation.json +++ b/packages/server/marketplaces/chatflows/Input Moderation.json @@ -201,6 +201,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -221,6 +225,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/List Output Parser.json b/packages/server/marketplaces/chatflows/List Output Parser.json index 0eb269b4..5bdfff71 100644 --- a/packages/server/marketplaces/chatflows/List Output Parser.json +++ b/packages/server/marketplaces/chatflows/List Output Parser.json @@ -260,6 +260,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -280,6 +284,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Long Term Memory.json b/packages/server/marketplaces/chatflows/Long Term Memory.json index c5681d3d..7b54b146 100644 --- a/packages/server/marketplaces/chatflows/Long Term Memory.json +++ b/packages/server/marketplaces/chatflows/Long Term Memory.json @@ -543,6 +543,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -563,6 +567,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Metadata Filter.json b/packages/server/marketplaces/chatflows/Metadata Filter.json index ed2efb9f..a37764df 100644 --- a/packages/server/marketplaces/chatflows/Metadata Filter.json +++ b/packages/server/marketplaces/chatflows/Metadata Filter.json @@ -490,6 +490,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -510,6 +514,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Multi Prompt Chain.json b/packages/server/marketplaces/chatflows/Multi Prompt Chain.json index 97cca308..8b933e8f 100644 --- a/packages/server/marketplaces/chatflows/Multi Prompt Chain.json +++ b/packages/server/marketplaces/chatflows/Multi Prompt Chain.json @@ -314,6 +314,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -334,6 +338,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Multi Retrieval QA Chain.json b/packages/server/marketplaces/chatflows/Multi Retrieval QA Chain.json index 6b8f2c33..0fc6ff77 100644 --- a/packages/server/marketplaces/chatflows/Multi Retrieval QA Chain.json +++ b/packages/server/marketplaces/chatflows/Multi Retrieval QA Chain.json @@ -425,6 +425,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -445,6 +449,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Multiple VectorDB.json b/packages/server/marketplaces/chatflows/Multiple VectorDB.json index b76270e7..3d8a22f3 100644 --- a/packages/server/marketplaces/chatflows/Multiple VectorDB.json +++ b/packages/server/marketplaces/chatflows/Multiple VectorDB.json @@ -522,6 +522,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -542,6 +546,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -1040,6 +1048,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -1060,6 +1072,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -1238,6 +1254,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -1258,6 +1278,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/OpenAI Agent.json b/packages/server/marketplaces/chatflows/OpenAI Agent.json index 6f35e595..fa9184d2 100644 --- a/packages/server/marketplaces/chatflows/OpenAI Agent.json +++ b/packages/server/marketplaces/chatflows/OpenAI Agent.json @@ -316,6 +316,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -336,6 +340,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Prompt Chaining with VectorStore.json b/packages/server/marketplaces/chatflows/Prompt Chaining with VectorStore.json index d225e41a..b2db86c4 100644 --- a/packages/server/marketplaces/chatflows/Prompt Chaining with VectorStore.json +++ b/packages/server/marketplaces/chatflows/Prompt Chaining with VectorStore.json @@ -464,6 +464,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -484,6 +488,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -662,6 +670,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -682,6 +694,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/ReAct Agent.json b/packages/server/marketplaces/chatflows/ReAct Agent.json index 5fd191fe..151583a2 100644 --- a/packages/server/marketplaces/chatflows/ReAct Agent.json +++ b/packages/server/marketplaces/chatflows/ReAct Agent.json @@ -136,6 +136,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -156,6 +160,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/SQL DB Chain.json b/packages/server/marketplaces/chatflows/SQL DB Chain.json index ec9d465d..0d6a656f 100644 --- a/packages/server/marketplaces/chatflows/SQL DB Chain.json +++ b/packages/server/marketplaces/chatflows/SQL DB Chain.json @@ -50,6 +50,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -70,6 +74,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/SQL Prompt.json b/packages/server/marketplaces/chatflows/SQL Prompt.json index 8d2691c6..aeb62416 100644 --- a/packages/server/marketplaces/chatflows/SQL Prompt.json +++ b/packages/server/marketplaces/chatflows/SQL Prompt.json @@ -210,6 +210,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -230,6 +234,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -408,6 +416,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -428,6 +440,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -1332,6 +1348,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -1352,6 +1372,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Simple Conversation Chain.json b/packages/server/marketplaces/chatflows/Simple Conversation Chain.json index 53cfeace..5bda9580 100644 --- a/packages/server/marketplaces/chatflows/Simple Conversation Chain.json +++ b/packages/server/marketplaces/chatflows/Simple Conversation Chain.json @@ -51,6 +51,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -71,6 +75,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Structured Output Parser.json b/packages/server/marketplaces/chatflows/Structured Output Parser.json index 9801a90f..2e693ee5 100644 --- a/packages/server/marketplaces/chatflows/Structured Output Parser.json +++ b/packages/server/marketplaces/chatflows/Structured Output Parser.json @@ -51,6 +51,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -71,6 +75,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/Translator.json b/packages/server/marketplaces/chatflows/Translator.json index 5c8a3cc5..a9a8b570 100644 --- a/packages/server/marketplaces/chatflows/Translator.json +++ b/packages/server/marketplaces/chatflows/Translator.json @@ -119,6 +119,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -139,6 +143,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/WebBrowser.json b/packages/server/marketplaces/chatflows/WebBrowser.json index 232bd83e..600639d8 100644 --- a/packages/server/marketplaces/chatflows/WebBrowser.json +++ b/packages/server/marketplaces/chatflows/WebBrowser.json @@ -162,6 +162,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -182,6 +186,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" @@ -460,6 +468,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -480,6 +492,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" diff --git a/packages/server/marketplaces/chatflows/WebPage QnA.json b/packages/server/marketplaces/chatflows/WebPage QnA.json index 50806161..24b13b87 100644 --- a/packages/server/marketplaces/chatflows/WebPage QnA.json +++ b/packages/server/marketplaces/chatflows/WebPage QnA.json @@ -429,6 +429,10 @@ "label": "gpt-4-1106-preview", "name": "gpt-4-1106-preview" }, + { + "label": "gpt-4-1106-vision-preview", + "name": "gpt-4-1106-vision-preview" + }, { "label": "gpt-4-vision-preview", "name": "gpt-4-vision-preview" @@ -449,6 +453,10 @@ "label": "gpt-3.5-turbo", "name": "gpt-3.5-turbo" }, + { + "label": "gpt-3.5-turbo-0125", + "name": "gpt-3.5-turbo-0125" + }, { "label": "gpt-3.5-turbo-1106", "name": "gpt-3.5-turbo-1106" From 4773a13042bc583c2411b7ba29e8683c05b204bb Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 19 Feb 2024 18:49:35 +0800 Subject: [PATCH 18/19] update lc version --- .../nodes/vectorstores/Pinecone/Pinecone.ts | 2 ++ packages/components/package.json | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts index cb204820..3ef8a8e8 100644 --- a/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts +++ b/packages/components/nodes/vectorstores/Pinecone/Pinecone.ts @@ -148,6 +148,8 @@ class Pinecone_VectorStores implements INode { apiKey: pineconeApiKey }) + await client.describeIndex(index) + const pineconeIndex = client.Index(index) const flattenDocs = docs && docs.length ? flatten(docs) : [] diff --git a/packages/components/package.json b/packages/components/package.json index f50d3fed..b53945bd 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -28,13 +28,13 @@ "@google-ai/generativelanguage": "^0.2.1", "@google/generative-ai": "^0.1.3", "@huggingface/inference": "^2.6.1", - "@langchain/anthropic": "^0.0.9", - "@langchain/cohere": "^0.0.2", - "@langchain/community": "^0.0.20", - "@langchain/google-genai": "^0.0.7", - "@langchain/mistralai": "^0.0.6", - "@langchain/openai": "^0.0.12", - "@langchain/pinecone": "^0.0.1", + "@langchain/anthropic": "^0.0.10", + "@langchain/cohere": "^0.0.5", + "@langchain/community": "^0.0.30", + "@langchain/google-genai": "^0.0.10", + "@langchain/mistralai": "^0.0.7", + "@langchain/openai": "^0.0.14", + "@langchain/pinecone": "^0.0.3", "@notionhq/client": "^2.2.8", "@opensearch-project/opensearch": "^1.2.0", "@pinecone-database/pinecone": "^2.0.1", @@ -61,7 +61,7 @@ "husky": "^8.0.3", "ioredis": "^5.3.2", "jsonpointer": "^5.0.1", - "langchain": "^0.1.14", + "langchain": "^0.1.20", "langfuse": "2.0.2", "langfuse-langchain": "^2.6.2-alpha.0", "langsmith": "0.0.63", From 6c1f0f7330ab57d6a563070b12df0436d7696dc7 Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 20 Feb 2024 01:32:21 +0800 Subject: [PATCH 19/19] update wordings --- CONTRIBUTING-ZH.md | 4 ++-- CONTRIBUTING.md | 4 ++-- README-ZH.md | 2 +- README.md | 2 +- packages/server/src/index.ts | 8 ++++---- packages/server/src/utils/index.ts | 2 +- packages/ui/public/index.html | 10 ++++++++-- 7 files changed, 19 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING-ZH.md b/CONTRIBUTING-ZH.md index e000da4f..25f48387 100644 --- a/CONTRIBUTING-ZH.md +++ b/CONTRIBUTING-ZH.md @@ -30,7 +30,7 @@ 不确定要贡献什么?一些想法: -- 从 Langchain 创建新组件 +- 从 `packages/components` 创建新组件 - 更新现有组件,如扩展功能、修复错误 - 添加新的 Chatflow 想法 @@ -40,7 +40,7 @@ Flowise 在一个单一的单体存储库中有 3 个不同的模块。 - `server`:用于提供 API 逻辑的 Node 后端 - `ui`:React 前端 -- `components`:Langchain 组件 +- `components`:Langchain/LlamaIndex 组件 #### 先决条件 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fdeb848b..57fee8fc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ Found an issue? [Report it](https://github.com/FlowiseAI/Flowise/issues/new/choo Not sure what to contribute? Some ideas: -- Create new components from Langchain +- Create new components from `packages/components` - Update existing components such as extending functionality, fixing bugs - Add new chatflow ideas @@ -40,7 +40,7 @@ Flowise has 3 different modules in a single mono repository. - `server`: Node backend to serve API logics - `ui`: React frontend -- `components`: Langchain components +- `components`: Third-party nodes integrations #### Prerequisite diff --git a/README-ZH.md b/README-ZH.md index 8750ebc7..b6f389ed 100644 --- a/README-ZH.md +++ b/README-ZH.md @@ -71,7 +71,7 @@ Flowise 在一个单一的代码库中有 3 个不同的模块。 - `server`:用于提供 API 逻辑的 Node 后端 - `ui`:React 前端 -- `components`:Langchain 组件 +- `components`:第三方节点集成 ### 先决条件 diff --git a/README.md b/README.md index 3e6b7e56..438647e8 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Flowise has 3 different modules in a single mono repository. - `server`: Node backend to serve API logics - `ui`: React frontend -- `components`: Langchain components +- `components`: Third-party nodes integrations ### Prerequisite diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 6ddaa484..20102a42 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -26,7 +26,7 @@ import { import { getNodeModulesPackagePath, getStartingNodes, - buildLangchain, + buildFlow, getEndingNodes, constructGraphs, resolveVariables, @@ -441,7 +441,7 @@ export class App { // chatFlowPool is initialized only when a flow is opened // if the user attempts to rename/update category without opening any flow, chatFlowPool will be undefined if (this.chatflowPool) { - // Update chatflowpool inSync to false, to build Langchain again because data has been changed + // Update chatflowpool inSync to false, to build flow from scratch again because data has been changed this.chatflowPool.updateInSync(chatflow.id, false) } @@ -1570,7 +1570,7 @@ export class App { const { startingNodeIds, depthQueue } = getStartingNodes(filteredGraph, stopNodeId) - await buildLangchain( + await buildFlow( startingNodeIds, nodes, edges, @@ -1787,7 +1787,7 @@ export class App { logger.debug(`[server]: Start building chatflow ${chatflowid}`) /*** BFS to traverse from Starting Nodes to Ending Node ***/ - const reactFlowNodes = await buildLangchain( + const reactFlowNodes = await buildFlow( startingNodeIds, nodes, edges, diff --git a/packages/server/src/utils/index.ts b/packages/server/src/utils/index.ts index 421a15ec..4f222151 100644 --- a/packages/server/src/utils/index.ts +++ b/packages/server/src/utils/index.ts @@ -263,7 +263,7 @@ export const getEndingNodes = (nodeDependencies: INodeDependencies, graph: INode * @param {ICommonObject} overrideConfig * @param {CachePool} cachePool */ -export const buildLangchain = async ( +export const buildFlow = async ( startingNodeIds: string[], reactFlowNodes: IReactFlowNode[], reactFlowEdges: IReactFlowEdge[], diff --git a/packages/ui/public/index.html b/packages/ui/public/index.html index b4ec9ea1..61fd6fe5 100644 --- a/packages/ui/public/index.html +++ b/packages/ui/public/index.html @@ -18,13 +18,19 @@ - + - +