"""Pre-built modern HTML presentation templates — English."""
from __future__ import annotations
from typing import Any
MODERN_DECKS: dict[str, dict[str, Any]] = {
"data-maturity": {
"id": "data-maturity",
"title": "Data Maturity Assessment",
"subtitle": "Dell ATC — Customer Data Onboarding Framework",
"slides": [
{
"id": "dm-1", "kind": "hero",
"title": "Data Maturity Assessment",
"subtitle": "From raw data to trusted decisions",
"bullets": [
"6 dimensions: Completeness, Consistency, Validity, Uniqueness, Timeliness, Accuracy",
"Automated analysis with Docling, Great Expectations & Soda Core",
"Full report with priorities and remediation roadmap",
],
},
{
"id": "dm-2", "kind": "narrative",
"title": "Why maturity?",
"subtitle": "Customers hand over data — we show where it stands",
"bullets": [
"73% of analytics projects fail due to data quality (Gartner)",
"Without a baseline there is no measurable improvement",
"DQ tools + document parsing = complete picture",
"Report ready for boardroom & audit",
],
},
{
"id": "dm-3", "kind": "zone",
"title": "Our toolchain",
"subtitle": "Integrated on the ATC platform",
"bullets": [
"Docling — PDF, PPTX, DOCX, XLSX → structured data",
"Great Expectations — Python expectations & data contracts",
"Soda Core — YAML checks, freshness, anomaly monitoring",
"DQ API — maturity score + HTML report",
],
},
{
"id": "dm-4", "kind": "cta",
"title": "Next step",
"subtitle": "Upload customer data in Data Quality tab",
"bullets": [
"Upload CSV, Excel, PDF or database export",
"Receive maturity score (0–100) per dimension",
"Action list: what to fix first",
"Reports are stored — no need to re-upload",
],
},
],
},
"atc-platform": {
"id": "atc-platform",
"title": "ATC Data Platform",
"subtitle": "Modern lakehouse on Dell infrastructure",
"slides": [
{
"id": "atc-1", "kind": "hero",
"title": "ATC Data & AI Platform",
"subtitle": "CDC → Kafka → Spark → Iceberg → Trino",
"bullets": [
"Live pipeline: PostgreSQL, MySQL, MongoDB, Cassandra",
"ObjectScale S3 + 9-node Hadoop cluster",
"GPU Lab: Llama 3 70B for autonomous agents",
],
},
{
"id": "atc-2", "kind": "topology",
"title": "End-to-end flow",
"subtitle": "Sources → Ingestion → Compute → Storage → Consumers",
"bullets": [
"Airflow orchestrates daily data generation",
"Debezium CDC → Kafka → Spark → Iceberg",
"Trino federated queries + Superset BI",
"GenAI agents with full cluster context",
],
},
],
},
"stack-architecture": {
"id": "stack-architecture",
"title": "ATC Stack Architecture",
"subtitle": "How the Command Center, DQ, RAG & Lakehouse fit together",
"slides": [
{
"id": "arch-1", "kind": "hero",
"title": "ATC Intelligent Data Platform",
"subtitle": "One dashboard — ingest, assess, chat, present",
"bullets": [
"Command Center at http://10.0.21.33 — single entry point",
"Upload once → stored permanently in ChromaDB + file registry",
"Ask questions anytime via Knowledge Chat (RAG + LangChain)",
"Present architecture & maturity to customers live",
],
},
{
"id": "arch-2", "kind": "architecture", "animation": "full-stack",
"title": "Full Stack Overview",
"subtitle": "All services on VM304 (Command Center)",
"bullets": [
"Caddy routes /api, /dq, /rag to backend services",
"React UI — Data Platform, Presentation, Data Quality, Knowledge Chat",
"Docling on port 5001 for document parsing UI + API",
"Postgres + Redis for agents; ChromaDB for vectors",
"Elasticsearch + Kibana on atc-elastic01 (10.0.21.46)",
],
},
{
"id": "arch-3", "kind": "architecture", "animation": "lakehouse",
"title": "Lakehouse Pipeline",
"subtitle": "Operational data → analytics-ready tables",
"bullets": [
"Sources on DB Vault (10.0.21.51): PG, MySQL, Mongo, Cassandra, Neo4j",
"Debezium captures changes → Kafka topics",
"Spark transforms → Iceberg tables on ObjectScale",
"Trino SQL + Superset dashboards for consumers",
],
},
{
"id": "arch-4", "kind": "architecture", "animation": "dq-flow",
"title": "Data Quality & Maturity",
"subtitle": "Prove data readiness before AI/ML projects",
"bullets": [
"Upload customer file → parsed by Docling if PDF/Office",
"6 maturity dimensions scored 0–100 with findings",
"GE + Soda checks per column — expandable in UI",
"HTML report + image gallery — stored in /data/reports",
],
},
{
"id": "arch-5", "kind": "architecture", "animation": "rag-flow",
"title": "Knowledge Chat (RAG)",
"subtitle": "Upload once — query forever",
"bullets": [
"Document saved to disk + indexed in ChromaDB (persistent volume)",
"Duplicate uploads skipped automatically (SHA-256 hash)",
"LangChain retrieves top-k chunks → Llama 70B on GPU Lab",
"Answers include source filename + chunk preview",
],
},
{
"id": "arch-6", "kind": "narrative",
"title": "AI Agents Layer",
"subtitle": "Autonomous ops with full lab context",
"bullets": [
"Supervisor + field operators on Command Center",
"Each agent sees live workload, GPU, databases, topology",
"LLM: Llama 3 70B GPTQ via vLLM (10.0.20.106:8001)",
"Approval workflow for sensitive operations",
],
},
{
"id": "arch-7", "kind": "zone",
"title": "Infrastructure Map",
"subtitle": "Dell ATC cluster — key IPs",
"bullets": [
"Command Center VM304: 10.0.21.33 (this dashboard)",
"GPU Lab VM303: 10.0.20.106 — 7× V100, vLLM, model manager",
"DB Vault: 10.0.21.51 · Lakehouse: 10.0.21.50 · Elastic: 10.0.21.46",
"Docling UI: http://10.0.21.33:5001/ui/",
],
},
{
"id": "arch-8", "kind": "cta",
"title": "Customer Demo Flow",
"subtitle": "Recommended narrative for presentations",
"bullets": [
"1. Show live Data Platform topology & agent fleet",
"2. Upload customer sample → Data Quality maturity report",
"3. Same file already in Knowledge Chat — ask questions live",
"4. Export this architecture deck as HTML for customer handout",
],
},
],
},
}
def list_static_decks() -> list[dict[str, Any]]:
return [
{"id": k, "title": v["title"], "subtitle": v["subtitle"], "slide_count": len(v["slides"]), "source": "builtin"}
for k, v in MODERN_DECKS.items()
]
def get_static_deck(deck_id: str) -> dict[str, Any] | None:
deck = MODERN_DECKS.get(deck_id)
if not deck:
return None
return {
"ts": None,
"title": deck["title"],
"subtitle": deck["subtitle"],
"slides": deck["slides"],
"slide_count": len(deck["slides"]),
"source": "builtin",
"id": deck_id,
}