22 lines
567 B
Python
Executable file
22 lines
567 B
Python
Executable file
from abc import ABC, abstractmethod
|
|
from app.models.schemas import SubReview
|
|
|
|
|
|
class BaseAgent(ABC):
|
|
"""Abstract base class for all review agents."""
|
|
|
|
name: str = "Base Agent"
|
|
|
|
@abstractmethod
|
|
async def analyze(self, file_data: bytes, file_type: str) -> SubReview:
|
|
"""
|
|
Analyze the proof and return a SubReview.
|
|
|
|
Args:
|
|
file_data: Raw bytes of the file to analyze
|
|
file_type: MIME type of the file
|
|
|
|
Returns:
|
|
SubReview containing ragStatus, feedback, and issues
|
|
"""
|
|
pass
|