from abc import ABC, abstractmethod from typing import Optional from fastapi import BackgroundTasks class ISpeakingController(ABC): @abstractmethod async def get_speaking_part(self, task: int, topic: str, second_topic: str, difficulty: str): pass @abstractmethod async def get_avatars(self): pass @abstractmethod async def generate_video(self, text: str, avatar: Optional[str]): pass @abstractmethod async def pool_video(self, vid_id: str): pass