1234567891011121314151617181920212223242526272829 |
- from typing import Any
- import requests
- from yarl import URL
- from core.tools.errors import ToolProviderCredentialValidationError
- from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
- class SlideSpeakProvider(BuiltinToolProviderController):
- def _validate_credentials(self, credentials: dict[str, Any]) -> None:
- api_key = credentials.get("slidespeak_api_key")
- base_url = credentials.get("base_url")
- if not api_key:
- raise ToolProviderCredentialValidationError("API key is missing")
- if base_url:
- base_url = str(URL(base_url) / "v1")
- headers = {"Content-Type": "application/json", "X-API-Key": api_key}
- test_task_id = "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
- url = f"{base_url or 'https://api.slidespeak.co/api/v1'}/task_status/{test_task_id}"
- response = requests.get(url, headers=headers)
- if response.status_code != 200:
- raise ToolProviderCredentialValidationError("Invalid SlidePeak API key")
|