20 lines
485 B
Python
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:
|
|
...
|
|
|