jina.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  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 = JinaReaderTool().fork_tool_runtime(
  14. runtime={
  15. "credentials": credentials,
  16. }
  17. ).invoke(
  18. user_id='',
  19. tool_parameters={
  20. "url": "https://example.com",
  21. },
  22. )[0]
  23. message = json.loads(result.message)
  24. if message['code'] != 200:
  25. raise ToolProviderCredentialValidationError(message['message'])
  26. except Exception as e:
  27. raise ToolProviderCredentialValidationError(str(e))
  28. def _get_tool_labels(self) -> list[ToolLabelEnum]:
  29. return [
  30. ToolLabelEnum.SEARCH, ToolLabelEnum.PRODUCTIVITY
  31. ]