Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

api_key_auth_factory.py 1003B

1234567891011121314151617181920212223242526272829
  1. from services.auth.api_key_auth_base import ApiKeyAuthBase
  2. from services.auth.auth_type import AuthType
  3. class ApiKeyAuthFactory:
  4. def __init__(self, provider: str, credentials: dict):
  5. auth_factory = self.get_apikey_auth_factory(provider)
  6. self.auth = auth_factory(credentials)
  7. def validate_credentials(self):
  8. return self.auth.validate_credentials()
  9. @staticmethod
  10. def get_apikey_auth_factory(provider: str) -> type[ApiKeyAuthBase]:
  11. match provider:
  12. case AuthType.FIRECRAWL:
  13. from services.auth.firecrawl.firecrawl import FirecrawlAuth
  14. return FirecrawlAuth
  15. case AuthType.WATERCRAWL:
  16. from services.auth.watercrawl.watercrawl import WatercrawlAuth
  17. return WatercrawlAuth
  18. case AuthType.JINA:
  19. from services.auth.jina.jina import JinaAuth
  20. return JinaAuth
  21. case _:
  22. raise ValueError("Invalid provider")