Knowledge system / GraphRAG

ConceptGraph AI

An academic GraphRAG platform that turns course PDFs into a queryable concept graph and returns reranked answers with page-level citations.

ReactFastAPIPostgreSQLQdrantNeo4jCytoscape.jsSentenceTransformers
Intent

Why this system exists

Flat retrieval loses prerequisite relationships and course structure. ConceptGraph explores how semantic search and explicit concept relationships can work together without sacrificing provenance.

Critical decision

What shaped the architecture

Canonical course UUIDs keep graph and vector records aligned. Retrieval is gated on READY, then vector candidates are expanded through Neo4j and cross-encoder reranked before entering grounded answer context.

Architecture / simplified
  1. 01PDF ingestion
  2. 02Validation
  3. 03Chunking
  4. 04Embeddings
  5. 05Vector storage
  6. 06Graph expansion
  7. 07Retrieval
  8. 08Reranking
  9. 09Grounded answer
Reliability work

Designed for imperfect conditions

  • Content-hash duplicate detection
  • Canonical course UUID resolution
  • Idempotent stage-level retries
  • Partial-write cleanup
  • Explicit processing states
  • 10 MiB upload limit
  • Citation provenance on every eligible chunk
Concept nodes rendered
500+
Initial bundle
927 → 150 KB
Retrieval gate
READY
Working result

What exists now

  • Rendered 500+ concept nodes and dependency edges in the interactive graph dashboard.
  • Reduced the initial frontend bundle from approximately 927 KB to 150 KB with lazy-loaded routes and graph components.
  • Grounded generated answers with page-level source citations.
Next pass

What I would improve

Build a repeatable evaluation set for course-resolution errors, citation completeness, and retrieval latency under graph expansion.