from abc import ABC, abstractmethod from fastapi import BackgroundTasks class ISpeakingController(ABC): @abstractmethod async def get_speaking_task(self, task: int, topic: str, difficulty: str): pass @abstractmethod async def save_speaking(self, data, background_tasks: BackgroundTasks): pass @abstractmethod async def generate_speaking_video(self, data): pass @abstractmethod async def generate_interactive_video(self, data): pass