
# Paparan Papan Skor Pematuhan Masa Nyata Dikuasakan oleh Penjanaan Diperkaya Pengambilan

## Pengenalan  

Soal selidik keselamatan, senarai semak audit, dan penilaian peraturan menghasilkan sejumlah besar data berstruktur dan tidak berstruktur. Pasukan menghabiskan berjam‑jam menyalin jawapan, memetakan bukti, dan mengira skor pematuhan secara manual. **Paparan Papan Skor Pematuhan Masa Nyata** menghapuskan gesekan ini dengan menggabungkan tiga bahan kuasa:

1. **Penjanaan Diperkaya Pengambilan (RAG)** – Sintesis berasaskan LLM yang menarik bukti paling relevan daripada pangkalan pengetahuan sebelum menjana jawapan.  
2. **Grafik Pengetahuan Dinamik** – Grafik yang sentiasa diperbaharui yang menghubungkan dasar, kawalan, artefak bukti, dan item soal selidik.  
3. **Visualisasi berasaskan Mermaid** – Diagram interaktif secara langsung yang menukar data grafik mentah menjadi peta haba, carta radar, dan diagram aliran yang intuitif.

Hasilnya ialah satu paparan tunggal di mana pemegang kepentingan dapat melihat **pendedahan risiko, liputan bukti, dan keyakinan jawapan** bagi setiap item soal selidik, merentasi setiap rangka kerja peraturan ( [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), dll.).  

Dalam artikel ini kami akan menelusuri:

* Seni bina hujung‑ke‑hujung enjin skor.  
* Cara mereka bentuk prompt RAG yang memaparkan bukti paling boleh dipercayai.  
* Membina saluran grafik pengetahuan yang sentiasa selaras dengan dokumen sumber.  
* Menyediakan visualisasi Mermaid yang dikemas kini secara masa nyata.  
* Pertimbangan skala, amalan keselamatan terbaik, dan senarai semak ringkas untuk pelancaran produksi.  

> **Tip Pengoptimuman Enjin Generatif** – Pastikan prompt RAG anda *pendek, kaya konteks, dan berankor* dengan pengecam bukti yang unik. Ini memaksimumkan kecekapan token dan meningkatkan ketepatan jawapan.

---

## 1. Gambaran Keseluruhan Sistem  

Berikut ialah diagram Mermaid aras tinggi yang menunjukkan aliran data daripada soal selidik masuk ke UI skor langsung.

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

**Komponen utama**

| Komponen | Tujuan |
|-----------|---------|
| **Borang Soal Selidik** | Fail JSON atau CSV yang dihantar oleh vendor, pasukan jualan, atau juruaudit. |
| **Repositori Dokumen** | Stor berpusat untuk dasar, panduan kawalan, laporan audit, dan bukti PDF. |
| **Grafik Pengetahuan Dinamik** | Grafik Neo4j (atau serupa) yang memodelkan hubungan *Soalan ↔ Kawalan ↔ Bukti ↔ Peraturan*. |
| **Enjin RAG** | Lapisan pengambilan (pangkalan data vektor) + LLM (Claude, GPT‑4‑Turbo). |
| **Pengira Pematuhan** | Mengira skor pematuhan berangka, selang keyakinan, dan penarafan risiko per soalan. |
| **Paparan Papan Skor** | UI berasaskan React yang memaparkan diagram Mermaid dan widget berangka. |
| **Amaran Masa Nyata** | Webhook Slack/Email untuk item yang jatuh di bawah ambang polisi. |

---

## 2. Membina Grafik Pengetahuan  

### 2.1 Reka Bentuk Skema  

Skema yang padat namun ekspresif mengekalkan latensi pertanyaan rendah. Jenis nod/tepi berikut mencukupi untuk kebanyakan vendor SaaS:

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

1. **Parse** – Gunakan Document AI (OCR + NER) untuk mengekstrak tajuk kawalan, rujukan bukti, dan pemetaan peraturan.  
2. **Normalize** – Tukar setiap entiti kepada skema kanonik di atas; hapus pendua berdasarkan hash.  
3. **Enrich** – Isi embeddings (contoh, `text‑embedding‑3‑large`) bagi setiap medan teks nod.  
4. **Load** – Upsert nod dan hubungan ke dalam Neo4j; simpan embeddings dalam pangkalan data vektor (Pinecone, Weaviate).  

DAG Airflow yang ringan boleh menjadualkan saluran ini setiap **15 minit**, menjamin kesegaran hampir‑masa‑nyata.

---

## 3. Penjanaan Diperkaya Pengambilan  

### 3.1 Templat Prompt  

Prompt mesti mengandungi tiga bahagian:

1. **Arahan sistem** – Tetapkan peranan model (Pembantu Pematuhan).  
2. **Konteks terambil** – Potongan tepat daripada grafik pengetahuan (maks 3 baris).  
3. **Soalan pengguna** – Item soal selidik yang hendak dijawab.

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

- **Carian hibrid**: Gabungkan padanan kata kunci BM25 dengan kesamaan vektor untuk memaparkan kedua‑dua bahasa dasar polisi dan kawalan yang bersifat semantik.  
- **Top‑k = 3**: Hadkan kepada tiga kepingan bukti untuk menurunkan penggunaan token dan meningkatkan kebolehjejan.  
- **Ambang skor**: Buang potongan dengan kesamaan < 0.78 untuk mengelak output yang bising.

### 3.3 Pengiraan Keyakinan  

Selepas penjanaan, kira **skor keyakinan** menggunakan:

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

Jika `confidence < 0.65`, Pengira menandakan jawapan untuk semakan manusia.

---

## 4. Enjin Pengiraan Pematuhan  

Pengira menukarkan setiap soalan yang telah dijawab menjadi nilai berangka pada **skala 0‑100**:

| Metik | Berat |
|--------|--------|
| Kelengkapan jawapan (kehadiran medan diperlukan) | 30% |
| Liputan bukti (bilangan ID bukti unik) | 25% |
| Keyakinan (keyakinan RAG) | 30% |
| Impak peraturan (kerangka kerja berisiko tinggi) | 15% |

Skor akhir ialah jumlah berp berat. Enjin juga menghasilkan **penarafan risiko**:

* **0‑49** → Merah (Kritikal)  
* **50‑79** → Kuning (Sederhana)  
* **80‑100** → Hijau (Patuh)

Penarafan inilah yang dipaparkan secara langsung dalam visualisasi papan skor.

---

## 5. Paparan Papan Skor Masa Nyata  

### 5.1 Peta Haba Mermaid  

Peta haba memberi gambaran visual serta‑merta tentang liputan merentasi rangka kerja.

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

Paparan ini menggunakan **React‑Flow** untuk menyisipkan kod Mermaid. Setiap kali bahagian belakang mengemas kini skor, UI menjana semula rentetan Mermaid dan memaparkan semula diagram, memberi pengguna **pandangan tanpa sela** tentang kedudukan pematuhan.

### 5.2 Carta Radar untuk Taburan Risiko  

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

Carta radar ini dikemas kini melalui saluran WebSocket yang menolak array berangka terkini daripada Pengira.

### 5.3 Corak Interaksi  

| Tindakan | Elemen UI | Panggilan Backend |
|----------|-----------|-------------------|
| **Menyelami** | Klik pada nod peta haba | Dapatkan senarai bukti terperinci bagi kawalan tersebut |
| **Menimpa** | Kotak edit dalam talian | Tulis kembali ke grafik pengetahuan dengan jejak audit |
| **Konfigurasi amaran** | Slider ambang risiko | Kemas kini peraturan amaran pada perkhidmatan Alerts |

---

## 6. Keselamatan & Tadbir Urus  

1. **Bukti sifar‑pengetahuan untuk pengesahan bukti** – Simpan hash SHA‑256 bagi setiap fail bukti; hasilkan ZKP semasa fail diakses untuk membuktikan integriti tanpa mendedahkan kandungan.  
2. **Kawalan akses berasaskan peranan (RBAC)** – Gunakan polisi OPA untuk menyekat siapa yang boleh mengedit skor vs. siapa yang hanya boleh melihat.  
3. **Log audit** – Setiap panggilan RAG, pengiraan keyakinan, dan kemas kini skor ditulis ke dalam log tidak boleh diubah (contoh, Amazon QLDB).  
4. **Kediaman data** – Pangkalan vektor dan Neo4j boleh dideploi di EU‑West‑1 untuk pematuhan GDPR, manakala LLM berjalan dalam contoh terhad wilayah dengan titik akhir persendirian.

---

## 7. Menskala Enjin  

| Cabaran | Penyelesaian |
|-----------|--------------|
| **Volum soal selidik tinggi** (10k+ sehari) | Deploy RAG sebagai **kontena tanpa pelayan** di belakang API‑gateway; auto‑scale berdasarkan kelewatan permintaan. |
| **Penggantian embeddings** (dasar baru setiap jam) | Kemaskini embeddings secara inkremental: hanya kira semula vektor bagi dokumen yang berubah, simpan vektor lama dalam cache. |
| **Kelewatan papan skor** | Push kemaskini melalui **Server‑Sent Events**; cache rentetan Mermaid per rangka kerja untuk penggunaan semula cepat. |
| **Pengurusan kos** | Gunakan **embeddings berkuantisasi** (8‑bit) dan kumpulkan panggilan LLM (maks 20 soalan) untuk menyebarkan kos permintaan. |

---

## 8. Senarai Semak Pelaksanaan  

- [ ] Tentukan skema grafik pengetahuan dan serap korpus dasar awal.  
- [ ] Sediakan pangkalan data vektor serta saluran carian hibrid.  
- [ ] Cipta templat prompt RAG dan integrasikan dengan LLM terpilih.  
- [ ] Laksanakan formula pengiraan keyakinan serta ambang.  
- [ ] Bangunkan pengira pematuhan dengan metrik berbobot.  
- [ ] Reka UI React dengan komponen Mermaid (peta haba, radar, aliran).  
- [ ] Konfigurasikan saluran WebSocket untuk kemaskini masa nyata.  
- [ ] Terapkan RBAC dan middleware log audit.  
- [ ] Deploy ke persekitaran staging; jalankan ujian beban untuk 5 k QPS.  
- [ ] Aktifkan webhook amaran ke Slack/Teams untuk pelanggaran ambang risiko.  

---

## 9. Kesan Dunia Sebenar  

Percubaan terkini di sebuah firma SaaS bersaiz sederhana menunjukkan **penurunan masa 70 %** dalam menjawab soal selidik vendor. Papan skor langsung menyorot hanya tiga jurang risiko tinggi, membolehkan pasukan keselamatan menumpukan sumber dengan cekap. Tambahan lagi, amaran berasaskan keyakinan menghalang potensi pelanggaran pematuhan dengan menonjolkan artefak bukti [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) yang hilang **48 jam** sebelum audit dijadualkan.

---

## 10. Penambahbaikan Masa Depan  

1. **RAG Teragih** – Tarik bukti daripada organisasi rakan kongsi tanpa pemindahan data, menggunakan pengiraan pelbagai pihak yang selamat.  
2. **UI Generatif** – Benarkan LLM menjana diagram Mermaid secara langsung daripada arahan bahasa semula jadi “tunjukkan peta haba liputan [ISO 27001](https://www.iso.org/standard/27001)”.  
3. **Skoring ramalan** – Salurkan skor sejarah ke dalam model siri masa untuk meramalkan jurang pematuhan yang akan datang.  

---

## Lihat Juga  

- [Penjanaan Diperkaya Pengambilan: Panduan Praktikal – Dokumen LangChain](https://python.langchain.com/docs/use_cases/retrieval_qa)  
- [Editor Langsung & Dokumentasi Mermaid](https://mermaid-js.github.io/mermaid/#/)