
# Realaus laiko atitikties rezultatų lentelės prietaisų skydelis, pagrįstas paieškos‑papildyta generacija

## Įvadas  

Saugumo klausimynai, audito kontroliniai sąrašai ir reguliavimo įvertinimai generuoja milžinišką struktūruotų bei nestruktūruotų duomenų kiekį. Komandos praleidžia begales valandų kopijuodamos atsakymus, susiejant įrodymus ir rankiniu būdu skaičiuodamos atitikties balus. **Realaus laiko atitikties rezultatų lentelės prietaisų skydelis** pašalina šią trintį, sujungdamas tris galingus ingredientus:

1. **Paieškos‑papildyta generacija (RAG)** – LLM‑pilna sintezė, kuri prieš generuodama atsakymą ištraukia svarbiausius įrodymus iš žinių bazės.  
2. **Dinaminis žinių grafas** – Nuolat atnaujinamas grafas, jungiantis politikos, kontrolės, įrodymų artefaktų ir klausimyno elementų ryšius.  
3. **Mermaid‑valdomos vizualizacijos** – Gyvos, interaktyvios diagramos, kurios paverčia grynus grafų duomenis į intuityvias šilumos žemėlapius, radarinius grafikus ir srauto diagramas.

Rezultatas – vienas skaidrus vaizdas, kuriame suinteresuotosios šalys iš karto mato **rizikos eksponavimą, įrodymų aprėptį ir atsakymo pasitikėjimą** kiekvienam klausimyno elementui, visose reguliavimo sistemose ( [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), ir kt.).  

Šiame straipsnyje aptarsime:

* Pilną rezultatų lentelės variklio architektūrą.  
* Kaip kurti RAG kvietimus, kurie atskleidžia patikimiausius įrodymus.  
* Žinių grafų kanalą, kuris nuosekliai sinchronizuojasi su šaltinio dokumentais.  
* Mermaid vizualizacijų generavimą realiu laiku.  
* Mastymo svarstymus, saugumo geriausias praktikas ir trumpą gamybos įdiegimo kontrolinį sąrašą.  

> **Generatyvaus variklio optimizavimo patarimas** – Laikykite RAG kvietimus *trumpus, kontekstu turtingus ir susietus* unikalia įrodymo identifikacija. Tai maksimizuoja žetono efektyvumą ir gerina atsakymo tikslumą.

---

## 1. Sistemos apžvalga  

Žemiau pateikta aukšto lygio Mermaid diagrama, kuri iliustruoja duomenų srautą nuo gaunamų klausimynų iki gyvos rezultatų lentelės vartotojo sąsajos.

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

**Pagrindiniai komponentai**

| Komponentas | Paskirtis |
|------------|-----------|
| **Klausimynų formos** | JSON arba CSV failai, pateikti tiekėjų, pardavimų komandų ar auditorių. |
| **Dokumentų saugykla** | Centrinė vieta politikoms, kontrolės vadovams, audito ataskaitoms ir įrodymų PDF dokumentams. |
| **Dinaminis žinių grafas** | Neo4j (arba panašus) grafas, modeliuojantis *Klausimas ↔ Kontrolė ↔ Įrodymas ↔ Reguliavimas* ryšius. |
| **RAG variklis** | Paieškos sluoksnis (vektorinė DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Atitikties balų skaičiuoklis** | Apskaičiuoja skaitinį atitikties balą, pasitikėjimo intervalą ir rizikos įvertinimą kiekvienam klausimui. |
| **Rezultatų lentelės prietaisų skydelis** | React‑sąsaja, kuri atvaizduoja Mermaid diagramas ir skaitmeninius valdiklius. |
| **Real‑time įspėjimai** | Slack/El. pašto webhook asmenims, kurių rezultatai kritiškai nukrenta. |

---

## 2. Žinių grafo kūrimas  

### 2.1 schemos projektavimas  

Kompaktiška, bet išraiškinga schema sumažina užklausų vėlavimą. Toliau pateikti mazgų ir briaunų tipai tinka daugumai SaaS tiekėjų:

```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 įkėlimo kanalas  

1. **Analizė** – Naudokite Document AI (OCR + NER) įrašams išgauti: kontrolės pavadinimus, įrodymų nuorodas ir reguliavimo susiejimus.  
2. **Normalizavimas** – Konvertuokite kiekvieną entitetą į aukščiau aprašytą schemą; pašalinkite pasikartojimus pagal hash.  
3. **Praturtinimas** – Sukurkite įterpimus (pvz., `text‑embedding‑3‑large`) visų mazgų tekstiniams laukams.  
4. **Įkėlimas** – Atlikite „upsert“ operacijas mazgams ir santykiams Neo4j; įterpimus laikykite vektorų DB (Pinecone, Weaviate).  

Lengvas Airflow DAG gali planuoti šį procesą kas **15 min**, užtikrinant beveik realaus laiko šviežumą.

---

## 3. Paieškos‑papildyta generacija  

### 3.1 kvietimo šablonas  

Kvietimas turi tris sekcijas:

1. **Sistemos instrukcija** – Nustatykite modelio vaidmenį (Atitikties asistentas).  
2. **Gautos įžvalgos** – Tikslūs iškarpai iš žinių grafo (maks. 3 eilutės).  
3. **Vartotojo klausimas** – Klausimyno elementas, į kurį atsakome.

```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 paieškos strategija  

- **Hibridina paieška**: Kombinuokite BM25 raktažodžių atitikimą su vektorinės panašumo paieška, kad rastumėte tiek tikslius politikos fragmentus, tiek semantiškai susijusias kontrolės.  
- **Top‑k = 3**: Apribokite iki trijų įrodymų, kad sumažintumėte žetono naudojimą ir pagerintumėte sekamumą.  
- **Balų slenkstis**: Atmeskite iškarpas, kurių panašumas < 0.78, kad išvengtume triukšmo.

### 3.3 pasitikėjimo skaičiavimas  

Po generavimo pasitikėjimo balą apskaičiuokite taip:

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

Jei `confidence < 0.65`, Skaitiklis vėliajį atsakymą žymi kaip reikalaujantį žmogaus peržiūros.

---

## 4. Atitikties balų skaičiuoklis  

Skaitiklis paverčia kiekvieną atsakytą klausimą į skaitinį **0‑100** mastelį:

| Metriška | Svoris |
|----------|--------|
| Atsakymo išsamumas (reikalingų laukų buvimas) | 30 % |
| Įrodymų aprėptis (unikalių įrodymo ID skaičius) | 25 % |
| Pasitikėjimas (RAG pasitikėjimas) | 30 % |
| Reguliavimo poveikis (aukštos rizikos sistemų) | 15 % |

Galutinis balas – svorių suma. Be to, išvedamas **rizikos reitingas**:

* **0‑49** → Raudonas (Kritiškas)  
* **50‑79** → Geltonas (Vidutinis)  
* **80‑100** → Žalias (Atitinka)

Šie reitingai tiesiai tiekiami į vizualinį skydelį.

---

## 5. Gyvas rezultatų lentelės prietaisų skydelis  

### 5.1 Mermaid šilumos žemėlapis  

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

Skydelyje naudojamas **React‑Flow** Mermaid kodo įterpimui. Kiekvieną kartą, kai serverio pusėje atnaujinamas balas, UI regeneruoja Mermaid eilutę ir perrinkia diagramą, suteikdama vartotojams **nulio vėlavimo** vaizdą.

### 5.2 Radarinis grafikas rizikos pasiskirstymui  

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

Radaras atnaujinamas per **WebSocket** kanalo, kuris siųs atnaujintus skaitinius masyvus iš Skaitiklio.

### 5.3 Sąveikos modeliai  

| Veiksmas | UI elementas | Backend kvietimas |
|----------|--------------|-------------------|
| **„Drill‑down“** | Paspaudimas ant šilumos žemėlapio mazgo | Gauti detalių įrodymų sąrašą konkrečiai kontrolei |
| **„Override“** | Inline redagavimo laukelis | Rašyti tiesiai į žinių grafą su audito takeliu |
| **„Įspėjimo konfigūracija“** | Slankiklis rizikos slenksčiui | Atnaujinti įspėjimo taisyklę įspėjimų mikroservise |

---

## 6. Saugumas ir valdymas  

1. **Zero‑knowledge patikrinimas įrodymų tikrinimui** – Saugojame kiekvieno įrodymo SHA‑256 hashą; prieigos metu generuojame ZKP, kad įrodytume turinio vientisumą atskleidžiant nepatį turinį.  
2. **Rolės pagrindu paremtos prieigos kontrolės (RBAC)** – Naudojame OPA politikas, apribojančias kas gali redaguoti balus, o kas tik peržiūrėti.  
3. **Audito žurnalas** – Kiekvienas RAG kvietimas, pasitikėjimo skaičiavimas ir balų atnaujinimas įrašomas į nepakeičiamą priedų žurnalą (pvz., Amazon QLDB).  
4. **Duomenų rezidencija** – Vektorinė DB ir Neo4j gali būti diegiami EU‑West‑1, kad atitiktų GDPR, o LLM veikia regioniniu izoliuotu atveju su privačiu galiniu tašku.

---

## 7. Mastymo sprendimas  

| Iššūkis | Sprendimas |
|---------|------------|
| **Didelis klausimynų srautas** (10 k+ per dieną) | RAG kaip **serverless konteineris** už API‑gateway; automatinis mastinimas pagal atsako vėlavimą. |
| **Įterpimo atnaujinimas** (naujos politikos kas valandą) | Inkrementinis įterpimo atnaujinimas: perskaičiuojame vektorius tik pasikeitusiam turiniui, likusius laikome talpykloje. |
| **Skydelio vėlavimas** | Naudokite Server‑Sent Events; talpinkite Mermaid eilutes pagal reglamentą, kad greitai vėl naudoti. |
| **Kaštų valdymas** | Naudokite **kvančizuotus įterpimus** (8‑bitų) ir grupuokite LLM kvietimus (maks. 20 klausimų) su tikslu amortizuoti užklausų kainą. |

---

## 8. Įgyvendinimo kontrolinis sąrašas  

- [ ] Apibrėžti žinių grafo schemą ir įkelti pradinį politikų rinkinį.  
- [ ] Sukurti vektorų DB ir hibridinę paieškos liniją.  
- [ ] Paruošti RAG kvietimo šabloną ir integruoti su pasirinktu LLM.  
- [ ] Įgyvendinti pasitikėjimo skaičiavimo formulę ir slenkstį.  
- [ ] Sukurti Atitikties balų skaičiuoklį su svorių metrikomis.  
- [ ] Suprojektuoti React skydelį su Mermaid komponentais (šilumos žemėlapis, radaras, srauto diagramos).  
- [ ] Nustatyti WebSocket kanalą realaus laiko atnaujinimams.  
- [ ] Pridėti RBAC ir audito žurnalo tarpinę programinę įrangą.  
- [ ] Deploy į testinę aplinką; atlikti 5 k QPS apkrovos testą.  
- [ ] Įjungti Slack/Teams įspėjimų webhooką dėl rizikos ribų pažeidimų.  

---

## 9. Realus poveikis  

Neseniai vidutinio dydžio SaaS įmonėje vykdyta pilotinė versija parodė **70 % sumažinimą** laiko, praleidžiamo atsakant į tiekėjų klausimynus. Gyvoje skydelyje išryškėjo tik trys didelės rizikos spragos, leidusios saugumo komandai efektyviai paskirstyti išteklius. Be to, pasitikėjimu pagrįstas įspėjimas užkirsto kelią potencialiam **SOC 2** įrodymo trūkumui **48 valandų** prieš suplanuotą auditą.

---

## 10. Ateities patobulinimai  

1. **Federacinė RAG** – Gauti įrodymus iš partnerių organizacijų, be duomenų perkėlimo, naudojant saugią daugelio šalių skaičiavimo technologiją.  
2. **Generatyvi UI** – Leisti LLM tiesiogiai generuoti Mermaid diagramas iš natūralaus kalbos užklausų: „Parodyk šilumos žemėlapį [ISO 27001] aprėptimo“.  
3. **Prognozinis balų skaičiavimas** – Naudoti istorinį duomenų rinkinį laiko serijos modelyje, prognozuojant ateities atitikties spragas.  

---

## Susiję šaltiniai  

- [Paieškos‑papildyta generacija: praktinis gidas – LangChain Docs](https://python.langchain.com/docs/use_cases/retrieval_qa)  
- [Mermaid tiesioginis redaktorius ir dokumentacija](https://mermaid-js.github.io/mermaid/#/)