import { i18nT } from '../../../web/i18n/utils'; export enum FlowNodeTemplateTypeEnum { systemInput = 'systemInput', ai = 'ai', function = 'function', tools = 'tools', interactive = 'interactive', search = 'search', multimodal = 'multimodal', communication = 'communication', other = 'other', teamApp = 'teamApp' } export enum WorkflowIOValueTypeEnum { string = 'string', number = 'number', boolean = 'boolean', object = 'object', arrayString = 'arrayString', arrayNumber = 'arrayNumber', arrayBoolean = 'arrayBoolean', arrayObject = 'arrayObject', arrayAny = 'arrayAny', any = 'any', chatHistory = 'chatHistory', datasetQuote = 'datasetQuote', dynamic = 'dynamic', // plugin special type selectApp = 'selectApp', selectDataset = 'selectDataset' } export const toolValueTypeList = [ { label: WorkflowIOValueTypeEnum.string, value: WorkflowIOValueTypeEnum.string, jsonSchema: { type: 'string' } }, { label: WorkflowIOValueTypeEnum.number, value: WorkflowIOValueTypeEnum.number, jsonSchema: { type: 'number' } }, { label: WorkflowIOValueTypeEnum.boolean, value: WorkflowIOValueTypeEnum.boolean, jsonSchema: { type: 'boolean' } }, { label: 'array', value: WorkflowIOValueTypeEnum.arrayString, jsonSchema: { type: 'array', items: { type: 'string' } } }, { label: 'array', value: WorkflowIOValueTypeEnum.arrayNumber, jsonSchema: { type: 'array', items: { type: 'number' } } }, { label: 'array', value: WorkflowIOValueTypeEnum.arrayBoolean, jsonSchema: { type: 'array', items: { type: 'boolean' } } } ]; /* reg: modulename key */ export enum NodeInputKeyEnum { // old welcomeText = 'welcomeText', switch = 'switch', // a trigger switch history = 'history', answerText = 'text', // system config questionGuide = 'questionGuide', tts = 'tts', whisper = 'whisper', variables = 'variables', scheduleTrigger = 'scheduleTrigger', chatInputGuide = 'chatInputGuide', // plugin config instruction = 'instruction', // entry userChatInput = 'userChatInput', inputFiles = 'inputFiles', agents = 'agents', // cq agent key // latest // common aiModel = 'model', aiSystemPrompt = 'systemPrompt', description = 'description', anyInput = 'system_anyInput', textareaInput = 'system_textareaInput', addInputParam = 'system_addInputParam', forbidStream = 'system_forbid_stream', // history historyMaxAmount = 'maxContext', // ai chat aiChatTemperature = 'temperature', aiChatMaxToken = 'maxToken', aiChatSettingModal = 'aiSettings', aiChatIsResponseText = 'isResponseAnswerText', aiChatQuoteRole = 'aiChatQuoteRole', aiChatQuoteTemplate = 'quoteTemplate', aiChatQuotePrompt = 'quotePrompt', aiChatDatasetQuote = 'quoteQA', aiChatVision = 'aiChatVision', stringQuoteText = 'stringQuoteText', // dataset datasetSelectList = 'datasets', datasetSimilarity = 'similarity', datasetMaxTokens = 'limit', datasetSearchMode = 'searchMode', datasetSearchUsingReRank = 'usingReRank', datasetSearchUsingExtensionQuery = 'datasetSearchUsingExtensionQuery', datasetSearchExtensionModel = 'datasetSearchExtensionModel', datasetSearchExtensionBg = 'datasetSearchExtensionBg', collectionFilterMatch = 'collectionFilterMatch', // concat dataset datasetQuoteList = 'system_datasetQuoteList', // context extract contextExtractInput = 'content', extractKeys = 'extractKeys', // http httpReqUrl = 'system_httpReqUrl', httpHeaders = 'system_httpHeader', httpMethod = 'system_httpMethod', httpParams = 'system_httpParams', httpJsonBody = 'system_httpJsonBody', httpFormBody = 'system_httpFormBody', httpContentType = 'system_httpContentType', httpTimeout = 'system_httpTimeout', abandon_httpUrl = 'url', // app runAppSelectApp = 'app', // plugin pluginId = 'pluginId', pluginStart = 'pluginStart', // if else condition = 'condition', ifElseList = 'ifElseList', // variable update updateList = 'updateList', // code code = 'code', codeType = 'codeType', // js|py // read files fileUrlList = 'fileUrlList', // user select userSelectOptions = 'userSelectOptions', // loop loopInputArray = 'loopInputArray', childrenNodeIdList = 'childrenNodeIdList', nodeWidth = 'nodeWidth', nodeHeight = 'nodeHeight', // loop start loopStartInput = 'loopStartInput', // loop end loopEndInput = 'loopEndInput', // form input userInputForms = 'userInputForms', // comment commentText = 'commentText', commentSize = 'commentSize' } export enum NodeOutputKeyEnum { // common userChatInput = 'userChatInput', history = 'history', answerText = 'answerText', // module answer. the value will be show and save to history success = 'success', failed = 'failed', error = 'error', text = 'system_text', addOutputParam = 'system_addOutputParam', rawResponse = 'system_rawResponse', // start userFiles = 'userFiles', // dataset datasetQuoteQA = 'quoteQA', // classify cqResult = 'cqResult', // context extract contextExtractFields = 'fields', // tf switch resultTrue = 'system_resultTrue', resultFalse = 'system_resultFalse', // tools selectedTools = 'selectedTools', // http httpRawResponse = 'httpRawResponse', // plugin pluginStart = 'pluginStart', // if else ifElseResult = 'ifElseResult', //user select selectResult = 'selectResult', // loop loopArray = 'loopArray', // loop start loopStartInput = 'loopStartInput', // form input formInputResult = 'formInputResult' } export enum VariableInputEnum { input = 'input', textarea = 'textarea', numberInput = 'numberInput', select = 'select', custom = 'custom' } export const variableMap: Record< VariableInputEnum, { icon: string; label: string; value: VariableInputEnum; defaultValueType: WorkflowIOValueTypeEnum; description?: string; } > = { [VariableInputEnum.input]: { icon: 'core/workflow/inputType/input', label: i18nT('common:core.workflow.inputType.textInput'), value: VariableInputEnum.input, defaultValueType: WorkflowIOValueTypeEnum.string }, [VariableInputEnum.textarea]: { icon: 'core/workflow/inputType/textarea', label: i18nT('common:core.workflow.inputType.textarea'), value: VariableInputEnum.textarea, defaultValueType: WorkflowIOValueTypeEnum.string, description: i18nT('app:variable.textarea_type_desc') }, [VariableInputEnum.numberInput]: { icon: 'core/workflow/inputType/numberInput', label: i18nT('common:core.workflow.inputType.number input'), value: VariableInputEnum.numberInput, defaultValueType: WorkflowIOValueTypeEnum.number }, [VariableInputEnum.select]: { icon: 'core/workflow/inputType/option', label: i18nT('common:core.workflow.inputType.select'), value: VariableInputEnum.select, defaultValueType: WorkflowIOValueTypeEnum.string }, [VariableInputEnum.custom]: { icon: 'core/workflow/inputType/customVariable', label: i18nT('common:core.workflow.inputType.custom'), value: VariableInputEnum.custom, defaultValueType: WorkflowIOValueTypeEnum.string, description: i18nT('app:variable.select type_desc') } }; /* run time */ export enum RuntimeEdgeStatusEnum { 'waiting' = 'waiting', 'active' = 'active', 'skipped' = 'skipped' } export const VARIABLE_NODE_ID = 'VARIABLE_NODE_ID'; export const DYNAMIC_INPUT_REFERENCE_KEY = 'DYNAMIC_INPUT_REFERENCE_KEY'; // http node body content type export enum ContentTypes { none = 'none', formData = 'form-data', xWwwFormUrlencoded = 'x-www-form-urlencoded', json = 'json', xml = 'xml', raw = 'raw-text' }