From 65bfdd3e05d57cbfefbbc96b76d81248077e77bf Mon Sep 17 00:00:00 2001 From: Yansong Zhang <916125788@qq.com> Date: Thu, 3 Sep 2026 11:46:57 +0800 Subject: [PATCH] fix(api): degrade unavailable suggestion models --- api/core/llm_generator/llm_generator.py | 5 +++-- .../unit_tests/core/llm_generator/test_llm_generator.py | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/api/core/llm_generator/llm_generator.py b/api/core/llm_generator/llm_generator.py index e0c8c648e33..2ea9bf0af39 100644 --- a/api/core/llm_generator/llm_generator.py +++ b/api/core/llm_generator/llm_generator.py @@ -38,7 +38,7 @@ from graphon.enums import WorkflowNodeExecutionMetadataKey from graphon.model_runtime.entities.llm_entities import LLMResult from graphon.model_runtime.entities.message_entities import PromptMessage, SystemPromptMessage, UserPromptMessage from graphon.model_runtime.entities.model_entities import ModelType, ParameterType -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError +from graphon.model_runtime.errors.invoke import InvokeError from models import App, Message, WorkflowNodeExecutionModel from models.workflow import Workflow @@ -344,7 +344,8 @@ class LLMGenerator: tenant_id=tenant_id, model_type=ModelType.LLM, ) - except InvokeAuthorizationError: + except Exception: + logger.exception("Failed to resolve the suggested-questions model") return [] prompt_messages: list[PromptMessage] = [UserPromptMessage(content=prompt)] diff --git a/api/tests/unit_tests/core/llm_generator/test_llm_generator.py b/api/tests/unit_tests/core/llm_generator/test_llm_generator.py index 8935bd49e18..ac40607c46f 100644 --- a/api/tests/unit_tests/core/llm_generator/test_llm_generator.py +++ b/api/tests/unit_tests/core/llm_generator/test_llm_generator.py @@ -317,6 +317,14 @@ class TestLLMGenerator: questions = LLMGenerator.generate_suggested_questions_after_answer("tenant_id", "histories") assert questions == [] + def test_generate_suggested_questions_after_answer_model_resolution_error(self, mock_model_instance): + with patch("core.llm_generator.llm_generator.ModelManager.for_tenant") as mock_manager: + mock_manager.return_value.get_default_model_instance.side_effect = ValueError("unsupported default model") + + questions = LLMGenerator.generate_suggested_questions_after_answer("tenant_id", "histories") + + assert questions == [] + def test_generate_suggested_questions_after_answer_invoke_error(self, mock_model_instance): mock_model_instance.invoke_llm.side_effect = InvokeError("Invoke failed") questions = LLMGenerator.generate_suggested_questions_after_answer("tenant_id", "histories")