How mabdullah005/nexusai-agentic-rag-assistant works
NexusAI is a full-stack conversational RAG assistant: users authenticate, manage threads and attached sources, then chat or resume a turn awaiting approval. The backend agent can retrieve grounded context, invoke tools, and pause for web-search approval; source ingestion covers PDFs, web pages, YouTube transcripts, and GitHub repositories. The README documents these product flows, while sampled source confirms selected implementation links. Some unsampled endpoint and graph details are represented only where explicitly documented.
Main entry points: SourceWorkspace.tsx Source workspace · agent_graph.py LangGraph agent · client.ts API client · page.tsx Chat workspace
Components 22
User experience
- Chat workspace
frontend/src/app/page.tsx - Chat interface
frontend/src/components/chat/ChatContainer.tsx - Source workspace
frontend/src/components/sources/SourceWorkspace.tsx - Source upload UI
frontend/src/components/sidebar/SourceIngestModal.tsx - API client
frontend/src/lib/api/client.ts
API and identity
- FastAPI endpoints
app/api/routes.py - Authentication
app/auth/routes.py
Agent and tools
- LangGraph agent
app/graph/agent_graph.py - RAG tool
app/tools/unified_rag_tool.py - Assistant tools
app/tools
Source knowledge
- PDF ingestion
app/services/pdf_ingest.py - Web ingestion
app/services/web_loader.py - YouTube ingestion
app/services/youtube_ingest.py - Repo indexing API
app/repocore/main.py - Repo RAG pipeline
app/repocore/rag.py - Hybrid retriever
app/core/retriever.py - Embedding provider
app/llm/embeddings.py
Memory and storage
- Vector indexes
app/repocore/vector_storage.py - Conversation memory
app/memory/postgres_memory.py - Historical retrieval
app/memory/historical_retriever.py - Database sessions
app/db/session.py
Other components
- User
Connections 26
- User → Chat workspace: uses
README.md - Chat workspace → Chat interface: renders
frontend/src/app/page.tsx - Chat workspace → Source workspace: renders
frontend/src/app/page.tsx - Chat interface → API client: sends chat
- Source workspace → API client: submits sources
- API client → FastAPI endpoints: HTTP requests
README.md - API client → Authentication: auth requests
README.md - FastAPI endpoints → LangGraph agent: invokes
app/api/routes.py - LangGraph agent → RAG tool: routes retrieval
README.md - LangGraph agent → Assistant tools: invokes tools
README.md - LangGraph agent → Conversation memory: checkpoints and persists
app/graph/agent_graph.py - LangGraph agent → Historical retrieval: retrieves history
README.md - RAG tool → Hybrid retriever: calls
app/tools/unified_rag_tool.py - Hybrid retriever → Vector indexes: queries
app/core/retriever.py - Hybrid retriever → Historical retrieval: retrieves past turns
app/core/retriever.py - PDF ingestion → Embedding provider: embeds chunks
app/services/pdf_ingest.py - PDF ingestion → Vector indexes: stores FAISS index
app/services/pdf_ingest.py - YouTube ingestion → Embedding provider: embeds chunks
app/services/youtube_ingest.py - Source workspace → PDF ingestion: uploads PDF
- Source workspace → Web ingestion: submits URL
- Source workspace → YouTube ingestion: submits video
- Repo indexing API → Repo RAG pipeline: indexes repository
app/repocore/main.py - Repo RAG pipeline → Vector indexes: stores chunks
app/repocore/rag.py - Repo RAG pipeline → Embedding provider: creates embeddings
- Conversation memory → Database sessions: uses sessions
app/memory/postgres_memory.py - Historical retrieval → Conversation memory: reads messages
app/memory/historical_retriever.py