From f8951d7f57a02bd3d1fcc9e8e4958804ba2055fb Mon Sep 17 00:00:00 2001 From: Yeuoly <45712896+Yeuoly@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:21:41 +0800 Subject: [PATCH] fix: api tool provider not found (#2782) --- api/controllers/console/app/app.py | 41 +++++++++++---------- api/controllers/console/app/model_config.py | 38 +++++++++++-------- 2 files changed, 44 insertions(+), 35 deletions(-) diff --git a/api/controllers/console/app/app.py b/api/controllers/console/app/app.py index 4b648a4e2..fb697b641 100644 --- a/api/controllers/console/app/app.py +++ b/api/controllers/console/app/app.py @@ -247,27 +247,30 @@ class AppApi(Resource): for tool in agent_mode.get('tools') or []: agent_tool_entity = AgentToolEntity(**tool) # get tool - tool_runtime = ToolManager.get_agent_tool_runtime( - tenant_id=current_user.current_tenant_id, - agent_tool=agent_tool_entity, - agent_callback=None - ) - manager = ToolParameterConfigurationManager( - tenant_id=current_user.current_tenant_id, - tool_runtime=tool_runtime, - provider_name=agent_tool_entity.provider_id, - provider_type=agent_tool_entity.provider_type, - ) + try: + tool_runtime = ToolManager.get_agent_tool_runtime( + tenant_id=current_user.current_tenant_id, + agent_tool=agent_tool_entity, + agent_callback=None + ) + manager = ToolParameterConfigurationManager( + tenant_id=current_user.current_tenant_id, + tool_runtime=tool_runtime, + provider_name=agent_tool_entity.provider_id, + provider_type=agent_tool_entity.provider_type, + ) - # get decrypted parameters - if agent_tool_entity.tool_parameters: - parameters = manager.decrypt_tool_parameters(agent_tool_entity.tool_parameters or {}) - masked_parameter = manager.mask_tool_parameters(parameters or {}) - else: - masked_parameter = {} + # get decrypted parameters + if agent_tool_entity.tool_parameters: + parameters = manager.decrypt_tool_parameters(agent_tool_entity.tool_parameters or {}) + masked_parameter = manager.mask_tool_parameters(parameters or {}) + else: + masked_parameter = {} - # override tool parameters - tool['tool_parameters'] = masked_parameter + # override tool parameters + tool['tool_parameters'] = masked_parameter + except Exception as e: + pass # override agent mode model_config.agent_mode = json.dumps(agent_mode) diff --git a/api/controllers/console/app/model_config.py b/api/controllers/console/app/model_config.py index 117007d05..436f8c144 100644 --- a/api/controllers/console/app/model_config.py +++ b/api/controllers/console/app/model_config.py @@ -54,17 +54,20 @@ class ModelConfigResource(Resource): for tool in agent_mode.get('tools') or []: agent_tool_entity = AgentToolEntity(**tool) # get tool - tool_runtime = ToolManager.get_agent_tool_runtime( - tenant_id=current_user.current_tenant_id, - agent_tool=agent_tool_entity, - agent_callback=None - ) - manager = ToolParameterConfigurationManager( - tenant_id=current_user.current_tenant_id, - tool_runtime=tool_runtime, - provider_name=agent_tool_entity.provider_id, - provider_type=agent_tool_entity.provider_type, - ) + try: + tool_runtime = ToolManager.get_agent_tool_runtime( + tenant_id=current_user.current_tenant_id, + agent_tool=agent_tool_entity, + agent_callback=None + ) + manager = ToolParameterConfigurationManager( + tenant_id=current_user.current_tenant_id, + tool_runtime=tool_runtime, + provider_name=agent_tool_entity.provider_id, + provider_type=agent_tool_entity.provider_type, + ) + except Exception as e: + continue # get decrypted parameters if agent_tool_entity.tool_parameters: @@ -89,11 +92,14 @@ class ModelConfigResource(Resource): if key in tool_map: tool_runtime = tool_map[key] else: - tool_runtime = ToolManager.get_agent_tool_runtime( - tenant_id=current_user.current_tenant_id, - agent_tool=agent_tool_entity, - agent_callback=None - ) + try: + tool_runtime = ToolManager.get_agent_tool_runtime( + tenant_id=current_user.current_tenant_id, + agent_tool=agent_tool_entity, + agent_callback=None + ) + except Exception as e: + continue manager = ToolParameterConfigurationManager( tenant_id=current_user.current_tenant_id,