diff --git a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts index 1928d42cef1..034e2ca0de6 100644 --- a/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts +++ b/packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts @@ -1,6 +1,7 @@ import { ChatCloudflareWorkersAI, type CloudflareWorkersAIInput } from '@langchain/cloudflare' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatCloudflareWorkersAI_ChatModels implements INode { label: string @@ -70,6 +71,7 @@ class ChatCloudflareWorkersAI_ChatModels implements INode { } if (baseUrl) { + await checkDenyList(baseUrl) obj.baseUrl = baseUrl } diff --git a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts index 65573b9fdfe..432d3fd9e9a 100644 --- a/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts +++ b/packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts @@ -6,6 +6,7 @@ import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../ import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { GoogleGenerativeAIChatInput } from '@langchain/google-genai' import { ChatGoogleGenerativeAI } from './FlowiseChatGoogleGenerativeAI' +import { checkDenyList } from '../../../src/httpSecurity' class GoogleGenerativeAI_ChatModels implements INode { label: string @@ -275,7 +276,10 @@ class GoogleGenerativeAI_ChatModels implements INode { if (topK) obj.topK = parseFloat(topK) if (cache) obj.cache = cache if (temperature) obj.temperature = parseFloat(temperature) - if (baseUrl) obj.baseUrl = baseUrl + if (baseUrl) { + await checkDenyList(baseUrl) + obj.baseUrl = baseUrl + } if (thinkingLevel) { obj.thinkingConfig = { thinkingLevel: thinkingLevel, diff --git a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts index a444d1ac79d..9f3a302d8bd 100644 --- a/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts +++ b/packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts @@ -4,6 +4,7 @@ import { BaseLLMParams } from '@langchain/core/language_models/llms' import { ICommonObject, IMultiModalOption, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ChatOpenAI } from '../ChatOpenAI/FlowiseChatOpenAI' +import { checkDenyList } from '../../../src/httpSecurity' class ChatLitellm_ChatModels implements INode { label: string @@ -126,6 +127,7 @@ class ChatLitellm_ChatModels implements INode { } if (basePath) { + await checkDenyList(basePath) obj.configuration = { baseURL: basePath } diff --git a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts index c7233004131..3c6d1426dfa 100644 --- a/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts +++ b/packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts @@ -2,6 +2,7 @@ import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatLocalAI_ChatModels implements INode { label: string @@ -123,7 +124,10 @@ class ChatLocalAI_ChatModels implements INode { obj.openAIApiKey = localAIApiKey obj.apiKey = localAIApiKey } - if (basePath) obj.configuration = { baseURL: basePath } + if (basePath) { + await checkDenyList(basePath) + obj.configuration = { baseURL: basePath } + } const model = new ChatOpenAI(obj) diff --git a/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts b/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts index d87cb2c0f3d..0ac0c9454db 100644 --- a/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts +++ b/packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts @@ -6,6 +6,7 @@ import { CallbackManager, CallbackManagerForLLMRun } from '@langchain/core/callb import { ChatResult } from '@langchain/core/outputs' import { FailedAttemptHandler } from '@langchain/core/utils/async_caller' import { getBaseClasses, INode, INodeData, INodeParams } from '../../../src' +import { checkDenyList } from '../../../src/httpSecurity' export interface ChatNemoGuardrailsCallOptions extends BaseChatModelCallOptions { /** @@ -109,6 +110,7 @@ class ChatNemoGuardrailsChatModel implements INode { async init(nodeData: INodeData): Promise { const configurationId = nodeData.inputs?.configurationId const baseUrl = nodeData.inputs?.baseUrl + if (baseUrl) await checkDenyList(baseUrl) const obj: Partial = { configurationId: configurationId, baseUrl: baseUrl diff --git a/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts b/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts index 4ef8cf61893..14461704bf3 100644 --- a/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts +++ b/packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts @@ -2,6 +2,7 @@ import { BaseCache } from '@langchain/core/caches' import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatNvdiaNIM_ChatModels implements INode { label: string @@ -158,6 +159,8 @@ class ChatNvdiaNIM_ChatModels implements INode { } } + if (basePath) await checkDenyList(basePath) + if (basePath || parsedBaseOptions) { obj.configuration = { baseURL: basePath, diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts index b18d1eb3e16..484a8716a21 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts @@ -4,6 +4,7 @@ import { BaseCache } from '@langchain/core/caches' import { ICommonObject, IMultiModalOption, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { ChatOllama } from './FlowiseChatOllama' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOllama_ChatModels implements INode { label: string @@ -252,8 +253,11 @@ class ChatOllama_ChatModels implements INode { const cache = nodeData.inputs?.cache as BaseCache + const activeBaseUrl = baseUrl || 'http://localhost:11434' + await checkDenyList(activeBaseUrl) + const obj: ChatOllamaInput & BaseChatModelParams = { - baseUrl, + baseUrl: activeBaseUrl, temperature: parseFloat(temperature), model: modelName, streaming: streaming ?? true diff --git a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts index c33c1a985e8..c080e08faf1 100644 --- a/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts +++ b/packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts @@ -1,6 +1,7 @@ import { INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses } from '../../../src/utils' import { OllamaParams, Ollama } from 'llamaindex' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOllama_LlamaIndex_ChatModels implements INode { label: string @@ -192,6 +193,8 @@ class ChatOllama_LlamaIndex_ChatModels implements INode { const stop = nodeData.inputs?.stop as string const tfsZ = nodeData.inputs?.tfsZ as string + if (baseUrl) await checkDenyList(baseUrl) + const obj: OllamaParams = { model: modelName, options: {}, diff --git a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts index faf2ebd8b37..b4fac68259f 100644 --- a/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts +++ b/packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts @@ -2,6 +2,7 @@ import { ChatOpenAI, ChatOpenAIFields } from '@langchain/openai' import { BaseCache } from '@langchain/core/caches' import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { checkDenyList } from '../../../src/httpSecurity' class ChatOpenAICustom_ChatModels implements INode { label: string @@ -160,6 +161,8 @@ class ChatOpenAICustom_ChatModels implements INode { } } + if (basePath) await checkDenyList(basePath) + if (basePath || parsedBaseOptions) { obj.configuration = { baseURL: basePath,