
# Reaalajas ühilduvuse skoorikaardi armatuurlaud, mida toetab Retrieval‑Augmented Generation

## Sissejuhatus  

Turvasurveküsitlused, auditide kontrollnimekirjad ja regulatiivsed hindamised toodavad suurt hulka struktureeritud ja struktureerimata andmeid. Meeskonnad veedavad lugematuid tunde vastuste kopeerimisel, tõendusmaterjalide kaardistamisel ja ühilduvuse skooride käsitsi arvutamisel. **Reaalajas ühilduvuse skoorikaardi armatuurlaud** eemaldab selle takistuse, ühendades kolm võimsat komponenti:

1. **Retrieval‑Augmented Generation (RAG)** – LLM‑põhine süntees, mis toob kõige asjakohasemat tõendusmaterjali teadmistebaasist enne vastuse genereerimist.  
2. **Dünaamiline teadmistegraafik** – Jätkuvalt värskendatud graafik, mis ühendab poliitikad, kontrollid, tõendusmaterjalid ja küsitluse elemendid.  
3. **Mermaid‑põhised visualiseeringud** – Reaalajas interaktiivsed diagrammid, mis muudavad toores graafiandmed intuitiivseteks soojuskaartideks, radardiagrammideks ja voo diagrammideks.

Tulemuseks on üks glasmudel, kus sidusrühmad saavad koheselt vaadata **riskide kokkupuudet, tõendusmaterjali katet ja vastuse kindlust** iga küsitluse elemendi kohta, kõigi regulatiivsete raamistikude ( [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), jne) lõikes.  

Selles artiklis käsitleme:

* Skoorikaardi mootori **lõpust‑lõpuni arhitektuuri**.  
* Kuidas kujundada RAG‑käske, mis esile toovad kõige usaldusväärsema tõendusmaterjali.  
* Teadmiste‑graafi torujuhe loomist, mis püsib allikadokumentidega sünkroonis.  
* Mermaid‑visualiseeringute renderdamist, mis värskendub reaalajas.  
* Skaleerimiskaalutlusi, turvalisuse parimaid praktikaid ja lühikest kontrollnimekirja tootmisvalmiks rolliks.  

> **Generatiivse mootori optimeerimise näpunäide** – Hoia oma RAG‑käsud *lühikesed, kontekstirikkad ja unikaalse tõendus-ID‑ga ankurdatud*. See maksimeerib token‑efektiivsust ja parandab vastuse täpsust.

---

## 1. Süsteemi ülevaade  

Allpool on kõrgtasemeline Mermaid‑diagramm, mis illustreerib andmevoogu sisendküsitlustest reaalajas skoorikaardi UI‑ni.

```mermaid
graph LR
    subgraph "Sisendkiht"
        Q[ "Küsitluse vormid" ]
        D[ "Dokumendireposiit" ]
    end

    subgraph "Töötlemiskern"
        KG[ "Dünaamiline teadmistegraafik" ]
        RAG[ "RAG mootor" ]
        Scorer[ "Ühilduvuse skoorija" ]
    end

    subgraph "Väljundkiht"
        UI[ "Skoorikaardi armatuurlaud" ]
        Alerts[ "Reaalajas teavitused" ]
    end

    Q -->|Sissetõmbamine| KG
    D -->|Parsimine & indekseerimine| KG
    KG -->|Konteksti toomine| RAG
    RAG -->|Genereeritud vastused| Scorer
    Scorer -->|Skoor ja kindlus| UI
    Scorer -->|Läve ületamine| Alerts
```

**Olulised komponendid**

| Komponent | Eesmärk |
|-----------|---------|
| **Küsitluse vormid** | JSON‑ või CSV‑failid, mida esitavad müügi‑, partner‑ või auditijuhid. |
| **Dokumendireposiit** | Keskne salvestus kohtadele, kontrolli­käsitluste, auditiaruannete ja tõendus‑PDF‑ide jaoks. |
| **Dünaamiline teadmistegraafik** | Neo4j (või sarnane) graafik, mis modelleerib *Küsimus ↔ Kontroll ↔ Tõendus ↔ Regulatsioon* seoseid. |
| **RAG mootor** | Toetuskiht (vektori‑DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Ühilduvuse skoorija** | Arvutab iga küsimuse jaoks numbrilise ühilduvuse skoori, kindlusintervalli ja riskiklassifikatsiooni. |
| **Skoorikaardi armatuurlaud** | React‑põhine UI, mis renderdab Mermaid‑diagramme ja numbrilisi vidinaid. |
| **Reaalajas teavitused** | Slack/Email webhook, mis saadab teavitusi küsimuste kohta, mis langevad poliitika läve alla. |

---

## 2. Teadmistegraafi loomine  

### 2.1 skeemi kujundus  

Kompaktne, kuid väljendusrikas skeem hoiab päringu latentsust madalal. Järgnevad sõlme‑/serva‑tüübid on piisavad enamikule SaaS‑pakkujatele:

```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 sissevõtmisandmete torujuhe  

1. **Parsimine** – Kasuta Document AI (OCR + NER), et ekstraheerida kontrolli pealkirjad, tõendusviited ja regulatsiooni seosed.  
2. **Normaliseerimine** – Töötle iga üksus ülaltoodud kanoonilisse skeemi; eemalda duplikaadid hash‑i alusel.  
3. **Rikastamine** – Loo iga sõlme tekstiväljadele põhilised embeddingud (nt `text‑embedding‑3‑large`).  
4. **Laadimine** – Upserti sõlmed ja seosed Neo4j‑andmebaasi; salvesta embeddingud vektori‑DB‑s (Pinecone, Weaviate).  

Kergekaaluline Airflow‑DAG saab torujuhet ajastada iga **15 minuti** järel, tagades peaaegu reaalajas värskendused.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 Käsu mall  

Käsk peab sisaldama kolme sektsiooni:

1. **Süsteemi juhend** – Määra mudeli roll (Ühilduvuse assistent).  
2. **Toetav kontekst** – Täpsed lõigud teadmistegraafikust (maks. 3 rida).  
3. **Kasutaja küsimus** – Küsitluse element, millele vastata.

```text
Sa oled Ühilduvuse assistent, kelle ülesandeks on anda lühikesed, tõendusmaterjaliga toetatud vastused turvasurveküsitluste jaoks.

Kontekst:
{retrieved_snippets}
--- 
Küsimus: {question_text}
Anna lühike vastus (<120 sõna). Viita tõendus‑ID‑dele nurksulude sees, nt [EVID‑1234].
Kui kindlus on madal, kirjuta ebaselgus ja soovita järgmist tegevust.
```

### 3.2 Toetlusstrateegia  

- **Hübriidotsing**: Kombineeri BM25 märksõna sobivus vektori‑sarnasusega, et tuua välja nii täpne poliitikatekst kui ka semantiliselt sarnased kontrollid.  
- **Top‑k = 3**: Piira 3‑ks tõendusmaterjaliks, et hoida token‑kulu madal ja parandada jälgitavust.  
- **Sarnasuse lävi**: Eira lõike, mille sarnasus on alla 0,78, et vältida müravastuseid.

### 3.3 Kindluse hindamine  

Pärast genereerimist arvuta **kindlus‑skoor** valemiga:

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

Kui `confidence < 0.65`, märgib Skoorija vastuse inimkontrolli vajavaks.

---

## 4. Ühilduvuse skoorimismootor  

Skoorija muudab iga vastatud küsimuse numbriliseks väärtuseks **0‑100‑skaalal**:

| Metrik | Kaal |
|--------|------|
| Vastuse täielikkus (nõutavate väljade olemasolu) | 30 % |
| Tõendusmaterjali katvus (unikaalsete tõendus‑ID‑de arv) | 25 % |
| Kindlus (RAG‑kindlus) | 30 % |
| Regulatiivne mõju (kõrge‑riskiga raamistikud) | 15 % |

Lõplik skoor on kaalutud summa. Mootor tuvastab ka **riskiklassifikatsiooni**:

* **0‑49 → Punane (Kriitiline)**  
* **50‑79 → Kollane (Mõõdukas)**  
* **80‑100 → Roheline (Ühilduv)**  

Need hinnangud sisestatakse otse visualiseerimisarmatuurlauale.

---

## 5. Reaalajas skoorikaardi armatuurlaud  

### 5.1 Mermaid soojuskaart  

Soojuskart annab kohese visuaali katvusest erinevate raamistikuste lõikes.

```mermaid
graph TB
    subgraph "SOC 2"
        SOC1["Usaldusteenused: Turvalisus"]
        SOC2["Usaldusteenused: Kättesaadavus"]
        SOC3["Usaldusteenused: Konfidentsiaalsus"]
    end
    subgraph "ISO 27001"
        ISO1["A.5 Infoturbe poliitikad"]
        ISO2["A.6 Informaati turvalise korraldamine"]
        ISO3["A.7 Inimressursside turvalisus"]
    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;
```

Armatuurlaud kasutab **React‑Flow**‑i, et Mermaid‑koodi sisestada. Iga kord, kui taustasüsteem uuendab skoori, genereeritakse Mermaid‑string uuesti ja renderdatakse diagrammina, andes kasutajatele **null‑viivitusega** vaate ühilduvustaseme kohta.

### 5.2 Radar diagramm riskijaotuse jaoks  

```mermaid
radar
    title Riskijaotus
    categories Turvalisus Kättesaadavus Konfidentsiaalsus Terviklikkus Privaatsus
    A: 80, 70, 55, 90, 60
```

Radar‑diagrammi värskendab WebSocket‑kanal, mis edastab uuendatud numbrilised massiivid Skoorijalt.

### 5.3 Interaktsioonimustrid  

| Toiming | UI‑element | Tagasilõike‑kõne |
|---------|------------|-------------------|
| **Sügavvaade** | Klikk soojuskaardi sõlmel | Hangi detailne tõendusmaterjali loetelu selle kontrolli kohta |
| **Ülekirjutamine** | Sisestuskarbis | Kirjuta otse teadmistegraafi, säilitades auditi jälje |
| **Teavituse konfiguratsioon** | Riskiläve liugur | Värskenda Slack/Emaili teavituse reeglit Alerts‑mikroteenuses |

---

## 6. Turvalisus ja juhendamine  

1. **Zero‑knowledge tõendusmaterjali verifitseerimine** – Salvesta iga tõendusmaterjali SHA‑256‑hash; genereeri ZKP, kui faili avatakse, et tõendada terviklikkust ilma sisu avaldamata.  
2. **Rollipõhine juurdepääsukontroll (RBAC)** – Kasuta OPA‑poliitikaid, et piirata, kes võib skoori muuta vs. kes saab ainult vaadata.  
3. **Auditi logimine** – Iga RAG‑kõne, kindluse arvutus ja skoori uuendus kirjutatakse muutumatuks lisamatu loogiksiga andmebaasi (nt Amazon QLDB).  
4. **Andmete asukoht** – Vektori‑DB ja Neo4j saadetakse EU‑West‑1 piirkonda GDPR‑ülemaandumise jaoks, samas LLM töötab piirkonnalokkusega eralduval lõpp‑punktil.

---

## 7. Mootori skaleerimine  

| Väljakutse | Lahendus |
|------------|----------|
| **Küsitluste kõrge maht** (10 k+ päevas) | Paigalda RAG serverless konteinerite taha API‑värava, mille autoscaling põhineb päringu latentsusel. |
| **Embeddingute üleminek** (uued poliitikad iga tund) | Inkremetaalne embedding‑uuendus: arvuta vektorid ainult muudetud dokumentidele, hoia olemasolevad vektorid vahemälus. |
| **Armatuurlaua latentsus** | Push‑värskendused Server‑Sent Events‑i kaudu; hoia soojuskaartide Mermaid‑stringe tüüpiliste raamistike jaoks vahemälus. |
| **Kuluoptimeerimine** | Kasuta kvantiseeritud embeddinguid (8‑bit) ja kuhja LLM‑kõned (max 20 küsimust) kulude amortiseerimiseks. |

---

## 8. Rakendamise kontrollnimekiri  

- [ ] Defineeri teadmistegraafi skeem ja impordi esialgne poliitikakorpus.  
- [ ] Käivita vektori‑andmebaas ja hübriidotsingu torujuhe.  
- [ ] Loo RAG‑käsu mall ja ühenda valitud LLM‑ga.  
- [ ] Rakenda kindluse skoorimise valem ja lävid.  
- [ ] Ehita Ühilduvuse skoorija, kasutades kaalutud meetrikaid.  
- [ ] Kujunda React‑põhine armatuurlaud Mermaid‑komponentidega (soojuskaart, radar, voo diagrammid).  
- [ ] Konfigureeri WebSocket‑kanal reaalajas värskenduste jaoks.  
- [ ] Rakenda RBAC ja auditi‑logi vahenduskiht.  
- [ ] Paigalda testkeskkonda; tee koormustest 5 k QPS-i korral.  
- [ ] Lülita Slack/Teams teavituste webhook sisse, et saata hoiatusteateid läve ületamise korral.  

---

## 9. Reaalmaailma mõju  

Hiljutine pilootprojekt keskmise suurusega SaaS‑ettevõttes näitas **70 % ajakulu vähenemist** turvasurveküsitluste täitmisel. Reaalajas skoorikaart tõi esile vaid kolm kõrge riskiga lüngat, võimaldades turvateamial ressursse tõhusamalt suunata. Lisaks, kindlusele põhinev teavitussüsteem välistas potentsiaalse ühilduvusvajaduse **48 tunniga** enne kavandatud auditi.  

---

## 10. Tulevased täiustused  

1. **Föderatiivne RAG** – Tõmmata tõendusmaterjali partnerite organisatsioonidest ilma andmeid liigutamata, kasutades turvalist mitme osapoole arvutust.  
2. **Generatiivne UI** – Lase LLM‑l luua Mermaid‑diagramme otse loomuliku keele „näita mulle [ISO 27001](https://www.iso.org/standard/27001) katvussoojuskaart“ põhjal.  
3. **Prognoosiv skoorimine** – Sisesta ajaloolised skoorid ajarealisse mudelisse, et ennustada tulevasi ühilduvuslünki.  

---

## Vaata Ka  

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