Enterprise-grade Streamlit admin dashboard for exploring, configuring, and deploying 10 RAG (Retrieval-Augmented Generation) architectures.
| Architecture | Description | Complexity |
|---|---|---|
| Naive RAG | Basic retrieve-and-generate pipeline | Low |
| Advanced RAG | Query optimization, hybrid search, re-ranking | Medium |
| Modular RAG | Plug-and-play component architecture | Medium |
| Agentic RAG | Autonomous agent with planning and tool use | High |
| Self-RAG | Self-evaluating and self-corrective system | High |
| Corrective RAG | Error detection, validation, and correction | High |
| GraphRAG | Knowledge graph-enhanced retrieval | High |
| RAG Fusion | Multi-query parallel retrieval with rank fusion | Medium |
| Adaptive RAG | Dynamic strategy selection based on complexity | High |
| Multi-Modal RAG | Text, image, and video retrieval | Very High |
- ✅ OpenAI (GPT-4o, GPT-4, GPT-3.5)
- ✅ Anthropic (Claude 3.5, Claude 3)
- ✅ Ollama (Local models: Llama, Mistral, etc.)
- ✅ AWS Bedrock
- ✅ FAISS (Local, default)
- ✅ Pinecone (Cloud)
# Clone the repository
cd rags
# Install dependencies
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env with your API keys (optional for local models)
# Run the dashboard
streamlit run streamlit_app/app.pyrags/
├── streamlit_app/
│ ├── app.py # Main entry point
│ └── pages/ # Dashboard pages
│ ├── 01_Dashboard.py
│ ├── 02_Architecture_Explorer.py
│ ├── 03_Interactive_Demos.py
│ ├── 04_Comparison_Matrix.py
│ ├── 05_Settings.py
│ └── 06_Documentation.py
├── rag_systems/ # 10 RAG implementations
│ ├── base.py # Base interface
│ ├── naive_rag.py
│ ├── advanced_rag.py
│ ├── modular_rag.py
│ ├── agentic_rag.py
│ ├── self_rag.py
│ ├── corrective_rag.py
│ ├── graph_rag.py
│ ├── rag_fusion.py
│ ├── adaptive_rag.py
│ └── multimodal_rag.py
├── services/ # Provider abstractions
│ ├── llm_service.py
│ ├── embedding_service.py
│ └── vector_store_service.py
├── app/
│ └── config.py # Configuration
├── requirements.txt
└── .env.example
from rag_systems import get_rag_system
# Initialize any RAG type
rag = get_rag_system(
"naive", # or "advanced", "agentic", "graph", etc.
llm_provider="openai",
llm_model="gpt-4o-mini",
embedding_provider="local",
vector_store_type="faiss",
)
# Index documents
rag.index_documents([
"Document 1 content...",
"Document 2 content...",
])
# Run pipeline
response = rag.run_pipeline("Your question here?", top_k=5)
print(response.answer)
print(f"Retrieved {len(response.retrieved_documents)} documents")
print(f"Completed in {response.total_duration_ms:.2f}ms")rag = get_rag_system(
"advanced",
llm_provider="ollama",
llm_model="llama3.2",
embedding_provider="local",
embedding_model="all-MiniLM-L6-v2",
vector_store_type="faiss",
)- 🏠 Dashboard - Overview and quick stats
- 📚 Architecture Explorer - Deep dive into each RAG type
- 🔬 Interactive Demos - Test RAG pipelines live
- 📊 Comparison Matrix - Compare all architectures
- ⚙️ Settings - Configure providers and parameters
- 📖 Documentation - Best practices and guides
Edit .env with your API keys:
OPENAI_API_KEY=sk-your-key
ANTHROPIC_API_KEY=sk-ant-your-key
OLLAMA_BASE_URL=http://localhost:11434MIT License