diff --git a/api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py b/api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py index 5a536cca50222..aca10e6a7f412 100644 --- a/api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py +++ b/api/core/tools/provider/builtin/wecom/tools/wecom_group_bot.py @@ -4,9 +4,10 @@ from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.tool.builtin_tool import BuiltinTool +from core.tools.utils.uuid_utils import is_valid_uuid -class WecomRepositoriesTool(BuiltinTool): +class WecomGroupBotTool(BuiltinTool): def _invoke(self, user_id: str, tool_parameters: dict[str, Any] ) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]: """ @@ -17,8 +18,9 @@ def _invoke(self, user_id: str, tool_parameters: dict[str, Any] return self.create_text_message('Invalid parameter content') hook_key = tool_parameters.get('hook_key', '') - if not hook_key: - return self.create_text_message('Invalid parameter hook_key') + if not is_valid_uuid(hook_key): + return self.create_text_message( + f'Invalid parameter hook_key ${hook_key}, not a valid UUID') msgtype = 'text' api_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send' diff --git a/api/core/tools/provider/builtin/wecom/wecom.py b/api/core/tools/provider/builtin/wecom/wecom.py index 6380061b4f2da..7a2576b668f1b 100644 --- a/api/core/tools/provider/builtin/wecom/wecom.py +++ b/api/core/tools/provider/builtin/wecom/wecom.py @@ -1,8 +1,8 @@ -from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomRepositoriesTool +from core.tools.provider.builtin.wecom.tools.wecom_group_bot import WecomGroupBotTool from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController class WecomProvider(BuiltinToolProviderController): def _validate_credentials(self, credentials: dict) -> None: - WecomRepositoriesTool() + WecomGroupBotTool() pass diff --git a/api/core/tools/utils/uuid_utils.py b/api/core/tools/utils/uuid_utils.py new file mode 100644 index 0000000000000..3046c08c89f0a --- /dev/null +++ b/api/core/tools/utils/uuid_utils.py @@ -0,0 +1,9 @@ +import uuid + + +def is_valid_uuid(uuid_str: str) -> bool: + try: + uuid.UUID(uuid_str) + return True + except Exception: + return False