
# Nadzorna ploča real‑time kartice usklađenosti, potpomognuta generiranjem uz dohvat

## Uvod  

Sigurnosni upitnici, auditori i regulatorne procjene generiraju ogromnu količinu strukturiranih i nestrukturiranih podataka. Timovi provode bezbroj sati kopirajući odgovore, mapirajući dokaze i ručno izračunavajući ocjene usklađenosti. **Nadzorna ploča real‑time kartice usklađenosti** uklanja tu frustraciju kombinirajući tri moćna sastojka:

1. **Retrieval‑Augmented Generation (RAG)** – sinteza vođena LLM‑om koja prije generiranja odgovora povlači najrelevantnije dokaze iz baze znanja.  
2. **Dinamički graf znanja** – kontinuirano osvježavan graf koji povezuje politike, kontrole, artefakte dokaza i stavke upitnika.  
3. **Mermaid‑vođene vizualizacije** – živi, interaktivni dijagrami koji sirove podatke grafa pretvaraju u intuitivne heatmape, radar grafikone i tok‑dijagrame.

Rezultat je jedinstveni pregledni prikaz na kojem dionici mogu odmah vidjeti **izloženost riziku, pokrivenost dokazima i pouzdanost odgovora** za svaku stavku upitnika, kroz sve regulatorne okvire ( [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), itd.).  

U ovom članku istražit ćemo:

* Cijelu arhitekturu motora kartice.  
* Kako dizajnirati RAG promptove koji izlažu najpouzdanije dokaze.  
* Izgradnju pipelines‑a za graf znanja koji ostaje sinkroniziran s izvornim dokumentima.  
* Renderiranje Mermaid vizualizacija koje se ažuriraju u stvarnom vremenu.  
* Razmatranja skaliranja, sigurnosne najbolje prakse i kratki popis za produkcijski rollout.  

> **Savjet za optimizaciju generativnog motora** – Držite svoje RAG promptove *kratkima, bogatim kontekstom i ankriranim* jedinstvenim identifikatorom dokaza. Ovo maksimizira efikasnost tokena i poboljšava vjernost odgovora.

---

## 1. Pregled sustava  

Ispod je visokorazinski Mermaid dijagram koji ilustrira protok podataka od primljenih upitnika do žive UI‑a kartice.

```mermaid
graph LR
    subgraph "Input Layer"
        Q[ "Obrasci upitnika" ]
        D[ "Repozitorij dokumenata" ]
    end

    subgraph "Processing Core"
        KG[ "Dinamički graf znanja" ]
        RAG[ "RAG motor" ]
        Scorer[ "Ocjenjivač usklađenosti" ]
    end

    subgraph "Output Layer"
        UI[ "Nadzorna ploča kartice" ]
        Alerts[ "Upozorenja u stvarnom vremenu" ]
    end

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

**Ključne komponente**

| Komponenta | Svrha |
|-----------|-------|
| **Obrasci upitnika** | JSON ili CSV datoteke koje podnose prodavači, timovi ili revizori. |
| **Repozitorij dokumenata** | Centralno skladište politika, priručnika kontrola, izvješća revizija i PDF‑ova dokaza. |
| **Dinamički graf znanja** | Neo4j (ili sličan) graf koji modelira *Pitanje ↔ Kontrola ↔ Dokaz ↔ Regulativa* veze. |
| **RAG motor** | Sloj za dohvat (vektorska DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Ocjenjivač usklađenosti** | Izračunava numeričku ocjenu usklađenosti, interval pouzdanosti i ocjenu rizika po pitanju. |
| **Nadzorna ploča kartice** | React‑UI koji renderira Mermaid dijagrame i numeričke widgete. |
| **Upozorenja u stvarnom vremenu** | Slack/Email webhook za stavke koje padnu ispod definiranih pragova. |

---

## 2. Izgradnja grafa znanja  

### 2.1 Dizajn sheme  

Kompaktna, ali izrazita shema smanjuje latenciju upita. Sljedeći tipovi čvorova i veza dovoljni su za većinu SaaS dobavljača:

```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 Pipelines za ingest  

1. **Parsiranje** – Koristite Document AI (OCR + NER) za izdvajanje naslova kontrola, referenci dokaza i mapiranja regulatora.  
2. **Normalizacija** – Svaki entitet pretvorite u kanoničku shemu iznad; deduplicirajte po hashu.  
3. **Obogaćivanje** – Popunite embeddinge (npr. `text‑embedding‑3‑large`) za sva tekstualna polja čvora.  
4. **Učitavanje** – Up‑sertajte čvorove i veze u Neo4j; embeddinge pohranite u vektorsku DB (Pinecone, Weaviate).  

Lagani Airflow DAG može zakazati pipeline svakih **15 minuta**, jamčeći blizu‑real‑time svježinu.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 Predložak prompta  

Prompt mora sadržavati tri sekcije:

1. **Instrukcija sustava** – Definirajte ulogu modela (Asistent za usklađenost).  
2. **Dohvaćeni kontekst** – Točni isječci iz grafa znanja (maks. 3 reda).  
3. **Korisničko pitanje** – Stavka upitnika na koju se odgovara.

```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 Strategija dohvaćanja  

- **Hibridna pretraga**: Kombinirajte BM25 pretragu po ključnim riječima s vektorskom sličnosti kako biste izložili i točan jezik politike i semantički povezane kontrole.  
- **Top‑k = 3**: Ograničite na tri dokaza kako biste smanjili potrošnju tokena i poboljšali pratljivost.  
- **Prag sličnosti**: Odbacite isječke sličnosti < 0.78 kako biste izbjegli šum.

### 3.3 Ocjena pouzdanosti  

Nakon generiranja, izračunajte **ocjenu pouzdanosti** pomoću:

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

Ako je `confidence < 0.65`, Ocjenjivač označava odgovor za ljudsku reviziju.

---

## 4. Motor ocjenjivanja usklađenosti  

Ocjenjivač pretvara svaki odgovor u numeričku vrijednost na **skali 0‑100**:

| Metrička komponenta | Težina |
|---------------------|--------|
| Potpunost odgovora (prisustvo traženih polja) | 30 % |
| Pokrivenost dokazom (broj jedinstvenih ID‑ova dokaza) | 25 % |
| Pouzdanost (RAG confidence) | 30 % |
| Regulativni utjecaj (visokorizični okviri) | 15 % |

Konačna ocjena je ponderirani zbroj. Također se izračunava **ocjena rizika**:

* **0‑49** → Crvena (Kritična)  
* **50‑79** → Narančasta (Umjerena)  
* **80‑100** → Zelena (Usklađena)

Te ocjene izravno napajaju vizualnu nadzornu ploču.

---

## 5. Živa nadzorna ploča kartice  

### 5.1 Mermaid heatmap  

Heatmap pruža trenutni vizual pokrivenosti po okvirima.

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

Nadzorna ploča koristi **React‑Flow** za ugradnju Mermaid koda. Svaki put kad back‑end ažurira ocjenu, UI regenerira Mermaid string i ponovno renderira dijagram, pružajući korisnicima **potpuno bezkašnjenje** pregled usklađenosti.

### 5.2 Radar grafikon za raspodjelu rizika  

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

Radar grafikon se osvježava putem WebSocket kanala koji „guraju“ ažurirane numeričke nizove iz Ocjenjivača.

### 5.3 Obrasci interakcije  

| Akcija | UI element | Back‑end poziv |
|--------|------------|----------------|
| **Detaljan uvid** | Klik na čvor heatmapa | Dohvati detaljan popis dokaza za tu kontrolu |
| **Ručno ažuriranje** | Inline polje za uređivanje | Up‑write u graf znanja s audit trailom |
| **Konfiguracija upozorenja** | Slider za prag rizika | Ažuriraj pravilo upozorenja u micro‑servisu Alerts |

---

## 6. Sigurnost i upravljanje  

1. **Zero‑knowledge proof za provjeru dokaza** – Pohranite SHA‑256 hash svakog dokaznog dokumenta; generirajte ZKP prilikom pristupa kako biste dokazali integritet bez otkrivanja sadržaja.  
2. **Upravljanje pristupom porolama (RBAC)** – Koristite OPA politike za ograničavanje tko može mijenjati ocjene, a tko samo pregledava.  
3. **Audit logovi** – Svaki RAG poziv, izračun pouzdanosti i ažuriranje ocjene zapisuje se u nepromjenjivi log (npr. Amazon QLDB).  
4. **Rezidencija podataka** – Vektorska DB i Neo4j mogu se postaviti u EU‑West‑1 za GDPR usklađenost, dok LLM radi u privatnom, regijski zaključanom endpointu.

---

## 7. Skaliranje motora  

| Izazov | Rješenje |
|--------|----------|
| **Visoki volumen upitnika** (10 k+ dnevno) | Deploy RAG kao **serverless kontejner** iza API‑gateway; auto‑skaliranje po latenciji zahtjeva. |
| **Promjena embeddinga** (nove politike svakih sati) | Inkrementalno ažuriranje embeddinga: izračunajte vektore samo za promijenjene dokumente, ostatak držite u cacheu. |
| **Latencija nadzorne ploče** | Push ažuriranja putem **Server‑Sent Events**; cacheirajte Mermaid stringove po okviru za bržu ponovnu upotrebu. |
| **Upravljanje troškovima** | Koristite **kvantizirane embeddinge** (8‑bit) i batchirajte LLM pozive (maks. 20 pitanja) kako biste amortizirali trošak zahtjeva. |

---

## 8. Popis za implementaciju  

- [ ] Definirajte shemu grafa znanja i ingestirajte početni corpus politika.  
- [ ] Postavite vektorsku bazu i hibridni pretraživač.  
- [ ] Kreirajte RAG predložak prompta i integrirajte s odabranim LLM‑om.  
- [ ] Implementirajte formulu za izračun pouzdanosti i pragove.  
- [ ] Izgradite Ocjenjivač usklađenosti s ponderiranim metrima.  
- [ ] Dizajnirajte React UI s Mermaid komponentama (heatmap, radar, flow).  
- [ ] Konfigurirajte WebSocket kanal za real‑time push.  
- [ ] Primijenite RBAC i middleware za audit logove.  
- [ ] Deploy u staging okruženje; izvodite load test za 5 k QPS.  
- [ ] Aktivirajte webhook za Slack/Teams upozorenja pri kršenju pragova.  

---

## 9. Stvarni poslovni učinak  

Pilot projekt u srednje velikoj SaaS tvrtki pokazao je **70 % smanjenje vremena** provedenog na odgovaranju na upitnike dobavljača. Živa kartica istaknula je samo tri visoko‑rizična nedostatka, omogućavajući sigurnosnom timu da usmjeri resurse na ključna područja. Dodatno, mehanizam pouzdanosti upozorio je na nedostajući [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) dokaz **48 sati** prije zakazanog audita, sprječavajući potencijalni nesklad.

---

## 10. Buduća poboljšanja  

1. **Federativni RAG** – Dohvaćanje dokaza iz partnerskih organizacija bez fizičkog premještanja podataka, koristeći sigurno višestruko izračunavanje.  
2. **Generativni UI** – Dozvoliti LLM‑u da izravno generira Mermaid dijagrame iz prirodnog jezika: “prikaži heatmap pokrivenosti za ISO 27001”.  
3. **Prediktivno ocjenjivanje** – Iskoristiti povijesne ocjene u vremenskim serijama za predviđanje nadolazećih praznina u usklađenosti.  

---

## Vidi također  

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