From a8b5551331332fe50b791d8398f4e92b47b0f6b9 Mon Sep 17 00:00:00 2001 From: oleg Date: Fri, 19 Jul 2024 17:57:50 +0200 Subject: [PATCH] refactor(OpenAI Model Node Node, Google PaLM Language Model Node, Google PaLM Chat Model Node): Mark nodes as deprecated (#10119) --- .../nodes/llms/LMOpenAi/LmOpenAi.node.ts | 10 ++++++++-- .../llms/LmChatGooglePalm/LmChatGooglePalm.node.ts | 10 ++++++++-- .../llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts | 2 +- .../nodes/llms/LmGooglePalm/LmGooglePalm.node.ts | 10 ++++++++-- packages/editor-ui/src/components/RunData.vue | 2 +- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/@n8n/nodes-langchain/nodes/llms/LMOpenAi/LmOpenAi.node.ts b/packages/@n8n/nodes-langchain/nodes/llms/LMOpenAi/LmOpenAi.node.ts index 5408fc4da90ac..5ac75827a91b8 100644 --- a/packages/@n8n/nodes-langchain/nodes/llms/LMOpenAi/LmOpenAi.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/llms/LMOpenAi/LmOpenAi.node.ts @@ -9,7 +9,6 @@ import type { } from 'n8n-workflow'; import { OpenAI, type ClientOptions } from '@langchain/openai'; -import { getConnectionHintNoticeField } from '../../../utils/sharedFields'; import { N8nLlmTracing } from '../N8nLlmTracing'; type LmOpenAiOptions = { @@ -28,6 +27,7 @@ export class LmOpenAi implements INodeType { displayName: 'OpenAI Model', // eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased name: 'lmOpenAi', + hidden: true, icon: { light: 'file:openAiLight.svg', dark: 'file:openAiLight.dark.svg' }, group: ['transform'], version: 1, @@ -65,7 +65,13 @@ export class LmOpenAi implements INodeType { '={{ $parameter.options?.baseURL?.split("/").slice(0,-1).join("/") || "https://api.openai.com" }}', }, properties: [ - getConnectionHintNoticeField([NodeConnectionType.AiChain, NodeConnectionType.AiAgent]), + { + displayName: + 'This node is using OpenAI completions which are now deprecated. Please use the OpenAI Chat Model node instead.', + name: 'deprecated', + type: 'notice', + default: '', + }, { displayName: 'Model', name: 'model', diff --git a/packages/@n8n/nodes-langchain/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.ts b/packages/@n8n/nodes-langchain/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.ts index e6d94fb1260de..517e28dc68f71 100644 --- a/packages/@n8n/nodes-langchain/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.ts @@ -7,7 +7,6 @@ import { type SupplyData, } from 'n8n-workflow'; import { ChatGooglePaLM } from '@langchain/community/chat_models/googlepalm'; -import { getConnectionHintNoticeField } from '../../../utils/sharedFields'; import { N8nLlmTracing } from '../N8nLlmTracing'; export class LmChatGooglePalm implements INodeType { @@ -16,6 +15,7 @@ export class LmChatGooglePalm implements INodeType { // eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased name: 'lmChatGooglePalm', icon: 'file:google.svg', + hidden: true, group: ['transform'], version: 1, description: 'Chat Model Google PaLM', @@ -51,7 +51,13 @@ export class LmChatGooglePalm implements INodeType { baseURL: '={{ $credentials.host }}', }, properties: [ - getConnectionHintNoticeField([NodeConnectionType.AiChain, NodeConnectionType.AiAgent]), + { + displayName: + "Google PaLM API is deprecated. Please use Google Vertex or Google Gemini nodes instead.", + name: 'deprecated', + type: 'notice', + default: '', + }, { displayName: 'Model', name: 'modelName', diff --git a/packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts b/packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts index b1769a6a7b84a..d801ff7f600d1 100644 --- a/packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.ts @@ -14,8 +14,8 @@ import type { SafetySetting } from '@google/generative-ai'; import { ProjectsClient } from '@google-cloud/resource-manager'; import { getConnectionHintNoticeField } from '../../../utils/sharedFields'; import { N8nLlmTracing } from '../N8nLlmTracing'; -import { makeErrorFromStatus } from './error-handling'; import { additionalOptions } from '../gemini-common/additional-options'; +import { makeErrorFromStatus } from './error-handling'; export class LmChatGoogleVertex implements INodeType { description: INodeTypeDescription = { diff --git a/packages/@n8n/nodes-langchain/nodes/llms/LmGooglePalm/LmGooglePalm.node.ts b/packages/@n8n/nodes-langchain/nodes/llms/LmGooglePalm/LmGooglePalm.node.ts index 29bc3ff29a77b..61a5bd4fe921d 100644 --- a/packages/@n8n/nodes-langchain/nodes/llms/LmGooglePalm/LmGooglePalm.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/llms/LmGooglePalm/LmGooglePalm.node.ts @@ -7,7 +7,6 @@ import { type SupplyData, } from 'n8n-workflow'; import { GooglePaLM } from '@langchain/community/llms/googlepalm'; -import { getConnectionHintNoticeField } from '../../../utils/sharedFields'; import { N8nLlmTracing } from '../N8nLlmTracing'; export class LmGooglePalm implements INodeType { @@ -15,6 +14,7 @@ export class LmGooglePalm implements INodeType { displayName: 'Google PaLM Language Model', // eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased name: 'lmGooglePalm', + hidden: true, icon: 'file:google.svg', group: ['transform'], version: 1, @@ -51,7 +51,13 @@ export class LmGooglePalm implements INodeType { baseURL: '={{ $credentials.host }}', }, properties: [ - getConnectionHintNoticeField([NodeConnectionType.AiChain, NodeConnectionType.AiAgent]), + { + displayName: + "Google PaLM API is deprecated. Please use Google Vertex or Google Gemini nodes instead.", + name: 'deprecated', + type: 'notice', + default: '', + }, { displayName: 'Model', name: 'modelName', diff --git a/packages/editor-ui/src/components/RunData.vue b/packages/editor-ui/src/components/RunData.vue index ec29b476707bb..7bd9f286a6aa4 100644 --- a/packages/editor-ui/src/components/RunData.vue +++ b/packages/editor-ui/src/components/RunData.vue @@ -1080,7 +1080,7 @@ export default defineComponent({ }, watch: { node(newNode: INodeUi, prevNode: INodeUi) { - if (newNode.id === prevNode.id) return; + if (newNode?.id === prevNode?.id) return; this.init(); }, hasNodeRun() {