From d7e6dececabeec774556c9dcd584be0e23aa5939 Mon Sep 17 00:00:00 2001 From: Yeuoly <45712896+Yeuoly@users.noreply.github.com> Date: Fri, 31 May 2024 14:19:59 +0800 Subject: [PATCH] chore: cleanup tools, remove useless code (#4833) --- .../builtin/vectorizer/tools/vectorizer.py | 4 +- .../tools/provider/builtin_tool_provider.py | 85 ------------------- api/core/tools/provider/tool_provider.py | 10 --- api/core/tools/tool/tool.py | 8 -- 4 files changed, 1 insertion(+), 106 deletions(-) diff --git a/api/core/tools/provider/builtin/vectorizer/tools/vectorizer.py b/api/core/tools/provider/builtin/vectorizer/tools/vectorizer.py index df996b52835c2..c6ec1980342d7 100644 --- a/api/core/tools/provider/builtin/vectorizer/tools/vectorizer.py +++ b/api/core/tools/provider/builtin/vectorizer/tools/vectorizer.py @@ -71,6 +71,4 @@ def get_runtime_parameters(self) -> list[ToolParameter]: options=[i.name for i in self.list_default_image_variables()] ) ] - - def is_tool_available(self) -> bool: - return len(self.list_default_image_variables()) > 0 \ No newline at end of file + \ No newline at end of file diff --git a/api/core/tools/provider/builtin_tool_provider.py b/api/core/tools/provider/builtin_tool_provider.py index a2e7475fe71f6..fdcedec2601cd 100644 --- a/api/core/tools/provider/builtin_tool_provider.py +++ b/api/core/tools/provider/builtin_tool_provider.py @@ -2,13 +2,11 @@ from os import listdir, path from typing import Any -from core.tools.entities.api_entities import UserToolProviderCredentials from core.tools.entities.tool_entities import ToolParameter, ToolProviderCredentials, ToolProviderType from core.tools.entities.values import ToolLabelEnum, default_tool_label_dict from core.tools.errors import ( ToolNotFoundError, ToolParameterValidationError, - ToolProviderCredentialValidationError, ToolProviderNotFoundError, ) from core.tools.provider.tool_provider import ToolProviderController @@ -84,15 +82,6 @@ def get_credentials_schema(self) -> dict[str, ToolProviderCredentials]: return self.credentials_schema.copy() - def user_get_credentials_schema(self) -> UserToolProviderCredentials: - """ - returns the credentials schema of the provider, this method is used for user - - :return: the credentials schema - """ - credentials = self.credentials_schema.copy() - return UserToolProviderCredentials(credentials=credentials) - def get_tools(self) -> list[Tool]: """ returns a list of tools that the provider can provide @@ -222,80 +211,6 @@ def validate_parameters(self, tool_id: int, tool_name: str, tool_parameters: dic default_value = bool(default_value) tool_parameters[parameter] = default_value - - def validate_credentials_format(self, credentials: dict[str, Any]) -> None: - """ - validate the format of the credentials of the provider and set the default value if needed - - :param credentials: the credentials of the tool - """ - credentials_schema = self.credentials_schema - if credentials_schema is None: - return - - credentials_need_to_validate: dict[str, ToolProviderCredentials] = {} - for credential_name in credentials_schema: - credentials_need_to_validate[credential_name] = credentials_schema[credential_name] - - for credential_name in credentials: - if credential_name not in credentials_need_to_validate: - raise ToolProviderCredentialValidationError(f'credential {credential_name} not found in provider {self.identity.name}') - - # check type - credential_schema = credentials_need_to_validate[credential_name] - if credential_schema == ToolProviderCredentials.CredentialsType.SECRET_INPUT or \ - credential_schema == ToolProviderCredentials.CredentialsType.TEXT_INPUT: - if not isinstance(credentials[credential_name], str): - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be string') - - elif credential_schema.type == ToolProviderCredentials.CredentialsType.SELECT: - if not isinstance(credentials[credential_name], str): - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be string') - - options = credential_schema.options - if not isinstance(options, list): - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} options should be list') - - if credentials[credential_name] not in [x.value for x in options]: - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be one of {options}') - elif credential_schema.type == ToolProviderCredentials.CredentialsType.BOOLEAN: - if isinstance(credentials[credential_name], bool): - pass - elif isinstance(credentials[credential_name], str): - if credentials[credential_name].lower() == 'true': - credentials[credential_name] = True - elif credentials[credential_name].lower() == 'false': - credentials[credential_name] = False - else: - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be boolean') - elif isinstance(credentials[credential_name], int): - if credentials[credential_name] == 1: - credentials[credential_name] = True - elif credentials[credential_name] == 0: - credentials[credential_name] = False - else: - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be boolean') - else: - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} should be boolean') - - if credentials[credential_name] or credentials[credential_name] == False: - credentials_need_to_validate.pop(credential_name) - - for credential_name in credentials_need_to_validate: - credential_schema = credentials_need_to_validate[credential_name] - if credential_schema.required: - raise ToolProviderCredentialValidationError(f'credential {credential_schema.label.en_US} is required') - - # the credential is not set currently, set the default value if needed - if credential_schema.default is not None: - default_value = credential_schema.default - # parse default value into the correct type - if credential_schema.type == ToolProviderCredentials.CredentialsType.SECRET_INPUT or \ - credential_schema.type == ToolProviderCredentials.CredentialsType.TEXT_INPUT or \ - credential_schema.type == ToolProviderCredentials.CredentialsType.SELECT: - default_value = str(default_value) - - credentials[credential_name] = default_value def validate_credentials(self, credentials: dict[str, Any]) -> None: """ diff --git a/api/core/tools/provider/tool_provider.py b/api/core/tools/provider/tool_provider.py index 0dcb8ca58c38a..7c064689d0a69 100644 --- a/api/core/tools/provider/tool_provider.py +++ b/api/core/tools/provider/tool_provider.py @@ -3,7 +3,6 @@ from pydantic import BaseModel -from core.tools.entities.api_entities import UserToolProviderCredentials from core.tools.entities.tool_entities import ( ToolParameter, ToolProviderCredentials, @@ -27,15 +26,6 @@ def get_credentials_schema(self) -> dict[str, ToolProviderCredentials]: """ return self.credentials_schema.copy() - def user_get_credentials_schema(self) -> UserToolProviderCredentials: - """ - returns the credentials schema of the provider, this method is used for user - - :return: the credentials schema - """ - credentials = self.credentials_schema.copy() - return UserToolProviderCredentials(credentials=credentials) - @abstractmethod def get_tools(self) -> list[Tool]: """ diff --git a/api/core/tools/tool/tool.py b/api/core/tools/tool/tool.py index 9de72dfe3a297..7f2adf68f70d5 100644 --- a/api/core/tools/tool/tool.py +++ b/api/core/tools/tool/tool.py @@ -326,14 +326,6 @@ def get_all_runtime_parameters(self) -> list[ToolParameter]: return parameters - def is_tool_available(self) -> bool: - """ - check if the tool is available - - :return: if the tool is available - """ - return True - def create_image_message(self, image: str, save_as: str = '') -> ToolInvokeMessage: """ create an image message