from abc import ABC, abstractmethod from typing import Optional from fastapi import UploadFile class IWritingService(ABC): @abstractmethod async def get_writing_task_general_question(self, task: int, topic: str, difficulty: str): pass @abstractmethod async def get_writing_task_academic_question(self, task: int, attachment: UploadFile, difficulty: str): pass @abstractmethod async def grade_writing_task(self, task: int, question: str, answer: str, attachment: Optional[str]): pass