jina.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import json
  2. from typing import Any
  3. from core.tools.entities.values import ToolLabelEnum
  4. from core.tools.errors import ToolProviderCredentialValidationError
  5. from core.tools.provider.builtin.jina.tools.jina_reader import JinaReaderTool
  6. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  7. class GoogleProvider(BuiltinToolProviderController):
  8. def _validate_credentials(self, credentials: dict[str, Any]) -> None:
  9. try:
  10. if credentials["api_key"] is None:
  11. credentials["api_key"] = ""
  12. else:
  13. result = (
  14. JinaReaderTool()
  15. .fork_tool_runtime(
  16. runtime={
  17. "credentials": credentials,
  18. }
  19. )
  20. .invoke(
  21. user_id="",
  22. tool_parameters={
  23. "url": "https://example.com",
  24. },
  25. )[0]
  26. )
  27. message = json.loads(result.message)
  28. if message["code"] != 200:
  29. raise ToolProviderCredentialValidationError(message["message"])
  30. except Exception as e:
  31. raise ToolProviderCredentialValidationError(str(e))
  32. def _get_tool_labels(self) -> list[ToolLabelEnum]:
  33. return [ToolLabelEnum.SEARCH, ToolLabelEnum.PRODUCTIVITY]