RAG Showcase - Detailed Architecture

Atlas stack + plugin seam + six RAG endpoints + provider-neutral model routing

1. User and evaluation surface 2. Atlas backend + rag-showcase plugin seam 3. Retrieval stores, workflows, and model services 4. Atlas model layer - LiteLLM routes to the configured provider source 1.1 Open WebUI multi-model chat comparison one prompt fans out to six columns 1.2 Comparison harness compare/run_matrix.py demo/*.yaml x all approaches 1.3 Judge panel compare/judge.py shuffled local model scoring judge models: host Ollama /v1 - outside the Atlas stack 1.4 Corpora MultiHop-RAG subset + keyword docs corpus/raw (generated) corpus/graph_native (committed) corpus/cyber_threat_intel (committed) 2.1 LiteLLM Gateway OpenAI-compatible /v1 registers base + flavor aliases 2.2 FastAPI backend BACKEND_PLUGINS_DIR=/app/plugins mounts backend_plugins/rag 2.3 Six OpenAI-compatible approach endpoints vanilla-ragdense top-k hybrid-ragBM25 + dense + rerank contextual-ragcontext-prefixed chunks graph-ragLightRAG hybrid mode agentic-ragReAct tool loop n8n-adaptive-ragworkflow bridge deployed inside the Atlas FastAPI backend container; invoked via LiteLLM model aliases 2.4 Ingest service Docling optional; naive fallback chunks -> base/contextual + LightRAG 2.5 Register service idempotent LiteLLM /model/new deletes stale base + flavor aliases first 3.1 Weaviate RagBase + RagContextual collections dense, hybrid BM25+dense retrieval 3.2 TEI cross-encoder rerank top candidates 3.3 n8n Adaptive-RAG classify -> route 3.4 LightRAG + Neo4j entity/relation extraction, KG storage query mode=hybrid, graph + vector retrieval rerank disabled by showcase overlay 3.5 Supabase/Postgres + Atlas services Atlas stack foundation and service config vendored under infra/; showcase overlays only configured chat model - generation roles LightRAG EXTRACT/KEYWORD/QUERY role models nomic-embed-text - 768-dim embeddings chat completions model calls via LiteLLM Legend frontend / user surface backend / approach code retrieval or graph store model layer / LiteLLM routing n8n workflow path

1. Request surface

  • Open WebUI and the comparison harness both call the same LiteLLM models.
  • Every approach returns a uniform answer, source, and metrics payload.
  • The judge panel is offline and reads stored matrix outputs.

2. Plugin boundary

  • Atlas owns the infrastructure; rag-showcase adds a mounted FastAPI plugin.
  • register_models.py makes each approach appear as a LiteLLM model.
  • roles.yaml and models.yaml keep model choice and request properties scoped.

3. Local model strategy

  • LiteLLM routes calls to whichever Atlas provider source is active.
  • Generation choices live in roles.yaml; model request properties live in models.yaml.
  • LightRAG EXTRACT, KEYWORD, and QUERY use Atlas LIGHTRAG_* inputs.