diff --git a/CONTRIBUTING-ZH.md b/CONTRIBUTING-ZH.md index 7e35d194..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 组件 #### 先决条件 @@ -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..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 @@ -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/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/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 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/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 9c25b2a9..0acadca1 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 cf7b43c9..c43a9562 100644 --- a/packages/components/nodes/cache/RedisCache/RedisCache.ts +++ b/packages/components/nodes/cache/RedisCache/RedisCache.ts @@ -1,9 +1,10 @@ -import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' -import { RedisCache as LangchainRedisCache } from 'langchain/cache/ioredis' import { Redis, RedisOptions } from 'ioredis' import { isEqual } from 'lodash' -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' let redisClientSingleton: Redis let redisClientOption: RedisOptions diff --git a/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts b/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts index b74413fe..807d10b0 100644 --- a/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts +++ b/packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts @@ -1,9 +1,9 @@ -import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' import { Redis, RedisOptions } from 'ioredis' import { isEqual } from 'lodash' +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' let redisClientSingleton: Redis let redisClientOption: RedisOptions 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 fd5a4fff..e82d6804 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' import { checkInputs, Moderation, streamResponse } from '../../moderation/Moderation' import { formatResponse } from '../../outputparsers/OutputParserHelpers' 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 a0d0bd6e..922dfac1 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 @@ -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' 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 14815297..b179dc20 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/Cheerio/Cheerio.ts b/packages/components/nodes/documentloaders/Cheerio/Cheerio.ts index 3eba0ece..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 @@ -143,7 +145,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/PlainText/PlainText.ts b/packages/components/nodes/documentloaders/PlainText/PlainText.ts index c0c697a3..efff5870 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/Playwright/Playwright.ts b/packages/components/nodes/documentloaders/Playwright/Playwright.ts index 2de166ce..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 @@ -184,7 +186,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..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 @@ -185,7 +187,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 { 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 1eea709e..c43f913c 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 27ef36f5..366f9122 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 75897e6c..df98c3d4 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 7deec67e..b34e4ae5 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/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/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 22da396e..24fa3750 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 e2ee9f44..87a05bf8 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 0b8f3800..c53376c0 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 965b6760..7cd6d5f1 100644 --- a/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts +++ b/packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts @@ -1,8 +1,8 @@ import { Redis, RedisOptions } from 'ioredis' import { isEqual } from 'lodash' 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 98a704ab..0f26fa33 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 360a76d4..d511e7b2 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 1e44acdb..c49226d4 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 f12d1026..a4544595 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 5e92505e..ecffdfa8 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 16d40790..5c57abaf 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 a7cd9829..0a4d6988 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 9bace712..5786ed6f 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 9788f095..6862aff3 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 6a6976a5..bdfb10d9 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..86addc6b 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 @@ -100,6 +100,7 @@ export class DynamicStructuredTool< return result } + // @ts-ignore protected async _call( arg: z.output, _?: CallbackManagerForToolRun, 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/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/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 4e4a4af8..c2322ddb 100644 --- a/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts +++ b/packages/components/nodes/tools/RetrieverTool/RetrieverTool.ts @@ -1,10 +1,10 @@ -import { INode, INodeData, INodeParams } from '../../../src/Interface' -import { getBaseClasses } from '../../../src/utils' -import { DynamicTool } from 'langchain/tools' +import { z } from 'zod' import { DynamicStructuredTool } from '@langchain/core/tools' import { CallbackManagerForToolRun } from '@langchain/core/callbacks/manager' -import { BaseRetriever } from 'langchain/schema/retriever' -import { z } from 'zod' +import { DynamicTool } from '@langchain/core/tools' +import { BaseRetriever } from '@langchain/core/retrievers' +import { INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' import { SOURCE_DOCUMENTS_PREFIX } from '../../../src/agents' class Retriever_Tools implements INode { 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..3ef8a8e8 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 } @@ -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) : [] @@ -158,7 +160,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 be7784cc..67a12a14 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 80899942..7fd2559f 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 5009b0cf..61cd260f 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 0dddf782..c1b9c7d4 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis.ts @@ -1,8 +1,8 @@ import { flatten, isEqual } from 'lodash' import { createClient, SearchOptions, RedisClientOptions } 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 e87b49f9..fd7572e9 100644 --- a/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts +++ b/packages/components/nodes/vectorstores/Redis/RedisSearchBase.ts @@ -1,3 +1,10 @@ +import { createClient, SearchOptions, RedisClientOptions } from 'redis' +import { isEqual } from 'lodash' +import { Embeddings } from '@langchain/core/embeddings' +import { VectorStore } from '@langchain/core/vectorstores' +import { Document } from '@langchain/core/documents' +import { RedisVectorStore } from '@langchain/community/vectorstores/redis' +import { escapeSpecialChars, unEscapeSpecialChars } from './utils' import { getBaseClasses, getCredentialData, @@ -7,13 +14,6 @@ import { INodeOutputsValue, INodeParams } from '../../../src' -import { Embeddings } from 'langchain/embeddings/base' -import { VectorStore } from 'langchain/vectorstores/base' -import { Document } from 'langchain/document' -import { createClient, SearchOptions, RedisClientOptions } from 'redis' -import { RedisVectorStore } from 'langchain/vectorstores/redis' -import { escapeSpecialChars, unEscapeSpecialChars } from './utils' -import { isEqual } from 'lodash' let redisClientSingleton: ReturnType let redisClientOption: RedisClientOptions diff --git a/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts b/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts index 6f2ec9b3..177e0ebc 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis_Existing.ts @@ -1,8 +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 c4394824..f93ab55d 100644 --- a/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts +++ b/packages/components/nodes/vectorstores/Redis/Redis_Upsert.ts @@ -1,10 +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 62ffba94..b53945bd 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/mistralai": "^0.0.6", + "@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", @@ -56,13 +60,14 @@ "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.20", "langfuse": "2.0.2", - "langfuse-langchain": "2.3.3", - "langsmith": "0.0.53", + "langfuse-langchain": "^2.6.2-alpha.0", + "langsmith": "0.0.63", "linkifyjs": "^4.1.1", "llamaindex": "^0.0.48", - "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 40d84d06..0d85e1e6 100644 --- a/packages/components/src/Interface.ts +++ b/packages/components/src/Interface.ts @@ -150,8 +150,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 @@ -203,7 +203,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 ab08097b..c795784d 100644 --- a/packages/components/src/agents.ts +++ b/packages/components/src/agents.ts @@ -1,12 +1,14 @@ import { flatten } from 'lodash' -import { AgentExecutorInput, BaseSingleActionAgent, BaseMultiActionAgent, RunnableAgent, StoppingMethod } from 'langchain/agents' -import { ChainValues, AgentStep, 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, 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' export const SOURCE_DOCUMENTS_PREFIX = '\n\n----FLOWISE_SOURCE_DOCUMENTS----\n\n' type AgentFinish = { 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 548632ea..43b15651 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/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/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/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/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/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" } ] } 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" diff --git a/packages/server/src/commands/start.ts b/packages/server/src/commands/start.ts index dfb20766..7de5a526 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 @@ -123,6 +127,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...') diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 331b4fd0..498b2e2c 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, @@ -27,7 +27,7 @@ import { import { getNodeModulesPackagePath, getStartingNodes, - buildLangchain, + buildFlow, getEndingNodes, constructGraphs, resolveVariables, @@ -122,8 +122,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)) @@ -442,7 +443,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) } @@ -512,6 +513,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 const feedback = req.query?.feedback as boolean | undefined @@ -541,6 +543,7 @@ export class App { sessionId, startDate, endDate, + messageId, feedback ) return res.json(chatmessages) @@ -1183,8 +1186,14 @@ 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, 0) : await xmlScrape(url, 0) + 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 }) }) @@ -1470,22 +1479,34 @@ export class App { sessionId?: string, startDate?: string, endDate?: string, + messageId?: string, feedback?: boolean ): 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: { chatflowid, chatType, chatId, - memoryType: memoryType ?? (chatId ? IsNull() : undefined), + memoryType: memoryType ?? undefined, sessionId: sessionId ?? undefined, - createdDate: toDate && fromDate ? Between(fromDate, toDate) : undefined + ...(fromDate && { createdDate: MoreThanOrEqual(fromDate) }), + ...(toDate && { createdDate: LessThanOrEqual(toDate) }), + id: messageId ?? undefined }, order: { createdDate: sortOrder === 'DESC' ? 'DESC' : 'ASC' @@ -1620,7 +1641,7 @@ export class App { const { startingNodeIds, depthQueue } = getStartingNodes(filteredGraph, stopNodeId) - await buildLangchain( + await buildFlow( startingNodeIds, nodes, edges, @@ -1837,7 +1858,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 @@ - + - +