From ac675c444372f88ec96b57c8f58934e874f33c09 Mon Sep 17 00:00:00 2001 From: Joel Date: Thu, 14 Mar 2024 20:44:51 +0800 Subject: [PATCH] feat: add checkvalid empty fn --- .../components/workflow/nodes/answer/default.ts | 12 ++++++++++++ .../components/workflow/nodes/code/default.ts | 12 ++++++++++++ web/app/components/workflow/nodes/end/default.ts | 12 ++++++++++++ .../components/workflow/nodes/http/default.ts | 12 ++++++++++++ .../components/workflow/nodes/if-else/default.ts | 12 ++++++++++++ .../nodes/knowledge-retrieval/default.ts | 12 ++++++++++++ web/app/components/workflow/nodes/llm/default.ts | 12 ++++++++++++ .../nodes/question-classifier/default.ts | 12 ++++++++++++ .../components/workflow/nodes/start/default.ts | 5 +++++ .../workflow/nodes/template-transform/default.ts | 12 ++++++++++++ .../components/workflow/nodes/tool/default.ts | 12 ++++++++++++ .../workflow/nodes/variable-assigner/default.ts | 16 ++++++++++++++-- web/app/components/workflow/types.ts | 1 + 13 files changed, 140 insertions(+), 2 deletions(-) diff --git a/web/app/components/workflow/nodes/answer/default.ts b/web/app/components/workflow/nodes/answer/default.ts index 12725f1b14..e1fff58a11 100644 --- a/web/app/components/workflow/nodes/answer/default.ts +++ b/web/app/components/workflow/nodes/answer/default.ts @@ -14,6 +14,18 @@ const nodeDefault: NodeDefault = { getAvailableNextNodes() { return [] }, + checkValid(payload: AnswerNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/code/default.ts b/web/app/components/workflow/nodes/code/default.ts index a1b77e3ed1..215c8e6ae9 100644 --- a/web/app/components/workflow/nodes/code/default.ts +++ b/web/app/components/workflow/nodes/code/default.ts @@ -17,6 +17,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: CodeNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/end/default.ts b/web/app/components/workflow/nodes/end/default.ts index 8193e146a5..c842b54830 100644 --- a/web/app/components/workflow/nodes/end/default.ts +++ b/web/app/components/workflow/nodes/end/default.ts @@ -13,6 +13,18 @@ const nodeDefault: NodeDefault = { getAvailableNextNodes() { return [] }, + checkValid(payload: EndNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/http/default.ts b/web/app/components/workflow/nodes/http/default.ts index 090ff6b035..adfbef8095 100644 --- a/web/app/components/workflow/nodes/http/default.ts +++ b/web/app/components/workflow/nodes/http/default.ts @@ -26,6 +26,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: HttpNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/if-else/default.ts b/web/app/components/workflow/nodes/if-else/default.ts index 763977ffa1..3fbfa03d90 100644 --- a/web/app/components/workflow/nodes/if-else/default.ts +++ b/web/app/components/workflow/nodes/if-else/default.ts @@ -25,6 +25,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: IfElseNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/default.ts b/web/app/components/workflow/nodes/knowledge-retrieval/default.ts index 1074975972..b2b0b76ef8 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/default.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/default.ts @@ -18,6 +18,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: KnowledgeRetrievalNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/llm/default.ts b/web/app/components/workflow/nodes/llm/default.ts index 4c4a48cea6..e9e5e42411 100644 --- a/web/app/components/workflow/nodes/llm/default.ts +++ b/web/app/components/workflow/nodes/llm/default.ts @@ -33,6 +33,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: LLMNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/question-classifier/default.ts b/web/app/components/workflow/nodes/question-classifier/default.ts index 754030eab8..21ad9e00f7 100644 --- a/web/app/components/workflow/nodes/question-classifier/default.ts +++ b/web/app/components/workflow/nodes/question-classifier/default.ts @@ -23,6 +23,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: QuestionClassifierNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/start/default.ts b/web/app/components/workflow/nodes/start/default.ts index 875406e680..e443a1b1dd 100644 --- a/web/app/components/workflow/nodes/start/default.ts +++ b/web/app/components/workflow/nodes/start/default.ts @@ -14,6 +14,11 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid() { + return { + isValid: true, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/template-transform/default.ts b/web/app/components/workflow/nodes/template-transform/default.ts index e2dd3f357b..8584c758c5 100644 --- a/web/app/components/workflow/nodes/template-transform/default.ts +++ b/web/app/components/workflow/nodes/template-transform/default.ts @@ -14,6 +14,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: TemplateTransformNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/tool/default.ts b/web/app/components/workflow/nodes/tool/default.ts index 67fb1f579f..d21c20ec9e 100644 --- a/web/app/components/workflow/nodes/tool/default.ts +++ b/web/app/components/workflow/nodes/tool/default.ts @@ -15,6 +15,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: ToolNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/nodes/variable-assigner/default.ts b/web/app/components/workflow/nodes/variable-assigner/default.ts index fbbde4f3f2..9f45c6861b 100644 --- a/web/app/components/workflow/nodes/variable-assigner/default.ts +++ b/web/app/components/workflow/nodes/variable-assigner/default.ts @@ -1,10 +1,10 @@ -import type { NodeDefault } from '../../types' +import { type NodeDefault, VarType } from '../../types' import type { VariableAssignerNodeType } from './types' import { ALL_CHAT_AVAILABLE_BLOCKS, ALL_COMPLETION_AVAILABLE_BLOCKS } from '@/app/components/workflow/constants' const nodeDefault: NodeDefault = { defaultValue: { - output_type: 'string', + output_type: VarType.string, variables: [], }, getAvailablePrevNodes(isChatMode: boolean) { @@ -15,6 +15,18 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes }, + checkValid(payload: VariableAssignerNodeType) { + let isValid = true + let errorMessages = '' + if (payload.type) { + isValid = true + errorMessages = '' + } + return { + isValid, + errorMessage: errorMessages, + } + }, } export default nodeDefault diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts index a8038171be..09175374e4 100644 --- a/web/app/components/workflow/types.ts +++ b/web/app/components/workflow/types.ts @@ -159,6 +159,7 @@ export type NodeDefault = { defaultValue: Partial getAvailablePrevNodes: (isChatMode: boolean) => BlockEnum[] getAvailableNextNodes: (isChatMode: boolean) => BlockEnum[] + checkValid: (payload: T) => { isValid: boolean; errorMessage?: string } } export type OnSelectBlock = (type: BlockEnum, toolDefaultValue?: ToolDefaultValue) => void