FastAPI async wrapper for Freepik cloud AI API supporting image generation (Mystic, Flux Dev/Pro, SeedReam), video generation (Kling, MiniMax, Seedance), image editing (upscale, relight, style transfer, expand, inpaint), and utilities (background removal, classifier, audio isolation). Includes async task tracking with polling, Docker containerization, and Gitea CI/CD workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
755 B
Python
40 lines
755 B
Python
from datetime import datetime
|
|
from enum import Enum
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class TaskStatus(str, Enum):
|
|
pending = 'pending'
|
|
processing = 'processing'
|
|
completed = 'completed'
|
|
failed = 'failed'
|
|
|
|
|
|
class TaskResponse(BaseModel):
|
|
task_id: str
|
|
status: TaskStatus
|
|
created_at: datetime
|
|
|
|
|
|
class TaskDetail(BaseModel):
|
|
task_id: str
|
|
status: TaskStatus
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
progress: Optional[float] = None
|
|
result_url: Optional[str] = None
|
|
error: Optional[str] = None
|
|
|
|
|
|
class TaskListResponse(BaseModel):
|
|
tasks: list[TaskDetail]
|
|
total: int
|
|
|
|
|
|
class ErrorResponse(BaseModel):
|
|
error: str
|
|
detail: Optional[str] = None
|
|
status_code: int
|