diff --git a/apps/application/workflow/nodes/ai_chat_node/ai_chat_node.py b/apps/application/workflow/nodes/ai_chat_node/ai_chat_node.py index 0dc6f868298..4db9f18b09b 100644 --- a/apps/application/workflow/nodes/ai_chat_node/ai_chat_node.py +++ b/apps/application/workflow/nodes/ai_chat_node/ai_chat_node.py @@ -251,6 +251,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("LLM") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/application_node/application_node.py b/apps/application/workflow/nodes/application_node/application_node.py index c5396382277..0e008dc4163 100644 --- a/apps/application/workflow/nodes/application_node/application_node.py +++ b/apps/application/workflow/nodes/application_node/application_node.py @@ -166,6 +166,7 @@ def execute(self): "document_list": app_document_list, "audio_list": app_audio_list, "video_list": app_video_list, + "default_model_setting": sub_application.default_model_setting or {}, } ) diff --git a/apps/application/workflow/nodes/image_generate_node/image_generate_node.py b/apps/application/workflow/nodes/image_generate_node/image_generate_node.py index a5d5a448e5e..e0c148be4dd 100644 --- a/apps/application/workflow/nodes/image_generate_node/image_generate_node.py +++ b/apps/application/workflow/nodes/image_generate_node/image_generate_node.py @@ -79,6 +79,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("TTI") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/image_to_video_node/image_to_video_node.py b/apps/application/workflow/nodes/image_to_video_node/image_to_video_node.py index 7c1ba29c06b..93dfdef542b 100644 --- a/apps/application/workflow/nodes/image_to_video_node/image_to_video_node.py +++ b/apps/application/workflow/nodes/image_to_video_node/image_to_video_node.py @@ -85,6 +85,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("ITV") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/image_understand_node/image_understand_node.py b/apps/application/workflow/nodes/image_understand_node/image_understand_node.py index c511fdd530f..f25d528c8a6 100644 --- a/apps/application/workflow/nodes/image_understand_node/image_understand_node.py +++ b/apps/application/workflow/nodes/image_understand_node/image_understand_node.py @@ -84,6 +84,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("IMAGE") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/intent_node/intent_node.py b/apps/application/workflow/nodes/intent_node/intent_node.py index 6d1b61aed7b..8ef3165c5df 100644 --- a/apps/application/workflow/nodes/intent_node/intent_node.py +++ b/apps/application/workflow/nodes/intent_node/intent_node.py @@ -76,6 +76,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("LLM") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/parameter_extraction_node/parameter_extraction_node.py b/apps/application/workflow/nodes/parameter_extraction_node/parameter_extraction_node.py index a5847b945a2..b33a30936d2 100644 --- a/apps/application/workflow/nodes/parameter_extraction_node/parameter_extraction_node.py +++ b/apps/application/workflow/nodes/parameter_extraction_node/parameter_extraction_node.py @@ -123,6 +123,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("LLM") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/question_node/question_node.py b/apps/application/workflow/nodes/question_node/question_node.py index 24eca2ced3c..edfa7645d86 100644 --- a/apps/application/workflow/nodes/question_node/question_node.py +++ b/apps/application/workflow/nodes/question_node/question_node.py @@ -93,6 +93,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("LLM") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/reranker_node/reranker_node.py b/apps/application/workflow/nodes/reranker_node/reranker_node.py index e830bd8499e..ad41f199d84 100644 --- a/apps/application/workflow/nodes/reranker_node/reranker_node.py +++ b/apps/application/workflow/nodes/reranker_node/reranker_node.py @@ -131,6 +131,11 @@ def execute(self): "reranker_model_id", reference_data.get("model_id", reranker_model_id) ) + if reranker_model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("RERANKER") or {} + if default_model_setting and isinstance(default_model_setting, dict): + reranker_model_id = default_model_setting.get("model_id", reranker_model_id) + if not reranker_model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/speech_to_text_node/speech_to_text_node.py b/apps/application/workflow/nodes/speech_to_text_node/speech_to_text_node.py index 0bf86e0a955..f9be89ade3a 100644 --- a/apps/application/workflow/nodes/speech_to_text_node/speech_to_text_node.py +++ b/apps/application/workflow/nodes/speech_to_text_node/speech_to_text_node.py @@ -89,6 +89,12 @@ def execute(self): stt_model_id = reference_data.get("stt_model_id", reference_data.get("model_id", stt_model_id)) model_params_setting = reference_data.get("model_params_setting") + if stt_model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("STT") or {} + if default_model_setting and isinstance(default_model_setting, dict): + stt_model_id = default_model_setting.get("model_id", stt_model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not stt_model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/text_to_speech_node/text_to_speech_node.py b/apps/application/workflow/nodes/text_to_speech_node/text_to_speech_node.py index cede4303beb..80b0a913292 100644 --- a/apps/application/workflow/nodes/text_to_speech_node/text_to_speech_node.py +++ b/apps/application/workflow/nodes/text_to_speech_node/text_to_speech_node.py @@ -84,6 +84,12 @@ def execute(self): tts_model_id = reference_data.get("tts_model_id", reference_data.get("model_id", tts_model_id)) model_params_setting = reference_data.get("model_params_setting") + if tts_model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("TTS") or {} + if default_model_setting and isinstance(default_model_setting, dict): + tts_model_id = default_model_setting.get("model_id", tts_model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not tts_model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/text_to_video_node/text_to_video_node.py b/apps/application/workflow/nodes/text_to_video_node/text_to_video_node.py index 66b6cf9f6c6..868b4209b4a 100644 --- a/apps/application/workflow/nodes/text_to_video_node/text_to_video_node.py +++ b/apps/application/workflow/nodes/text_to_video_node/text_to_video_node.py @@ -79,6 +79,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("TTV") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty")) diff --git a/apps/application/workflow/nodes/video_understand_node/video_understand_node.py b/apps/application/workflow/nodes/video_understand_node/video_understand_node.py index a1f9561f25e..9e7706dac2a 100644 --- a/apps/application/workflow/nodes/video_understand_node/video_understand_node.py +++ b/apps/application/workflow/nodes/video_understand_node/video_understand_node.py @@ -82,6 +82,12 @@ def execute(self): model_id = reference_data.get("model_id", model_id) model_params_setting = reference_data.get("model_params_setting") + if model_id_type == "default": + default_model_setting = workflow_params.get("default_model_setting").get("IMAGE") or {} + if default_model_setting and isinstance(default_model_setting, dict): + model_id = default_model_setting.get("model_id", model_id) + model_params_setting = default_model_setting.get("model_params_setting") + if not model_id: raise Exception(_("Model is not allowed to be empty"))