20 lines
485 B
Python

from dataclasses import dataclass, field
from typing import Any, Protocol
@dataclass(frozen=True)
class AIProviderResult:
provider_task_id: str = ""
status: str = "succeeded"
payload: dict[str, Any] = field(default_factory=dict)
asset_urls: list[str] = field(default_factory=list)
class AIProvider(Protocol):
def submit(self, payload: dict[str, Any]) -> AIProviderResult:
...
def poll(self, provider_task_id: str) -> AIProviderResult:
...