| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- from typing import Optional
 
- from core.tool.provider.base import BaseToolProvider
 
- from core.tool.provider.serpapi_provider import SerpAPIToolProvider
 
- class ToolProviderService:
 
-     def __init__(self, tenant_id: str, provider_name: str):
 
-         self.provider = self._init_provider(tenant_id, provider_name)
 
-     def _init_provider(self, tenant_id: str, provider_name: str) -> BaseToolProvider:
 
-         if provider_name == 'serpapi':
 
-             return SerpAPIToolProvider(tenant_id)
 
-         else:
 
-             raise Exception('tool provider {} not found'.format(provider_name))
 
-     def get_credentials(self, obfuscated: bool = False) -> Optional[dict]:
 
-         """
 
-         Returns the credentials for Tool as a dictionary.
 
-         :param obfuscated:
 
-         :return:
 
-         """
 
-         return self.provider.get_credentials(obfuscated)
 
-     def credentials_validate(self, credentials: dict):
 
-         """
 
-         Validates the given credentials.
 
-         :param credentials:
 
-         :raises: ValidateFailedError
 
-         """
 
-         return self.provider.credentials_validate(credentials)
 
-     def encrypt_credentials(self, credentials: dict):
 
-         """
 
-         Encrypts the given credentials.
 
-         :param credentials:
 
-         :return:
 
-         """
 
-         return self.provider.encrypt_credentials(credentials)
 
 
  |