Athena RAG
Athena RAG: University Knowledge Assistant. Answers grounded in the university's own documents.

From the brief to the build.
The Challenge
University information is often distributed across long PDF handbooks, prospectuses, course catalogs, policy documents and administrative notices. Students need direct answers, but a conventional keyword search returns documents rather than explanations. A generic chatbot is easier to use, but it can invent requirements or blend unrelated policies.
The Solution
Instead of treating a language model as a general-purpose oracle, Athena RAG retrieves relevant excerpts from uploaded university documents and asks the model to answer only from that evidence. Uploaded PDF, DOCX and TXT files are parsed, normalized and split into overlapping chunks. Relevant passages are retrieved with PostgreSQL full-text search and keyword matching, and the model is prompted to answer only from the labeled sources, without inventing requirements, page numbers or credit hours. Answers stream live and render as structured Markdown with tables, together with source citations and a confidence indicator.
- Type
- In-house product
- Category
- AI & Machine Learning
- Services provided
- AI/ML integration
- Full-stack development
- Related services
- Tech stack
- ViteReactTypeScriptTailwind CSSRadix primitivesTanStack QueryExpressFastAPIDrizzlePostgreSQL (Supabase)PNPM monorepoVercel
From upload to answer.
- 01UploadPDF, DOCX, TXT
- 02ExtractText and pages
- 03ChunkOverlapping passages
- 04RetrieveRelevant evidence
- 05GenerateGrounded answer
- 06RenderMarkdown and citations
The pieces that made it work.

Grounded answers with citations
Grounded answers with a citation drawer showing the supporting excerpt, page number and confidence.

Document library
Document library: upload, index and delete files, with suggested questions refreshed from the remaining documents.

Admin insights and history
Admin insights and chat session history.
Streaming, structured responses
Answers stream live over Server-Sent Events and render headings, lists and tables cleanly, with wide tables scrolling horizontally.
Two compatible APIs
Express and TypeScript for local and persistent-host use, and FastAPI for a Vercel and Supabase deployment.
Graceful failure
A health endpoint shows whether the hosted LLM is configured and reachable, models are discovered at runtime, and an evidence-based fallback answer is returned when the model is unavailable.
Got something like this in mind? Let's build it.
Tell us what you're building — we'll show you how we'd approach it.
