feat: audit and purge legacy backend files, stub Phase 2 AI LLM modules, create comprehensive PAGEWISE_API_DOCUMENTATION.md, and wire DPS test seeding

This commit is contained in:
2026-09-09 11:28:34 +05:30
parent a28366f0c3
commit ec558d52fe
24 changed files with 812 additions and 1283 deletions

View File

@@ -14,7 +14,7 @@ import models
from ai_coach import calculate_sm2
from analytics import generate_parent_report
from billing import generate_mock_order, verify_webhook_signature
from llm import stream_tutor_response
from llm import stream_tutor_response # Phase 2 stub — returns 'coming soon' message
from predictor import calculate_readiness_score
from growth import generate_referral_link, process_referral_reward
from email_service import send_welcome_email, send_otp_email
@@ -748,9 +748,13 @@ async def upload_admin_test(
admin_id: UUID = Form(...),
session: Session = Depends(get_session)
):
"""
PDF Test Upload — Phase 2 (AI LLM integration deferred).
Currently: uploads PDF to MinIO and creates a placeholder Test record.
When Phase 2 is ready: uncomment process_pdf_test.delay() to trigger LLM question extraction.
"""
import storage
import uuid
from worker import process_pdf_test
pdf_bytes = await file.read()
current_year = datetime.utcnow().year
@@ -774,14 +778,20 @@ async def upload_admin_test(
session.commit()
session.refresh(test_obj)
process_pdf_test.delay(
test_id_str=str(test_obj.id),
object_name=object_name,
admin_id_str=str(admin_id),
exam_pattern=exam_pattern
)
# Phase 2: Uncomment below to trigger AI question extraction from PDF
# from worker import process_pdf_test
# process_pdf_test.delay(
# test_id_str=str(test_obj.id),
# object_name=object_name,
# admin_id_str=str(admin_id),
# exam_pattern=exam_pattern
# )
return {"status": "processing", "test_id": test_obj.id, "message": "Test is being processed by AI"}
return {
"status": "uploaded",
"test_id": test_obj.id,
"message": "PDF uploaded to MinIO. AI question extraction is deferred to Phase 2. Use create_manual endpoint to add questions now."
}
@app.post("/api/admin/tests/create_manual", tags=["Admin"])
def create_manual_test(