{"message":"Pharmacy Education Voice Agent API v4.0","status":"running","supported_formats":["PDF","PPTX"],"session_modes":{"study":"Agent teaches material page by page with comprehension questions","assessment":"Agent runs an adaptive MCQ exam; explains wrong answers in review phase"},"livekit_available":true,"endpoints":{"books":{"upload":"/api/upload-document (POST)","current":"/api/current-book (GET)","load":"/api/load-book/{book_id} (POST) — returns pages with text_preview","delete":"/api/books/{book_id} (DELETE)","download":"/api/download-pdf/{book_id} (GET)","get_image":"/api/get-image/{book_id}/{page_number} (GET)","get_questions":"/api/books/{book_id}/questions (GET)","generate_questions":"/api/books/{book_id}/questions/generate (POST)","books":"/api/books (GET) - Returns books with first_page_image_url"},"sessions":{"create":"/api/sessions/create (POST) — from_page controls start page for study/assessment","get":"/api/sessions/{session_id} (GET)","delete":"/api/sessions/{session_id} (DELETE)","add_response":"/api/sessions/{session_id}/add-response (POST)","complete":"/api/sessions/{session_id}/complete (POST) — returns last_explained_page","complete_by_agent":"/sessions/{session_id}/complete-by-agent (POST) — agent auto-calls after 15 min","analytics":"/api/sessions/{session_id}/analytics (GET)"},"token":"/api/get-token (GET)","health":"/health (GET)"},"workflow":{"study_mode":["1. Teacher uploads material via /api/upload-document","2. Teacher creates session via /api/sessions/create (mode='study')","   ↳ Pass from_page=N to start from a specific page","   ↳ Omit from_page (null) to auto-detect first content page (skips cover/author/TOC)","   ↳ Response includes resume_from_page (resolved start) and last_explained_page (null initially)","   ↳ To resume a previous session, pass from_page equal to the prior last_explained_page","3. Student connects to LiveKit room 'session-{session_id}'","4. Agent reads material page by page and asks comprehension questions","5. Agent posts responses via /api/sessions/{id}/add-response (last_explained_page updated automatically)","6. Agent completes session via /api/sessions/{id}/complete — response includes last_explained_page","7. Analytics with topic/drug-class breakdown available at /api/sessions/{id}/analytics"],"assessment_mode":["1. Teacher uploads material via /api/upload-document","2. Teacher creates session via /api/sessions/create (mode='assessment')","   ↳ Questions are AUTO-GENERATED from the book in the same request","   ↳ No manual mcq_pipeline.py run needed","   ↳ Optionally pass questions_path to use pre-existing questions","3. Student connects to LiveKit room 'session-{session_id}'","4. Agent runs adaptive exam — reads questions, never reveals answers","5. Agent calls get_assessment_results when done (auto-completes session)","6. Review phase: student asks about wrong answers, agent explains them fully","7. Analytics available at /api/sessions/{id}/analytics","8. If generation failed: POST /api/books/{book_id}/questions/generate"]}}