| 
									
										
										
										
											2024-11-24 13:28:46 +08:00
										 |  |  | from enum import StrEnum | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-24 13:28:46 +08:00
										 |  |  | class NodeType(StrEnum): | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  |     START = "start" | 
					
						
							|  |  |  |     END = "end" | 
					
						
							|  |  |  |     ANSWER = "answer" | 
					
						
							|  |  |  |     LLM = "llm" | 
					
						
							|  |  |  |     KNOWLEDGE_RETRIEVAL = "knowledge-retrieval" | 
					
						
							|  |  |  |     IF_ELSE = "if-else" | 
					
						
							|  |  |  |     CODE = "code" | 
					
						
							|  |  |  |     TEMPLATE_TRANSFORM = "template-transform" | 
					
						
							|  |  |  |     QUESTION_CLASSIFIER = "question-classifier" | 
					
						
							|  |  |  |     HTTP_REQUEST = "http-request" | 
					
						
							|  |  |  |     TOOL = "tool" | 
					
						
							|  |  |  |     VARIABLE_AGGREGATOR = "variable-aggregator" | 
					
						
							| 
									
										
										
										
											2024-12-03 13:56:40 +08:00
										 |  |  |     LEGACY_VARIABLE_AGGREGATOR = "variable-assigner"  # TODO: Merge this into VARIABLE_AGGREGATOR in the database. | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  |     LOOP = "loop" | 
					
						
							| 
									
										
										
										
											2025-03-05 17:41:15 +08:00
										 |  |  |     LOOP_START = "loop-start" | 
					
						
							| 
									
										
										
										
											2025-04-02 13:53:26 +08:00
										 |  |  |     LOOP_END = "loop-end" | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  |     ITERATION = "iteration" | 
					
						
							|  |  |  |     ITERATION_START = "iteration-start"  # Fake start node for iteration. | 
					
						
							|  |  |  |     PARAMETER_EXTRACTOR = "parameter-extractor" | 
					
						
							| 
									
										
										
										
											2024-12-03 13:56:40 +08:00
										 |  |  |     VARIABLE_ASSIGNER = "assigner" | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  |     DOCUMENT_EXTRACTOR = "document-extractor" | 
					
						
							|  |  |  |     LIST_OPERATOR = "list-operator" | 
					
						
							| 
									
										
										
										
											2025-02-17 17:05:13 +08:00
										 |  |  |     AGENT = "agent" | 
					
						
							| 
									
										
										
										
											2024-12-11 14:22:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ErrorStrategy(StrEnum): | 
					
						
							|  |  |  |     FAIL_BRANCH = "fail-branch" | 
					
						
							|  |  |  |     DEFAULT_VALUE = "default-value" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FailBranchSourceHandle(StrEnum): | 
					
						
							|  |  |  |     FAILED = "fail-branch" | 
					
						
							|  |  |  |     SUCCESS = "success-branch" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CONTINUE_ON_ERROR_NODE_TYPE = [NodeType.LLM, NodeType.CODE, NodeType.TOOL, NodeType.HTTP_REQUEST] | 
					
						
							| 
									
										
										
										
											2024-12-23 16:42:28 +08:00
										 |  |  | RETRY_ON_ERROR_NODE_TYPE = CONTINUE_ON_ERROR_NODE_TYPE |