slidespeak.py 1.0 KB

1234567891011121314151617181920212223242526272829
  1. from typing import Any
  2. import requests
  3. from yarl import URL
  4. from core.tools.errors import ToolProviderCredentialValidationError
  5. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  6. class SlideSpeakProvider(BuiltinToolProviderController):
  7. def _validate_credentials(self, credentials: dict[str, Any]) -> None:
  8. api_key = credentials.get("slidespeak_api_key")
  9. base_url = credentials.get("base_url")
  10. if not api_key:
  11. raise ToolProviderCredentialValidationError("API key is missing")
  12. if base_url:
  13. base_url = str(URL(base_url) / "v1")
  14. headers = {"Content-Type": "application/json", "X-API-Key": api_key}
  15. test_task_id = "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  16. url = f"{base_url or 'https://api.slidespeak.co/api/v1'}/task_status/{test_task_id}"
  17. response = requests.get(url, headers=headers)
  18. if response.status_code != 200:
  19. raise ToolProviderCredentialValidationError("Invalid SlidePeak API key")