Knowledge Graph RAG Assistant
A senior capstone that combined semantic retrieval, structured knowledge-graph context, and an LLM response layer in one question-answering pipeline.
Built by Molly Iverson, Ethan Villalovoz, Chandler Juego, and Adam Shtrikman.
- 10,000
- Wikipedia articles indexed
- 7.615 s
- Measured average response
- 4
- Student engineers
The project
HackerEarth asked the team to explore whether dense retrieval and a knowledge graph could supply complementary context to a retrieval-augmented generation system. We built a React and FastAPI application that routed a question through language processing, DBpedia lookups, FAISS search, and answer synthesis.
The retrieval corpus combined 10,000 Wikipedia articles with custom class-note PDFs. The final handoff included Docker and Docker Compose configuration, automated tests, GitHub Actions, and system documentation.
What I built
My contribution centered on retrieval: I implemented text embeddings with SentenceTransformers, built the FAISS vector-search path, and contributed to the documentation used for delivery and maintenance.
The maintained public fork now packages a deterministic demo path and an evidence-forward interface, making the architecture reviewable even when the original API credentials and multi-gigabyte corpus are absent.
System design
The chat handler coordinated two retrieval branches. The knowledge-graph handler queried structured entity relationships, while the vector-search handler embedded the question and retrieved semantically similar passages. Their context converged at the language-model handler for final response generation.

Measured performance
An early end-to-end query took roughly 45 seconds. A model change and pipeline optimizations brought observed responses into the 6–8 second range, with vector search remaining the dominant cost in the final measurement.
| Stage | Average |
|---|---|
| Natural-language processing | 33.40 ms |
| Knowledge graph | 1,367.73 ms |
| Vector search | 4,133.53 ms |
| Language model | 2,079.70 ms |
| End to end | 7,615.07 ms |
Original prototype
The submitted capstone used a compact chat interface focused on the generated answer. The maintained demo at the top of this page is a later presentation layer that exposes the retrieval trace and source context without changing the project's underlying story.

Limitations
- Response relevance was assessed primarily through manual and client testing rather than a formal retrieval benchmark.
- Entity extraction was less reliable for complex questions involving multiple entities or relationships.
- The complete system depended on DBpedia, an LLM API, and local corpus artifacts that are not bundled with the public repository.
- A 7.6-second average response remained noticeable for an interactive assistant and left room for retrieval and caching work.
Project record
- Client partner
- Vikas Aditya, HackerEarth
- Faculty mentor
- Parteek Kumar
- Delivery
- Docker, Docker Compose, PyTest, and GitHub Actions