Note: Project is neither active in development at the moment nor finished
An intelligent RAG (Retrieval-Augmented Generation) chat application. Built with a modular architecture, DeadRAG processes PDF documents with advanced image extraction, vectorization, and AI-powered conversations about both text and visual content.
- Upload and intelligently process PDF documents
- Image Extraction & Analysis - Automatically extracts images from PDFs and generates AI descriptions
- Multi-Modal Vectorization - Both text content and image descriptions are vectorized for comprehensive search
- Visual Question Answering - Ask questions about charts, diagrams, or any images within your PDFs
- Pluggable LLM Providers - Currently uses Anthropic Claude, easily extendable to other providers
- Flexible Ingestion Pipeline - Modular design allows for different document processing methods
- Provider-Agnostic Design - Swap components without major refactoring
- Real-time Communication - WebSocket-powered chat for instant responses
- Context-Aware Responses - AI understands both textual and visual content from your documents
- Multi-Modal Queries - Ask about text, images, or combinations of both
- 📊 LLM Observability - Integrated Langfuse for monitoring AI interactions and performance
- 🎨 Modern UI/UX - Beautiful, responsive interface built with Nuxt 3 and TailwindCSS
- 🐳 Container-Ready - Fully dockerized external services for seamless deployment
- 🔒 Type-Safe - Complete TypeScript implementation across the entire stack
- Framework: Nuxt 3 with Vue 3
- Styling: TailwindCSS + Nuxt UI
- State Management: Pinia
- Real-time: Socket.io Client
- Framework: NestJS
- Database: PostgreSQL with Drizzle ORM
- AI/LLM: Anthropic Claude
- WebSockets: Socket.io
- Document Processing: Unstructured API
- LLM Monitoring: Langfuse
- Node.js (v18 or higher)
- Docker & Docker Compose
- PostgreSQL database
-
Start external services
docker-compose up -d
-
Install dependencies
# Install frontend dependencies cd frontend npm install # Install backend dependencies cd ../backend npm install
-
Environment Setup
Create environment files for both frontend and backend:
Examples are included in the frontend/backend folder
-
Start the development servers
In separate terminals:
# Start docker containers (runs unstructured and langfuse) docker compose up # Start backend (runs on http://localhost:3010) cd backend npm run start:dev # Start frontend (runs on http://localhost:3000) cd frontend npm run dev
dead-rag/
├── frontend/ # Nuxt 3 frontend application
│ ├── components/ # Vue components
│ ├── pages/ # Application pages
│ ├── stores/ # Pinia stores
│ └── types/ # TypeScript type definitions
├── backend/ # NestJS backend application
│ ├── src/
│ │ ├── chat/ # Chat functionality
│ │ ├── documents/ # Document management
│ │ ├── ingestion/ # Document processing
│ │ ├── llm/ # LLM integration
│ │ └── database/ # Database configuration
├── docs/ # Documentation
└── docker-compose.yml # Docker services
- Unstructured API: Runs on port 5001
- Langfuse: Runs on port 5002
- PostgreSQL: Configure connection in environment variables