node_mapping.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. from collections.abc import Mapping
  2. from core.workflow.nodes.agent.agent_node import AgentNode
  3. from core.workflow.nodes.answer import AnswerNode
  4. from core.workflow.nodes.base import BaseNode
  5. from core.workflow.nodes.code import CodeNode
  6. from core.workflow.nodes.document_extractor import DocumentExtractorNode
  7. from core.workflow.nodes.end import EndNode
  8. from core.workflow.nodes.enums import NodeType
  9. from core.workflow.nodes.http_request import HttpRequestNode
  10. from core.workflow.nodes.if_else import IfElseNode
  11. from core.workflow.nodes.intent_recon_train import IntentReconTrainNode
  12. from core.workflow.nodes.iteration import IterationNode, IterationStartNode
  13. from core.workflow.nodes.knowledge_retrieval import KnowledgeRetrievalNode
  14. from core.workflow.nodes.list_operator import ListOperatorNode
  15. from core.workflow.nodes.llm import LLMNode
  16. from core.workflow.nodes.loop import LoopNode, LoopStartNode
  17. from core.workflow.nodes.parameter_extractor import ParameterExtractorNode
  18. from core.workflow.nodes.question_classifier import QuestionClassifierNode
  19. from core.workflow.nodes.start import StartNode
  20. from core.workflow.nodes.template_transform import TemplateTransformNode
  21. from core.workflow.nodes.tool import ToolNode
  22. from core.workflow.nodes.variable_aggregator import VariableAggregatorNode
  23. from core.workflow.nodes.variable_assigner.v1 import VariableAssignerNode as VariableAssignerNodeV1
  24. from core.workflow.nodes.variable_assigner.v2 import VariableAssignerNode as VariableAssignerNodeV2
  25. LATEST_VERSION = "latest"
  26. NODE_TYPE_CLASSES_MAPPING: Mapping[NodeType, Mapping[str, type[BaseNode]]] = {
  27. NodeType.START: {
  28. LATEST_VERSION: StartNode,
  29. "1": StartNode,
  30. },
  31. NodeType.END: {
  32. LATEST_VERSION: EndNode,
  33. "1": EndNode,
  34. },
  35. NodeType.ANSWER: {
  36. LATEST_VERSION: AnswerNode,
  37. "1": AnswerNode,
  38. },
  39. NodeType.LLM: {
  40. LATEST_VERSION: LLMNode,
  41. "1": LLMNode,
  42. },
  43. NodeType.KNOWLEDGE_RETRIEVAL: {
  44. LATEST_VERSION: KnowledgeRetrievalNode,
  45. "1": KnowledgeRetrievalNode,
  46. },
  47. NodeType.IF_ELSE: {
  48. LATEST_VERSION: IfElseNode,
  49. "1": IfElseNode,
  50. },
  51. NodeType.CODE: {
  52. LATEST_VERSION: CodeNode,
  53. "1": CodeNode,
  54. },
  55. NodeType.TEMPLATE_TRANSFORM: {
  56. LATEST_VERSION: TemplateTransformNode,
  57. "1": TemplateTransformNode,
  58. },
  59. NodeType.QUESTION_CLASSIFIER: {
  60. LATEST_VERSION: QuestionClassifierNode,
  61. "1": QuestionClassifierNode,
  62. },
  63. NodeType.HTTP_REQUEST: {
  64. LATEST_VERSION: HttpRequestNode,
  65. "1": HttpRequestNode,
  66. },
  67. NodeType.INTENT_RECON_TRAIN: {
  68. LATEST_VERSION: IntentReconTrainNode,
  69. "1": IntentReconTrainNode,
  70. },
  71. NodeType.TOOL: {
  72. LATEST_VERSION: ToolNode,
  73. "1": ToolNode,
  74. },
  75. NodeType.VARIABLE_AGGREGATOR: {
  76. LATEST_VERSION: VariableAggregatorNode,
  77. "1": VariableAggregatorNode,
  78. },
  79. NodeType.LEGACY_VARIABLE_AGGREGATOR: {
  80. LATEST_VERSION: VariableAggregatorNode,
  81. "1": VariableAggregatorNode,
  82. }, # original name of VARIABLE_AGGREGATOR
  83. NodeType.ITERATION: {
  84. LATEST_VERSION: IterationNode,
  85. "1": IterationNode,
  86. },
  87. NodeType.ITERATION_START: {
  88. LATEST_VERSION: IterationStartNode,
  89. "1": IterationStartNode,
  90. },
  91. NodeType.LOOP: {
  92. LATEST_VERSION: LoopNode,
  93. "1": LoopNode,
  94. },
  95. NodeType.LOOP_START: {
  96. LATEST_VERSION: LoopStartNode,
  97. "1": LoopStartNode,
  98. },
  99. NodeType.PARAMETER_EXTRACTOR: {
  100. LATEST_VERSION: ParameterExtractorNode,
  101. "1": ParameterExtractorNode,
  102. },
  103. NodeType.VARIABLE_ASSIGNER: {
  104. LATEST_VERSION: VariableAssignerNodeV2,
  105. "1": VariableAssignerNodeV1,
  106. "2": VariableAssignerNodeV2,
  107. },
  108. NodeType.DOCUMENT_EXTRACTOR: {
  109. LATEST_VERSION: DocumentExtractorNode,
  110. "1": DocumentExtractorNode,
  111. },
  112. NodeType.LIST_OPERATOR: {
  113. LATEST_VERSION: ListOperatorNode,
  114. "1": ListOperatorNode,
  115. },
  116. NodeType.AGENT: {
  117. LATEST_VERSION: AgentNode,
  118. "1": AgentNode,
  119. },
  120. }