A multimodal RAG system that reads a PDF properly — text, tables, formulas, and page images together — and is built to answer with a citation back to the exact page, not a hallucination in a nice font. Live and taking questions right now.
A PDF is where good information goes into hiding. Ctrl+F finds a word, never an idea; a copied table arrives as one long unreadable string; and the one diagram that actually explains the finding is invisible to almost every RAG pipeline ever built, because most of them were designed to read words, not pages.
GlyphScholar exists to make that someone else's problem — specifically, a machine's. It parses a document the way an attentive reader would: layout, OCR, tables, formulas, and page imagery, all at once. Everything gets indexed, and a plain question comes back with an answer traceable to the exact page it came from, rather than a confident-sounding guess.
A Chainlit interface handles the conversation, mounted inside a FastAPI backend, with a Next.js portal quietly taking care of the parts every app needs and nobody particularly enjoys building twice — auth, the landing page, that sort of thing. It's live at glyphscholar.vercel.app, and at any given moment is probably fielding more questions than its author has actually asked it.
Don’t take my word for it — the receipts are on GitHubThe embedding model and the reranker are both well-understood, mostly-trustworthy-out-of-the-box components. The genuinely hard part was everything built around them — deciding when a caption needs generating, when page coverage is too thin to trust, when to burst to a GPU rather than wait on a local one. RAG gets pitched as "embed it, retrieve it, done"; the distance between that pitch and an answer actually worth trusting turned out to be almost entirely fallback logic.
The repo also keeps a public, unglamorous roadmap — tests not yet written, no CI, a setup process that's currently more "Homebrew and prayer" than one-command install — on the theory that a project honest about what it doesn't do yet is more trustworthy than one quietly pretending to be finished. Software rarely is; it just reaches a point where it's willing to say what's next.