1616
1717
1818class ChatNodeSerializer (serializers .Serializer ):
19- model_id = serializers .CharField (required = True , label = _ ("Model id" ))
19+ model_id = serializers .CharField (required = False , allow_blank = True , allow_null = True , label = _ ("Model id" ))
20+ model_id_type = serializers .CharField (required = False , default = 'custom' , label = _ ("Model id type" ))
21+ model_id_reference = serializers .ListField (required = False , child = serializers .CharField (), allow_empty = True ,
22+ label = _ ("Reference Field" ))
2023 system = serializers .CharField (required = False , allow_blank = True , allow_null = True ,
2124 label = _ ("Role Setting" ))
2225 prompt = serializers .CharField (required = True , label = _ ("Prompt word" ))
@@ -41,23 +44,24 @@ class ChatNodeSerializer(serializers.Serializer):
4144 tool_ids = serializers .ListField (child = serializers .UUIDField (), required = False , allow_empty = True ,
4245 label = _ ("Tool IDs" ), )
4346 application_ids = serializers .ListField (child = serializers .UUIDField (), required = False , allow_empty = True ,
44- label = _ ("App IDs" ), )
47+ label = _ ("App IDs" ), )
4548 skill_tool_ids = serializers .ListField (child = serializers .UUIDField (), required = False , allow_empty = True ,
46- label = _ ("Skill IDs" ), )
49+ label = _ ("Skill IDs" ), )
4750 mcp_output_enable = serializers .BooleanField (required = False , default = True , label = _ ("Whether to enable MCP output" ))
4851
4952
5053class IChatNode (INode ):
5154 type = 'ai-chat-node'
5255 support = [WorkflowMode .APPLICATION , WorkflowMode .APPLICATION_LOOP , WorkflowMode .KNOWLEDGE_LOOP ,
53- WorkflowMode .KNOWLEDGE ]
56+ WorkflowMode .KNOWLEDGE , WorkflowMode . TOOL , WorkflowMode . TOOL_LOOP ]
5457
5558 def get_node_params_serializer_class (self ) -> Type [serializers .Serializer ]:
5659 return ChatNodeSerializer
5760
5861 def _run (self ):
59- if [WorkflowMode .KNOWLEDGE , WorkflowMode .KNOWLEDGE_LOOP ].__contains__ (
60- self .workflow_manage .flow .workflow_mode ):
62+ if [WorkflowMode .KNOWLEDGE , WorkflowMode .KNOWLEDGE_LOOP , WorkflowMode .TOOL ,
63+ WorkflowMode .TOOL_LOOP ].__contains__ (
64+ self .workflow_manage .flow .workflow_mode ):
6165 return self .execute (** self .node_params_serializer .data , ** self .flow_params_serializer .data ,
6266 ** {'history_chat_record' : [], 'stream' : True , 'chat_id' : None , 'chat_record_id' : None })
6367 else :
@@ -66,6 +70,8 @@ def _run(self):
6670 def execute (self , model_id , system , prompt , dialogue_number , history_chat_record , stream , chat_id ,
6771 chat_record_id ,
6872 model_params_setting = None ,
73+ model_id_type = None ,
74+ model_id_reference = None ,
6975 dialogue_type = None ,
7076 model_setting = None ,
7177 mcp_servers = None ,
0 commit comments