| # Architecture |
|
|
| RAG QA Command Center is a self-contained Streamlit application for reviewing offline RAG evaluation logs. It is intentionally deterministic: packaged CSV artifacts are loaded locally, validated at startup, transformed into review views, and exported without external services. |
|
|
| ## Runtime flow |
|
|
| ```text |
| app.py |
| -> src.dashboard.CommandCenterApp |
| -> src.data.DataRepository.load() |
| -> src.data.validate_bundle() |
| -> src.analytics.* |
| -> src.charts.* |
| -> src.views.* |
| -> Streamlit UI / downloads |
| ``` |
|
|
| ## Main layers |
|
|
| | Layer | Files | Responsibility | |
| |---|---|---| |
| | Entry point | `app.py` | Thin launcher only. | |
| | Controller | `src/dashboard.py` | Page orchestration, filters, context construction, and shared rendering helpers. | |
| | View mixins | `src/views/` | One focused module per tab/page. | |
| | Data access | `src/data.py` | CSV discovery, loading, standardization, schema and integrity validation. | |
| | Analytics | `src/analytics.py` | Metrics, risk slices, retrieval outcomes, config scoring, policy curves, trace queues. | |
| | Charts | `src/charts.py` | Plotly figure factories. | |
| | UI primitives | `src/ui.py` | Reusable Streamlit/HTML components with controlled markup. | |
| | State models | `src/app_state.py`, `src/models.py` | Typed app context and runtime settings. | |
| | Tests | `tests/` | Data contracts, numeric analytics regressions, Streamlit smoke coverage, project hygiene, and release checks. | |
|
|
| ## Design choices |
|
|
| - **Separation of concerns:** data loading, analytics, charts, and UI pages are separated. |
| - **Thin entrypoint:** `app.py` only starts the application. |
| - **View composition:** the main controller inherits focused view mixins instead of growing a monolithic UI file. |
| - **Fail-fast data contract:** packaged tables are validated before the UI renders, including key presence, references, strict numeric conversion, metric ranges, relevance flags, and rank sanity checks. |
| - **Offline-first review:** the app reviews fixed evaluation artifacts and does not call live LLMs. |
|
|
| ## What this is not |
|
|
| This project is not a live RAG serving platform. It does not include online ingestion, vector indexing, authentication, scheduled jobs, alerting, or production incident automation. |
|
|