| 1234567891011121314151617181920212223242526272829303132333435363738 | 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]
 |