| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | import type { ComponentType } from 'react' | 
					
						
							|  |  |  | import { BlockEnum } from '../types' | 
					
						
							|  |  |  | import StartNode from './start/node' | 
					
						
							|  |  |  | import StartPanel from './start/panel' | 
					
						
							|  |  |  | import EndNode from './end/node' | 
					
						
							|  |  |  | import EndPanel from './end/panel' | 
					
						
							|  |  |  | import AnswerNode from './answer/node' | 
					
						
							|  |  |  | import AnswerPanel from './answer/panel' | 
					
						
							|  |  |  | import LLMNode from './llm/node' | 
					
						
							|  |  |  | import LLMPanel from './llm/panel' | 
					
						
							|  |  |  | import KnowledgeRetrievalNode from './knowledge-retrieval/node' | 
					
						
							|  |  |  | import KnowledgeRetrievalPanel from './knowledge-retrieval/panel' | 
					
						
							|  |  |  | import QuestionClassifierNode from './question-classifier/node' | 
					
						
							|  |  |  | import QuestionClassifierPanel from './question-classifier/panel' | 
					
						
							|  |  |  | import IfElseNode from './if-else/node' | 
					
						
							|  |  |  | import IfElsePanel from './if-else/panel' | 
					
						
							|  |  |  | import CodeNode from './code/node' | 
					
						
							|  |  |  | import CodePanel from './code/panel' | 
					
						
							|  |  |  | import TemplateTransformNode from './template-transform/node' | 
					
						
							|  |  |  | import TemplateTransformPanel from './template-transform/panel' | 
					
						
							|  |  |  | import HttpNode from './http/node' | 
					
						
							|  |  |  | import HttpPanel from './http/panel' | 
					
						
							|  |  |  | import ToolNode from './tool/node' | 
					
						
							|  |  |  | import ToolPanel from './tool/panel' | 
					
						
							|  |  |  | import VariableAssignerNode from './variable-assigner/node' | 
					
						
							|  |  |  | import VariableAssignerPanel from './variable-assigner/panel' | 
					
						
							| 
									
										
										
										
											2024-08-13 14:44:10 +08:00
										 |  |  | import AssignerNode from './assigner/node' | 
					
						
							|  |  |  | import AssignerPanel from './assigner/panel' | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  | import ParameterExtractorNode from './parameter-extractor/node' | 
					
						
							|  |  |  | import ParameterExtractorPanel from './parameter-extractor/panel' | 
					
						
							|  |  |  | import IterationNode from './iteration/node' | 
					
						
							|  |  |  | import IterationPanel from './iteration/panel' | 
					
						
							| 
									
										
										
										
											2025-03-05 17:41:15 +08:00
										 |  |  | import LoopNode from './loop/node' | 
					
						
							|  |  |  | import LoopPanel from './loop/panel' | 
					
						
							| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  | import DocExtractorNode from './document-extractor/node' | 
					
						
							|  |  |  | import DocExtractorPanel from './document-extractor/panel' | 
					
						
							|  |  |  | import ListFilterNode from './list-operator/node' | 
					
						
							|  |  |  | import ListFilterPanel from './list-operator/panel' | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  | import AgentNode from './agent/node' | 
					
						
							|  |  |  | import AgentPanel from './agent/panel' | 
					
						
							| 
									
										
										
										
											2025-04-22 16:46:33 +08:00
										 |  |  | import DataSourceNode from './data-source/node' | 
					
						
							|  |  |  | import DataSourcePanel from './data-source/panel' | 
					
						
							| 
									
										
										
										
											2025-04-25 17:24:47 +08:00
										 |  |  | import KnowledgeBaseNode from './knowledge-base/node' | 
					
						
							|  |  |  | import KnowledgeBasePanel from './knowledge-base/panel' | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  | import { TransferMethod } from '@/types/app' | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const NodeComponentMap: Record<string, ComponentType<any>> = { | 
					
						
							|  |  |  |   [BlockEnum.Start]: StartNode, | 
					
						
							|  |  |  |   [BlockEnum.End]: EndNode, | 
					
						
							|  |  |  |   [BlockEnum.Answer]: AnswerNode, | 
					
						
							|  |  |  |   [BlockEnum.LLM]: LLMNode, | 
					
						
							|  |  |  |   [BlockEnum.KnowledgeRetrieval]: KnowledgeRetrievalNode, | 
					
						
							|  |  |  |   [BlockEnum.QuestionClassifier]: QuestionClassifierNode, | 
					
						
							|  |  |  |   [BlockEnum.IfElse]: IfElseNode, | 
					
						
							|  |  |  |   [BlockEnum.Code]: CodeNode, | 
					
						
							|  |  |  |   [BlockEnum.TemplateTransform]: TemplateTransformNode, | 
					
						
							|  |  |  |   [BlockEnum.HttpRequest]: HttpNode, | 
					
						
							|  |  |  |   [BlockEnum.Tool]: ToolNode, | 
					
						
							|  |  |  |   [BlockEnum.VariableAssigner]: VariableAssignerNode, | 
					
						
							| 
									
										
										
										
											2024-08-13 14:44:10 +08:00
										 |  |  |   [BlockEnum.Assigner]: AssignerNode, | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |   [BlockEnum.VariableAggregator]: VariableAssignerNode, | 
					
						
							|  |  |  |   [BlockEnum.ParameterExtractor]: ParameterExtractorNode, | 
					
						
							|  |  |  |   [BlockEnum.Iteration]: IterationNode, | 
					
						
							| 
									
										
										
										
											2025-03-05 17:41:15 +08:00
										 |  |  |   [BlockEnum.Loop]: LoopNode, | 
					
						
							| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  |   [BlockEnum.DocExtractor]: DocExtractorNode, | 
					
						
							|  |  |  |   [BlockEnum.ListFilter]: ListFilterNode, | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  |   [BlockEnum.Agent]: AgentNode, | 
					
						
							| 
									
										
										
										
											2025-04-22 16:46:33 +08:00
										 |  |  |   [BlockEnum.DataSource]: DataSourceNode, | 
					
						
							| 
									
										
										
										
											2025-04-25 17:24:47 +08:00
										 |  |  |   [BlockEnum.KnowledgeBase]: KnowledgeBaseNode, | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const PanelComponentMap: Record<string, ComponentType<any>> = { | 
					
						
							|  |  |  |   [BlockEnum.Start]: StartPanel, | 
					
						
							|  |  |  |   [BlockEnum.End]: EndPanel, | 
					
						
							|  |  |  |   [BlockEnum.Answer]: AnswerPanel, | 
					
						
							|  |  |  |   [BlockEnum.LLM]: LLMPanel, | 
					
						
							|  |  |  |   [BlockEnum.KnowledgeRetrieval]: KnowledgeRetrievalPanel, | 
					
						
							|  |  |  |   [BlockEnum.QuestionClassifier]: QuestionClassifierPanel, | 
					
						
							|  |  |  |   [BlockEnum.IfElse]: IfElsePanel, | 
					
						
							|  |  |  |   [BlockEnum.Code]: CodePanel, | 
					
						
							|  |  |  |   [BlockEnum.TemplateTransform]: TemplateTransformPanel, | 
					
						
							|  |  |  |   [BlockEnum.HttpRequest]: HttpPanel, | 
					
						
							|  |  |  |   [BlockEnum.Tool]: ToolPanel, | 
					
						
							|  |  |  |   [BlockEnum.VariableAssigner]: VariableAssignerPanel, | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |   [BlockEnum.VariableAggregator]: VariableAssignerPanel, | 
					
						
							| 
									
										
										
										
											2024-08-13 14:44:10 +08:00
										 |  |  |   [BlockEnum.Assigner]: AssignerPanel, | 
					
						
							| 
									
										
										
										
											2024-05-27 21:57:08 +08:00
										 |  |  |   [BlockEnum.ParameterExtractor]: ParameterExtractorPanel, | 
					
						
							|  |  |  |   [BlockEnum.Iteration]: IterationPanel, | 
					
						
							| 
									
										
										
										
											2025-03-05 17:41:15 +08:00
										 |  |  |   [BlockEnum.Loop]: LoopPanel, | 
					
						
							| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  |   [BlockEnum.DocExtractor]: DocExtractorPanel, | 
					
						
							|  |  |  |   [BlockEnum.ListFilter]: ListFilterPanel, | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  |   [BlockEnum.Agent]: AgentPanel, | 
					
						
							| 
									
										
										
										
											2025-04-22 16:46:33 +08:00
										 |  |  |   [BlockEnum.DataSource]: DataSourcePanel, | 
					
						
							| 
									
										
										
										
											2025-04-25 17:24:47 +08:00
										 |  |  |   [BlockEnum.KnowledgeBase]: KnowledgeBasePanel, | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-06-14 17:08:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const CUSTOM_NODE_TYPE = 'custom' | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const FILE_TYPE_OPTIONS = [ | 
					
						
							|  |  |  |   { value: 'image', i18nKey: 'image' }, | 
					
						
							|  |  |  |   { value: 'document', i18nKey: 'doc' }, | 
					
						
							|  |  |  |   { value: 'audio', i18nKey: 'audio' }, | 
					
						
							|  |  |  |   { value: 'video', i18nKey: 'video' }, | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const TRANSFER_METHOD = [ | 
					
						
							|  |  |  |   { value: TransferMethod.local_file, i18nKey: 'localUpload' }, | 
					
						
							|  |  |  |   { value: TransferMethod.remote_url, i18nKey: 'url' }, | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-21 20:57:02 +08:00
										 |  |  | export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method', 'related_id'] | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  | export const OUTPUT_FILE_SUB_VARIABLES = SUB_VARIABLES.filter(key => key !== 'transfer_method') |