DocDoeAI / app /routes /study.py
asnannp's picture
Deploy backend cd4237ff: support routes + rate limit + exam_date nullable + upload 413 fix
7c6ffa6
Raw
History Blame Contribute Delete
1.07 kB
from __future__ import annotations
from fastapi import APIRouter, Depends
from app.core.auth import require_user
from app.models.user import User
from app.schemas.study import StudyRequestAnalysis, StudyRequestAnalyzeRequest
from app.services.study_request_analyzer import analyze_study_request
router = APIRouter()
@router.post("/analyze-request", response_model=StudyRequestAnalysis,
summary="Analyze a study request",
description="Parse a natural-language study request and extract exam, subject, topic, goal, time, and level. Used in onboarding.")
def analyze_request(
payload: StudyRequestAnalyzeRequest,
_current_user: User = Depends(require_user),
) -> StudyRequestAnalysis:
# Auth required — anonymous callers can otherwise spam this and exhaust
# the parser/AI budget. Onboarding already happens behind /login or /signup,
# so the frontend always holds a JWT by the time it calls this.
result = analyze_study_request(payload.raw_text, payload.syllabus_text)
return StudyRequestAnalysis(**result)