How vansharora156/nexus-rag works
NexusRAG is an enterprise RAG application: users submit questions through a web UI, the API runs permission-aware hybrid retrieval, and Gemini generates cited answers. Administrators can also ingest supported documents through the API; parsing, chunking, deduplication, and dual indexing prepare them for search. The README documents Confluence/Markdown, scanned PDFs, Slack, Excel/CSV, and evaluation capabilities. Source excerpts are partial, so the graph follows documented ingestion stages where implementation details were not sampled and omits uncertain internal wiring.
Main entry points: ingest.py Ingestion pipeline · hybrid_retriever.py Hybrid retrieval and RRF · routes.py API routes · query.py Query pipeline
Components 25
Interface and access
- Web interface
frontend/app.js - FastAPI application
api/app.py - API routes
api/routes.py - User accounts
src/auth/user_db.py
Document ingestion
- Ingestion pipeline
src/pipeline/ingest.py - Parser registry
src/parsers/registry.py - PDF and OCR parser
src/parsers/pdf_parser.py - Hybrid chunker
src/chunking/hybrid_chunker.py - MinHash deduplication
src/dedup/minhash_dedup.py
Retrieval and indexing
- Text embedder
src/indexing/embedder.py - Vector store
src/indexing/vector_store.py - BM25 index
src/indexing/bm25_index.py - Query pipeline
src/pipeline/query.py - Query rewriting
src/retrieval/query_rewriter.py - Hybrid retrieval and RRF
src/retrieval/hybrid_retriever.py - ACL permissions
src/acl/permissions.py - Permission filter
src/retrieval/permission_filter.py - Cross-encoder reranker
src/retrieval/reranker.py
Answer generation
- Answer generator
src/generation/generator.py - Citation formatter
src/generation/citation_formatter.py
Other components
- Enterprise user
- Ingestion administrator
- Enterprise documents
- Qdrant
- Google Gemini
Connections 27
- Enterprise user → Web interface: asks question
- Ingestion administrator → Web interface: starts ingestion
- Web interface → FastAPI application: calls API
- FastAPI application → API routes: dispatches
- API routes → User accounts: registers or authenticates
- API routes → Query pipeline: runs query
- API routes → Ingestion pipeline: starts ingestion
- Enterprise documents → Ingestion pipeline: provides files
- Ingestion pipeline → Parser registry: parses files
- Parser registry → PDF and OCR parser: dispatches PDFs
- Ingestion pipeline → Hybrid chunker: chunks documents
- Ingestion pipeline → MinHash deduplication: deduplicates chunks
- Ingestion pipeline → Text embedder: embeds chunks
- Ingestion pipeline → Vector store: indexes vectors
- Ingestion pipeline → BM25 index: builds lexical index
- Query pipeline → Hybrid retrieval and RRF: retrieves context
- Query pipeline → Answer generator: generates answer
- Hybrid retrieval and RRF → Query rewriting: expands query
- Hybrid retrieval and RRF → ACL permissions: resolves roles
- Hybrid retrieval and RRF → Vector store: searches dense index
- Hybrid retrieval and RRF → BM25 index: searches lexical index
- Hybrid retrieval and RRF → Permission filter: filters results
- Hybrid retrieval and RRF → Cross-encoder reranker: reranks candidates
- Answer generator → Google Gemini: requests generation
- Vector store → Qdrant: reads and writes vectors
- Query pipeline → Web interface: returns answer and citations
- Answer generator → Citation formatter: formats citations