
# Dashboard Skórovacej Karty Súhlasu v Reálnom Čase Poháňaný Retrieval‑Augmented Generation

## Úvod  

Zabezpečovacie dotazníky, audítorské kontrolné zoznamy a regulačné hodnotenia generujú obrovské množstvo štruktúrovaných aj neštruktúrovaných dát. Tímy strávia nespočetné hodiny kopírovaním odpovedí, mapovaním dôkazov a ručným výpočtom skóre súhlasu. **Dashboard Skórovacej Karty Súhlasu v Reálnom Čase** odstraňuje túto nepríjemnosť kombináciou troch silných ingrediencií:

1. **Retrieval‑Augmented Generation (RAG)** – syntéza založená na LLM, ktorá pred vygenerovaním odpovede načíta najrelevantnejšie dôkazy zo znalostnej bázy.  
2. **Dynamický znalostný graf** – neustále aktualizovaný graf, ktorý spája politiky, kontroly, dôkazové artefakty a položky dotazníka.  
3. **Vizualizácie poháňané Mermaid** – živé, interaktívne diagramy, ktoré surové dáta grafu menia na intuitívne heatmapy, radarové grafy a tokové diagramy.

Výsledkom je jediné rozhranie, v ktorom môžu zainteresované strany okamžite vidieť **expozíciu riziku, pokrytie dôkazmi a dôveru v odpoveď** pre každú položku dotazníka naprieč všetkými regulačnými rámcami ([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), atď.).

V tomto článku preskúmame:

* End‑to‑end architektúru motora skórovacej karty.  
* Ako navrhnúť RAG prompt, ktorý odhalí najspoľahlivejšie dôkazy.  
* Budovanie pipeline pre znalostný graf, ktorý zostáva synchronizovaný so zdrojovými dokumentmi.  
* Renderovanie vizualizácií Mermaid, ktoré sa aktualizujú v reálnom čase.  
* Skalovacie úvahy, bezpečnostné najlepšie postupy a stručnú kontrolnú listinu pre nasadenie do produkcie.  

> **Tip na optimalizáciu generatívneho motora** – Udržujte svoje RAG prompt *krátke, bohaté o kontext a ukotvené* jedinečným identifikátorom dôkazu. To maximalizuje efektívnosť tokenov a zlepšuje vernosť odpovede.

---

## 1. Prehľad systému  

Nižšie je vysoká úroveň diagramu Mermaid, ktorý ilustruje tok dát od prichádzajúcich dotazníkov po živé UI skórovacej karty.

```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
```

**Kľúčové komponenty**

| Komponent | Účel |
|-----------|------|
| **Questionnaire Forms** | JSON alebo CSV súbory odovzdávané dodávateľmi, predajnými tímami alebo audítormi. |
| **Document Repository** | Centrálne úložisko pre politiky, manuály kontrol, audítorské správy a dôkazové PDF. |
| **Dynamic Knowledge Graph** | Neo4j (alebo podobný) graf modelujúci vzťahy *Question ↔ Control ↔ Evidence ↔ Regulation*. |
| **RAG Engine** | Retrieval vrstva (vektorizovaná DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Compliance Scorer** | Vypočítava číselné skóre súhlasu, interval dôvery a rizikovú klasifikáciu na úrovni otázky. |
| **Scorecard Dashboard** | React‑based UI, ktorá renderuje Mermaid diagramy a numerické widgety. |
| **Real‑Time Alerts** | Slack/Email webhook pre položky, ktoré klesnú pod politické prahy. |

---

## 2. Budovanie znalostného grafu  

### 2.1 Návrh schémy  

Kompaktná, ale výkonná schéma udržiava nízku latenciu dotazov. Nasledujúce typy uzlov/hran sú dostatočné pre väčšinu SaaS poskytovateľov:

```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 Pipeline ingestie  

1. **Parse** – Použite Document AI (OCR + NER) na extrahovanie názvov kontrol, referencií na dôkazy a mapovaní na regulácie.  
2. **Normalize** – Konvertujte každú entitu do kanonickej schémy vyššie; deduplikujte podľa hash.  
3. **Enrich** – Vytvorte embeddingy (napr. `text‑embedding‑3‑large`) pre textové polia každého uzla.  
4. **Load** – Upsertujte uzly a vzťahy do Neo4j; embeddingy uložte vo vektorovej DB (Pinecone, Weaviate).  

Ľahký Airflow DAG môže tento pipeline spúšťať každých **15 minút**, čím sa zabezpečí takmer reálna čerstvosť dát.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 Šablóna promptu  

Prompt by mal obsahovať tri sekcie:

1. **System instruction** – Definujte rolu modelu (Compliance Assistant).  
2. **Retrieved context** – Presné úryvky zo znalostného grafu (max 3 riadky).  
3. **User question** – Položku dotazníka, na ktorú sa má odpovedať.

```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 Retrieval stratégia  

- **Hybrid search**: Kombinujte BM25 kľúčové slovo s vektorovou podobnosťou, aby ste našli aj presný jazyk politiky, aj sémanticky súvisiace kontroly.  
- **Top‑k = 3**: Obmedzte na tri dôkazy, aby ste udržali nízke využitie tokenov a zlepšili sledovateľnosť.  
- **Score threshold**: Odstráňte úryvky s podobnosťou < 0.78, aby ste predišli šumu vo výstupe.

### 3.3 Výpočet dôvery  

Po vygenerovaní odpovede vypočítajte **skóre dôvery** takto:

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

Ak je `confidence < 0.65`, Scorer označí odpoveď na manuálnu revíziu.

---

## 4. Engine pre skórovanie súhlasu  

Scorer prevádza každú zodpovedanú otázku na číselnú hodnotu v **rozsahu 0‑100**:

| Metrika | Váha |
|--------|------|
| Kompletnosť odpovede (prítomnosť požadovaných polí) | 30 % |
| Pokrytie dôkazmi (počet unikátnych ID dôkazov) | 25 % |
| Dôvera (RAG confidence) | 30 % |
| Regulačný dopad (rámce s vysokým rizikom) | 15 % |

Konečné skóre je vážený súčet. Engine tiež určuje **rizikovú klasifikáciu**:

* **0‑49** → Červená (Kritická)  
* **50‑79** → Oranžová (Stredná)  
* **80‑100** → Zelená (Zlučná)

Tieto hodnotenia priamo napájajú vizuálny dashboard.

---

## 5. Živý dashboard skórovacej karty  

### 5.1 Mermaid heatmap  

Heatmapa poskytuje okamžitý prehľad pokrytia naprieč rámcami.

```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žíva **React‑Flow** na vloženie kódu Mermaid. Vždy, keď back‑end aktualizuje skóre, UI znovu vygeneruje reťazec Mermaid a prerenderuje diagram, čím poskytuje používateľom **nulovú prodlevu** pri sledovaní postavenia súhlasu.

### 5.2 Radarový graf pre rozdelenie rizika  

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

Radarový graf sa aktualizuje cez WebSocket kanál, ktorý posiela aktualizované numerické polia zo Scorera.

### 5.3 Interakčné vzory  

| Akcia | UI prvok | Backend volanie |
|-------|----------|-----------------|
| **Drill‑down** | Kliknutie na uzol heatmapy | Načítanie podrobného zoznamu dôkazov pre danú kontrolu |
| **Override** | Inline edit box | Write‑through do znalostného grafu s audit trailom |
| **Alert config** | Slider pre prahové hodnoty rizika | Aktualizácia pravidla upozornenia v micro‑service Alerts |

---

## 6. Bezpečnosť a riadenie  

1. **Zero‑knowledge proof pre verifikáciu dôkazov** – Uložte SHA‑256 hash každého dôkazového súboru; pri prístupe vypočítajte ZKP, ktorý preukáže integritu bez zverejnenia obsahu.  
2. **Role‑based access control (RBAC)** – Použite OPA politiky na obmedzenie, kto môže upravovať skóre a kto môže len prezerať.  
3. **Audit logging** – Každé RAG volanie, výpočet dôvery a aktualizácia skóre sa zapisuje do nemenného append‑only logu (napr. Amazon QLDB).  
4. **Data residency** – Vektorová DB a Neo4j môžu bežať v EU‑West‑1 pre GDPR súlad, zatiaľ čo LLM beží v regiónovo uzamknutej inštancii s privátnym endpointom.

---

## 7. Škálovanie motora  

| Výzva | Riešenie |
|-------|----------|
| **Vysoký objem dotazníkov** (10 k+ za deň) | Deploy RAG ako **serverless kontajner** za API‑gateway; auto‑scale na základe latencie požiadaviek. |
| **Churn embeddingov** (nové politiky každú hodinu) | Inkremetálne aktualizovanie embeddingov: prepočítajte vektory len pre zmenené dokumenty, ostatné držte v cache. |
| **Latencia dashboardu** | Push aktualizácie cez **Server‑Sent Events**; cache Mermaid reťazce podľa rámca pre rýchle opätovné použitie. |
| **Riadenie nákladov** | Používajte **kvantizované embeddingy** (8‑bit) a batchujte LLM volania (max 20 otázok), aby ste amortizovali náklady požiadavky. |

---

## 8. Kontrolný zoznam implementácie  

- [ ] Definovať schému znalostného grafu a ingestovať počiatočný súbor politík.  
- [ ] Nasadiť vektorovú databázu a pipeline hybridného vyhľadávania.  
- [ ] Vytvoriť RAG prompt šablónu a integrovať s vybraným LLM.  
- [ ] Implementovať vzorec výpočtu dôvery a prahové hodnoty.  
- [ ] Postaviť scorer súhlasu s váženými metrikami.  
- [ ] Navrhnúť React dashboard s Mermaid komponentmi (heatmap, radar, flow).  
- [ ] Konfigurovať WebSocket kanál pre živé aktualizácie.  
- [ ] Aplikovať RBAC a middleware pre audit logovanie.  
- [ ] Deploy na staging prostredie; spustiť load test na 5 k QPS.  
- [ ] Aktivovať webhook upozornení do Slack/Teams pre prekročenie prahov.  

---

## 9. Reálne dopady  

Pilotný projekt v stredne veľkej SaaS spoločnosti ukázal **70 % skrátenie času** stráveného odpovedaním na dotazníky dodávateľov. Živý dashboard zvýraznil iba tri vysokorizikové medzery, čo tímu zabezpečenia umožnilo efektívne alokovať zdroje. Navyše alertovanie založené na dôvere zabránilo potenciálnemu nesúhlasu tým, že odhalilo chýbajúci dôkaz pre [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) **48 hodín** pred plánovaným auditom.

---

## 10. Budúce vylepšenia  

1. **Federovaný RAG** – Načítavať dôkazy od partnerov bez pohybu dát, využitím zabezpečeného multi‑party výpočtu.  
2. **Generatívne UI** – Nechať LLM priamo generovať Mermaid diagramy z prirodzeného jazyka “ukáž mi heatmapu [ISO 27001](https://www.iso.org/standard/27001) pokrytia”.  
3. **Predictívne skórovanie** – Využiť historické skóre v časových sériách na predikciu nadchádzajúcich medzier v súhlase.  

---

## Súvisiace odkazy  

- [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/#/)