An interactive application to learn and practice Retrieval-Augmented Generation (RAG) concepts with hands-on experience.
- 📚 Learn: Visual overview of the RAG pipeline
- 📤 Ingest: Upload documents with configurable chunking strategies
- 💬 Query: Ask questions and see the RAG pipeline in action
- 🗄️ Manage: View and delete documents from the vector database
- FastAPI - Modern Python web framework
- LangChain - LLM application framework
- LanceDB - Vector database for embeddings
- OpenAI - Embeddings and language model
- React - UI library
- Framer Motion - Animations
- Lucide React - Icons
- Python 3.10+
- Node.js 18+
- uv (Python package manager)
- OpenAI API key
cd backend
# Create .env file with your OpenAI API key
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY
# Install dependencies with uv
uv sync
# Run the server
```bash
uv run uvicorn app.main:app
cd frontend
# Install dependencies
npm install
# Start development server
npm startThe frontend will be available at http://localhost:3000 and will proxy API requests to the backend at http://localhost:8000.
POST /api/documents/upload- Upload and process a documentGET /api/documents- List all documentsDELETE /api/documents/{document_id}- Delete a specific documentDELETE /api/documents- Delete all documents
POST /api/query- Query the RAG system
GET /api/chunking-strategies- Get available chunking strategiesGET /api/pipeline-overview- Get RAG pipeline overview
- Fixed Size - Split text into fixed character chunks
- Sentence-Based - Split at sentence boundaries
- Paragraph-Based - Split at paragraph boundaries
- Semantic (Token) - Token-based splitting optimized for LLMs
MIT