VaultExam AI: Mock Tests from Your Notes, Without Uploading Them Anywhere
Description and use
VaultExam AI lets users generate exam papers from their notes locally, avoiding cloud uploads and token costs, with page‑cited answers and printable PDFs.
Problem
Coaching institutes, tutors, professors, and corporate trainers need to generate mock tests and question banks from proprietary notes without uploading them to cloud APIs, which would expose intellectual property and incur per-token costs.
Outcome
VaultExam AI enables privacy‑first, local generation of exam papers from proprietary notes, eliminating cloud dependencies and token costs while providing page‑cited answers and printable PDFs.
Workflow
- Upload notes in any format; the file is chunked, embedded locally, and deleted from disk immediately.
- Ask questions of the document; answers are sourced only from the notes with page citations.
- Generate an exam by selecting institute name, exam type, difficulty, and number of question types.
- Create Set A/B/C by sampling different document parts and avoiding repeats.
- Validate generated content (question count, options, answer index) and retry on bad JSON.
- Print or save the exam as PDF directly from the browser.
Evidence
VaultExam AI is a 100% local, privacy-first tool that turns a chapter (In any format) into a ready-to-print question paper + answer key and lets you ask questions of the same document with page-cited answers.
Upload Notes in any format. It is chunked and embedded locally, and the file is deleted from disk straight after ingestion.
Everything runs on the user's own machine. No cloud calls, no per-token fees.
Backend: Java 21, Spring Boot 4.1.1 and Spring AI 2.0.1
LLM: an open-weight model (qwen3.5:4b) served by local Ollama
Vector store: PostgreSQL with PGVector (pgvector/pgvector:pg16 via Docker Compose)
How the exam generator works: it retrieves a sample of chunks from the document, asks the model for MCQs, short answers and long answers in separate structured-output calls, then validates each result (question count, exactly four options, valid answer index) and retries if the local model returns bad JSON.
- Record date: 2026-10-18T00:56:06.174Z