Add Command Center v2: DQ/RAG integration, S3 browser, Jupyter, GPU matrix.
Mirror mo/atc-GPU layout with config/, docs/, scripts/ for Gitea deploy.
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
"""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",
|
||||
],
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"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,
|
||||
}
|
||||
Reference in New Issue
Block a user