"""Answer evaluation router. POST /ai/v2/evaluate-answer — scores a subjective answer and flags for teacher review. """ from fastapi import APIRouter, Depends from app.api.v2.dependencies import get_answer_evaluation_service from app.schemas.answer_evaluation import AnswerEvaluationRequest, AnswerEvaluationResponse router = APIRouter(prefix="/ai/v2", tags=["inference"]) @router.post( "/evaluate-answer", response_model=AnswerEvaluationResponse, summary="Evaluate Answer", description="Score a subjective answer and flag for teacher review.", ) async def evaluate_answer( request: AnswerEvaluationRequest, service=Depends(get_answer_evaluation_service), ) -> AnswerEvaluationResponse: """Score a student's subjective answer against a rubric.""" return service.predict( question_id=request.question_id, question_text=request.question_text, student_answer=request.student_answer, model_answer=request.model_answer, rubric=request.rubric, max_marks=request.max_marks, grade=request.grade, subject=request.subject, lo_id=request.lo_id, bloom_level=request.bloom_level, )