| 123456789101112131415161718192021222324252627282930313233343536 | import jsonfrom typing import Anyfrom core.tools.entities.values import ToolLabelEnumfrom core.tools.errors import ToolProviderCredentialValidationErrorfrom core.tools.provider.builtin.jina.tools.jina_reader import JinaReaderToolfrom core.tools.provider.builtin_tool_provider import BuiltinToolProviderControllerclass GoogleProvider(BuiltinToolProviderController):    def _validate_credentials(self, credentials: dict[str, Any]) -> None:        try:            if credentials['api_key'] is None:                credentials['api_key'] = ''            else:                result = JinaReaderTool().fork_tool_runtime(                    runtime={                        "credentials": credentials,                    }                ).invoke(                    user_id='',                    tool_parameters={                        "url": "https://example.com",                    },                )[0]                message = json.loads(result.message)                if message['code'] != 200:                    raise ToolProviderCredentialValidationError(message['message'])        except Exception as e:            raise ToolProviderCredentialValidationError(str(e))            def _get_tool_labels(self) -> list[ToolLabelEnum]:        return [            ToolLabelEnum.SEARCH, ToolLabelEnum.PRODUCTIVITY        ]
 |