FastAPI service that turns an arXiv paper into an on-demand multiple-choice exam, with a small web UI.
Status: experimental side project, not actively maintained since mid-2025.
- Web UI to generate and take an exam for a given arXiv ID.
- Extracts text from the paper's PDF as exam source material.
- Generated exams (with sample answers) downloadable as JSON.
- Pluggable LLM backend: OpenAI API or a local Text-Generation-Inference endpoint.
- Async FastAPI + httpx + Pydantic v2; configuration via environment variables; Docker-friendly.
- CI: Ruff lint + pytest on Python 3.11 (
.github/workflows/ci.yml).
pip install .[dev]
export OPENAI_API_KEY=sk-... # if using the OpenAI backend
uvicorn main:app --reload
# web UI at http://127.0.0.1:8000, API docs at /docsLocal model backend:
export LLM_BACKEND=hf
export HF_API_URL=http://localhost:8080/v1/chat/completions # TGI endpoint
uvicorn main:app --reloaddocker build -t arxiv-exam-app .
docker run -p 8000:8000 -e OPENAI_API_KEY=sk-... arxiv-exam-appMIT