From f9cba7fdc9d60bbb2eee6d4eeff3556daea3e2ef Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期四, 12 十二月 2024 16:35:25 +0800 Subject: [PATCH] feat(flow): 优化流程编辑功能 --- src/components/vue-flow/VueFlowHelper.ts | 82 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/components/vue-flow/VueFlowHelper.ts b/src/components/vue-flow/VueFlowHelper.ts index cbb0d0e..962ae54 100644 --- a/src/components/vue-flow/VueFlowHelper.ts +++ b/src/components/vue-flow/VueFlowHelper.ts @@ -1,4 +1,4 @@ -import { HandleType } from '@vue-flow/core'; +import { HandleType, useNode, useVueFlow } from '@vue-flow/core'; import { v4 as uuid } from 'uuid'; import { VueFlowConstant } from './VueFlowConstant'; import { CompareOperation, ConditionOperator, NodeType, VarType, nodeTypeMap } from './vueFlowEnum'; @@ -9,7 +9,7 @@ return uuid().slice(0, 8); } - static genGeometryId(){ + static genGeometryId() { return uuid().slice(0, 12); } @@ -46,6 +46,73 @@ }, ]; break; + case NodeType.LLM: + data[VueFlowConstant.GROUP_PARAMS_KEY] = [ + { + name: '妯″瀷璁剧疆', + + [VueFlowConstant.PARAMS_KEY]: [ + { + key: 'llm_model', + label: '妯″瀷', + type: 'llm_model', + value: '', + required: true, + placeholder: '璇烽�夋嫨妯″瀷', + }, + { key: 'temperature', label: '娓╁害', type: 'slide', scope: [0, 2], step: 0.1, value: 0.6 }, + ], + }, + { + name: '鎻愮ず璇�', + [VueFlowConstant.PARAMS_KEY]: [{ key: 'prompt', label: '鎻愮ず璇�', type: 'textarea', value: '' }], + }, + ]; + break; + + case NodeType.Agent: + data[VueFlowConstant.GROUP_PARAMS_KEY] = [ + { + [VueFlowConstant.PARAMS_KEY]: [ + { + key: 'agent', + label: '浠g悊', + type: 'agent_select', + value: '', + // value_label:'', + required: true, + placeholder: '浠g悊', + }, + ], + }, + ]; + break; + case NodeType.Output: + data[VueFlowConstant.GROUP_PARAMS_KEY] = [ + { + [VueFlowConstant.PARAMS_KEY]: [ + { + key: 'output_msg', + label: '娑堟伅鍐呭', + type: 'var_textarea_file', + required: true, + placeholder: + '杈撳叆闇�瑕佸彂閫佺粰鐢ㄦ埛鐨勬秷鎭紝渚嬪鈥滄帴涓嬫潵鎴戝皢鎵ц XX 鎿嶄綔锛岃鎮ㄧ‘璁も�濓紝鈥滀互涓嬫槸鎴戠殑鍒濈増鑽夌锛屾偍鍙互鍦ㄥ叾鍩虹涓婅繘琛屼慨鏀光��', + value: { msg: '', files: [] }, + }, + { + key: 'output_result', + label: '浜や簰绫诲瀷', + global: 'value.type=input', + type: 'output_form', + required: true, + value: { type: 'none', value: '' }, + options: [], + }, + ], + }, + ]; + default: break; } @@ -82,6 +149,15 @@ return varList; } }; + + static getGroupParam = (data, index = 0) => { + const group = data?.[VueFlowConstant.GROUP_PARAMS_KEY]?.[index]; + return group; + }; + + static getParams = (group, key) => { + return group?.[VueFlowConstant.PARAMS_KEY]?.find((item) => item.key === key); + }; } export class StartNodeHelper { @@ -104,6 +180,7 @@ left?: { var: string; label: string; + value: string; }, right?: { type: VarType; @@ -116,6 +193,7 @@ id: VueFlowHelper.genId(), left_var: left?.var ?? '', left_label: left?.label ?? '', + left_value: left?.var ?? '', comparison_operation: operation ?? '', right_value_type: right?.type ?? VarType.Input, right_value: right?.value ?? '', -- Gitblit v1.9.3