
# Dashboard v reálném čase pro výkaz souladu poháněný Retrieval‑Augmented Generation

## Úvod  

Bezpečnostní dotazníky, kontrolní seznamy auditů a regulatorní hodnocení generují obrovské množství strukturovaných i nestrukturovaných dat. Týmy tráví nespočet hodin kopírováním odpovědí, mapováním důkazů a manuálním výpočtem skóre souladu. **Dashboard v reálném čase pro výkaz souladu** odstraňuje tuto tření tím, že spojuje tři silné složky:

1. **Retrieval‑Augmented Generation (RAG)** – syntéza řízená LLM, která před generováním odpovědi načte nejrelevantnější důkazy ze znalostní báze.  
2. **Dynamický znalostní graf** – neustále aktualizovaný graf, který propojuje politiky, kontroly, důkazní artefakty a položky dotazníků.  
3. **Vizualizace řízené Mermaid** – živé, interaktivní diagramy, které převádějí surová data grafu na intuitivní heatmapy, radarové grafy a tokové diagramy.

Výsledkem je jediné rozhraní, kde zainteresované strany mohou okamžitě vidět **rizikovou expozici, pokrytí důkazy a důvěru odpovědí** pro každou položku dotazníku napříč všemi regulatorními rámci ([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), atd.).  

V tomto článku prozkoumáme:

* End‑to‑end architekturu výkonného enginu pro výkaz.  
* Jak navrhnout RAG prompty, které zviditelní nejspolehlivější důkazy.  
* Vytvoření pipeline pro znalostní graf, který zůstává synchronizován se zdrojovými dokumenty.  
* Vykreslování Mermaid vizualizací, které se aktualizují v reálném čase.  
* Škálovací úvahy, bezpečnostní osvědčené postupy a stručný kontrolní seznam pro nasazení do produkce.  

> **Tip pro optimalizaci generativního enginu** – Udržujte své RAG prompty *krátké, bohaté o kontext a ukotvené* unikátním identifikátorem důkazu. To maximalizuje efektivitu tokenů a zvyšuje věrnost odpovědí.

---

## 1. Přehled systému  

Níže je vysokou úrovní diagram Mermaid, který ilustruje datový tok od přicházejících dotazníků k živému UI výkazu.

```mermaid
graph LR
    subgraph "Input Layer"
        Q[ "Questionnaire Forms" ]
        D[ "Document Repository" ]
    end

    subgraph "Processing Core"
        KG[ "Dynamic Knowledge Graph" ]
        RAG[ "RAG Engine" ]
        Scorer[ "Compliance Scorer" ]
    end

    subgraph "Output Layer"
        UI[ "Scorecard Dashboard" ]
        Alerts[ "Real‑Time Alerts" ]
    end

    Q -->|Ingest| KG
    D -->|Parse & Index| KG
    KG -->|Context Retrieval| RAG
    RAG -->|Generated Answers| Scorer
    Scorer -->|Score & Confidence| UI
    Scorer -->|Threshold Breach| Alerts
```

**Klíčové komponenty**

| Komponenta | Účel |
|-----------|---------|
| **Questionnaire Forms** | JSON nebo CSV soubory odeslané dodavateli, obchodními týmy nebo auditory. |
| **Document Repository** | Centrální úložiště pro politiky, manuály kontrol, auditní zprávy a důkazní PDF. |
| **Dynamic Knowledge Graph** | Neo4j (nebo podobný) graf modelující vztahy *Question ↔ Control ↔ Evidence ↔ Regulation*. |
| **RAG Engine** | Vrstva pro retrieval (vektorová DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Compliance Scorer** | Vypočítává číselné skóre souladu, interval spolehlivosti a rizikové hodnocení pro každou otázku. |
| **Scorecard Dashboard** | React‑based UI, který vykresluje Mermaid diagramy a číselné widgety. |
| **Real‑Time Alerts** | Slack/Email webhook pro položky, které spadnou pod politické prahy. |

---

## 2. Vytváření znalostního grafu  

### 2.1 Návrh schématu  

Kompaktní, ale výkonné schéma snižuje latenci dotazů. Následující typy uzlů/hrany jsou dostačující pro většinu SaaS poskytovatelů:

```mermaid
classDiagram
    class Question {
        <<entity>>
        string id
        string text
        string framework
    }
    class Control {
        <<entity>>
        string id
        string description
        string owner
    }
    class Evidence {
        <<entity>>
        string id
        string type
        string location
        string hash
    }
    class Regulation {
        <<entity>>
        string id
        string name
        string version
    }
    Question --> "requires" Control
    Control --> "supported_by" Evidence
    Control --> "maps_to" Regulation
```

### 2.2 Ingestní pipeline  

1. **Parse** – Použijte Document AI (OCR + NER) k extrakci názvů kontrol, referencí na důkazy a mapování regulací.  
2. **Normalize** – Převést každou entitu na kanonické schéma výše; deduplikovat dle hash.  
3. **Enrich** – Vygenerovat embeddingy (např. `text‑embedding‑3‑large`) pro všechny textové pole uzlů.  
4. **Load** – Upsertovat uzly a vztahy do Neo4j; embeddingy uložit do vektorové DB (Pinecone, Weaviate).  

Lehký Airflow DAG může plánovat pipeline každých **15 minut**, což zajišťuje téměř reálnou čerstvost.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 Šablona promptu  

Prompt musí obsahovat tři sekce:

1. **System instruction** – Definujte roli modelu (Compliance Assistant).  
2. **Retrieved context** – Přesné úryvky ze znalostního grafu (max 3 řádky).  
3. **User question** – Položku dotazníku, na kterou se má odpovědět.

```text
You are a Compliance Assistant tasked with providing concise, evidence‑backed answers for security questionnaires.

Context:
{retrieved_snippets}
--- 
Question: {question_text}
Provide a short answer (<120 words). Cite the evidence IDs in brackets, e.g., [EVID‑1234].
If confidence is low, state the uncertainty and suggest a follow‑up action.
```

### 3.2 Strategie retrieval  

- **Hybridní vyhledávání**: Kombinujte BM25 keyword match s vektorovou podobností, aby se zobrazovala jak přesná politika, tak semanticky související kontroly.  
- **Top‑k = 3**: Omezte na tři kusy důkazů, aby se snížila spotřeba tokenů a zvýšila sledovatelnost.  
- **Prahová hodnota skóre**: Odstraňte úryvky s podobností < 0.78, aby se předešlo šumu ve výstupech.

### 3.3 Výpočet spolehlivosti  

Po generování vypočítejte **confidence score** podle:

```
confidence = (avg(retrieval_score) * 0.6) + (LLM token log‑probability * 0.4)
```

Pokud `confidence < 0.65`, Scorer označí odpověď k lidskému review.

---

## 4. Engine pro výpočet souladu  

Scorer převádí každou zodpovězenou otázku na číselnou hodnotu v **rozsahu 0‑100**:

| Metrika | Váha |
|--------|--------|
| Úplnost odpovědi (přítomnost požadovaných polí) | 30 % |
| Pokrytí důkazy (počet unikátních ID důkazů) | 25 % |
| Spolehlivost (RAG confidence) | 30 % |
| Regulační dopad (vysoce rizikové rámce) | 15 % |

Konečné skóre je vážený součet. Dále engine odvozuje **rizikové ratingy**:

* **0‑49** → Červená (Kritické)  
* **50‑79** → Oranžová (Střední)  
* **80‑100** → Zelená (Kompliantní)

Tyto ratingy napřímo napájejí vizuální dashboard.

---

## 5. Živý dashboard výkazu  

### 5.1 Mermaid heatmap  

Heatmapa poskytuje okamžitý vizuální přehled pokrytí napříč rámci.

```mermaid
graph TB
    subgraph "SOC 2"
        SOC1["Trust Services: Security"]
        SOC2["Trust Services: Availability"]
        SOC3["Trust Services: Confidentiality"]
    end
    subgraph "ISO 27001"
        ISO1["A.5 Information Security Policies"]
        ISO2["A.6 Organization of Information Security"]
        ISO3["A.7 Human Resource Security"]
    end
    SOC1 -- 85% --> ISO1
    SOC2 -- 70% --> ISO2
    SOC3 -- 60% --> ISO3
    classDef green fill:#c8e6c9,stroke:#388e3c,stroke-width:2px;
    classDef amber fill:#fff9c4,stroke:#f57f17,stroke-width:2px;
    classDef red fill:#ffcdd2,stroke:#d32f2f,stroke-width:2px;
    class SOC1 green;
    class SOC2 amber;
    class SOC3 red;
```

Dashboard používá **React‑Flow** k vložení Mermaid kódu. Pokaždé, když back‑end aktualizuje skóre, UI znovu vygeneruje Mermaid řetězec a přereenderuje diagram, čímž uživatelům poskytne **nulové zpoždění** při prohlížení stavu souladu.

### 5.2 Radarový graf pro rozložení rizik  

```mermaid
radar
    title Risk Distribution
    categories Security Availability Confidentiality Integrity Privacy
    A: 80, 70, 55, 90, 60
```

Radarový graf je aktualizován skrze WebSocket, který posílá aktualizované číselné pole ze Scoreru.

### 5.3 Interakční vzory  

| Akce | UI prvek | Backend volání |
|--------|------------|--------------|
| **Detailní pohled** | Kliknutí na uzel heatmapy | Načíst podrobný seznam důkazů pro danou kontrolu |
| **Přepsání** | Inline editační pole | Zápis do znalostního grafu s auditním trailem |
| **Konfigurace alarmu** | Posuvník pro prahovou hodnotu rizika | Aktualizovat pravidlo alarmování v micro‑servisu Alerts |

---

## 6. Bezpečnost a správa  

1. **Zero‑knowledge proof pro ověření důkazů** – Uložte SHA‑256 hash každého důkazního souboru; při přístupu vytvořte ZKP, který dokáže integritu bez odhalení obsahu.  
2. **Role‑based access control (RBAC)** – Použijte OPA politiky k omezení, kdo může editovat skóre a kdo jen zobrazovat.  
3. **Auditní logging** – Každé volání RAG, výpočet spolehlivosti a aktualizaci skóre zapisujte do neměnného append‑only logu (např. Amazon QLDB).  
4. **Residenca dat** – Vektorová DB a Neo4j lze nasadit v EU‑West‑1 pro GDPR compliance, zatímco LLM běží v regionově uzamčené instanci s privátním endpointem.

---

## 7. Škálování enginu  

| Výzva | Řešení |
|-----------|----------|
| **Vysoký objem dotazníků** (10 k+ denně) | Deployovat RAG jako **serverless kontejner** za API‑gateway; auto‑scale na základě latence požadavků. |
| **Častá změna embeddingů** (nové politiky každou hodinu) | Inkrementální aktualizace embeddingů: přepočítat vektory jen u změněných dokumentů, zbytek cacheovat. |
| **Latence dashboardu** | Push aktualizace přes **Server‑Sent Events**; cache Mermaid řetězce per framework pro rychlé opětovné použití. |
| **Řízení nákladů** | Používat **kvantované embeddingy** (8‑bit) a batchovat LLM volání (max 20 otázek) pro amortizaci nákladů. |

---

## 8. Kontrolní seznam implementace  

- [ ] Definovat schéma znalostního grafu a ingestovat počáteční korpus politik.  
- [ ] Nastavit vektorovou databázi a hybridní vyhledávací pipeline.  
- [ ] Vytvořit RAG prompt šablonu a integrovat s vybraným LLM.  
- [ ] Implementovat výpočet spolehlivosti a prahové hodnoty.  
- [ ] Postavit Compliance Scorer s váženými metrikami.  
- [ ] Navrhnout React dashboard s Mermaid komponentami (heatmapa, radar, tok).  
- [ ] Konfigurovat WebSocket kanál pro živé aktualizace.  
- [ ] Aplikovat RBAC a middleware pro auditní logy.  
- [ ] Nasadit do staging prostředí; provést load test na 5 k QPS.  
- [ ] Povolit webhook alertů do Slack/Teams pro porušení prahů.  

---

## 9. Reálný dopad  

Pilotní projekt u středně velké SaaS firmy ukázal **70 % zkrácení času** stráveného odpovídáním na dotazníky dodavatelů. Živý výkaz odhalil pouze tři vysokorizikové mezery, což umožnilo bezpečnostnímu týmu efektivněji alokovat zdroje. Navíc alerty založené na spolehlivosti zabránily potenciálnímu porušení souladu tím, že odhalily chybějící důkaz [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) **48 hodin** před plánovaným auditem.

---

## 10. Budoucí vylepšení  

1. **Federovaný RAG** – Načítat důkazy od partnerů bez přesunu dat, pomocí secure multi‑party computation.  
2. **Generativní UI** – Nechat LLM přímo generovat Mermaid diagramy z přirozeného jazyka “zobraz heatmapu pokrytí [ISO 27001](https://www.iso.org/standard/27001)”.  
3. **Prediktivní skórování** – Využít historická skóre v časové řadě pro prognózu nadcházejících mezer v souladu.  

---

## Další zdroje  

- [Retrieval‑Augmented Generation: A Practical Guide – LangChain Docs](https://python.langchain.com/docs/use_cases/retrieval_qa)  
- [Mermaid Live Editor & Documentation](https://mermaid-js.github.io/mermaid/#/)