
# Dasbor Kartu Skor Kepatuhan Real‑Time Diperdayakan oleh Retrieval‑Augmented Generation

## Pendahuluan  

Kuesioner keamanan, daftar pemeriksaan audit, dan penilaian regulasi menghasilkan data terstruktur dan tidak terstruktur dalam jumlah besar. Tim menghabiskan jam tak terhitung untuk menyalin jawaban, memetakan bukti, dan menghitung skor kepatuhan secara manual. **Dasbor Kartu Skor Kepatuhan Real‑Time** menghilangkan gesekan tersebut dengan menggabungkan tiga bahan kuat:

1. **Retrieval‑Augmented Generation (RAG)** – Sintesis berbasis LLM yang menarik bukti paling relevan dari basis pengetahuan sebelum menghasilkan jawaban.  
2. **Grafik Pengetahuan Dinamis** – Grafik yang terus diperbarui yang menghubungkan kebijakan, kontrol, artefak bukti, dan item kuesioner.  
3. **Visualisasi berbasis Mermaid** – Diagram interaktif langsung yang mengubah data grafik mentah menjadi heatmap, radar chart, dan diagram alur yang intuitif.

Hasilnya adalah satu tampilan terpadu di mana pemangku kepentingan dapat langsung melihat **eksposur risiko, cakupan bukti, dan kepercayaan jawaban** untuk setiap item kuesioner, di seluruh kerangka regulasi ( [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 mengeksplorasi:

* Arsitektur ujung‑ke‑ujung mesin kartu skor.  
* Cara merancang prompt RAG yang menampilkan bukti paling dapat diandalkan.  
* Membangun pipeline grafik‑pengetahuan yang tetap sinkron dengan dokumen sumber.  
* Menyajikan visualisasi Mermaid yang diperbarui secara real‑time.  
* Pertimbangan skalabilitas, praktik keamanan terbaik, serta daftar periksa singkat untuk peluncuran produksi.  

> **Tip Optimasi Mesin Generatif** – Jaga prompt RAG Anda *singkat, kaya konteks, dan berlandaskan* sebuah identifier bukti yang unik. Ini memaksimalkan efisiensi token dan meningkatkan fidelitas jawaban.

---

## 1. Ikhtisar Sistem  

Berikut diagram Mermaid tingkat tinggi yang menggambarkan alur data dari kuesioner masuk hingga UI kartu skor live.

```mermaid
graph LR
    subgraph "Lapisan Input"
        Q[ "Formulir Kuesioner" ]
        D[ "Repositori Dokumen" ]
    end

    subgraph "Inti Pemrosesan"
        KG[ "Grafik Pengetahuan Dinamis" ]
        RAG[ "Mesin RAG" ]
        Scorer[ "Penilai Kepatuhan" ]
    end

    subgraph "Lapisan Output"
        UI[ "Dasbor Kartu Skor" ]
        Alerts[ "Peringatan Real‑Time" ]
    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 |
|----------|--------|
| **Formulir Kuesioner** | File JSON atau CSV yang diajukan oleh vendor, tim penjualan, atau auditor. |
| **Repositori Dokumen** | Penyimpanan pusat untuk kebijakan, manual kontrol, laporan audit, dan PDF bukti. |
| **Grafik Pengetahuan Dinamis** | Neo4j (atau sejenis) yang memodelkan hubungan *Pertanyaan ↔ Kontrol ↔ Bukti ↔ Regulasi*. |
| **Mesin RAG** | Lapisan pencarian (vector DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Penilai Kepatuhan** | Menghitung skor kepatuhan numerik, interval kepercayaan, dan rating risiko per pertanyaan. |
| **Dasbor Kartu Skor** | UI berbasis React yang merender diagram Mermaid serta widget numerik. |
| **Peringatan Real‑Time** | Webhook Slack/Email untuk item yang melampaui ambang kebijakan. |

---

## 2. Membangun Grafik Pengetahuan  

### 2.1 Desain Skema  

Skema yang ringkas namun ekspresif menjaga latensi kueri rendah. Tipe node/edge berikut sudah 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 Pipeline Ingest  

1. **Parse** – Gunakan Document AI (OCR + NER) untuk mengekstrak judul kontrol, referensi bukti, dan pemetaan regulasi.  
2. **Normalize** – Konversi tiap entitas ke skema kanonik di atas; hilangkan duplikasi berdasarkan hash.  
3. **Enrich** – Buat embedding (misalnya `text‑embedding‑3‑large`) untuk semua bidang tekstual node.  
4. **Load** – Upsert node dan hubungan ke Neo4j; simpan embedding di vector DB (Pinecone, Weaviate).  

DAG Airflow ringan dapat menjadwalkan pipeline setiap **15 menit**, menjamin kesegaran hampir secara real‑time.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 Template Prompt  

Prompt harus berisi tiga bagian:

1. **Instruksi sistem** – Definisikan peran model (Asisten Kepatuhan).  
2. **Konteks yang di‑retrieve** – Potongan tepat dari grafik pengetahuan (maks 3 baris).  
3. **Pertanyaan pengguna** – Item kuesioner yang harus 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 Retrieval  

- **Pencarian hibrida**: Gabungkan pencocokan keyword BM25 dengan kesamaan vektor untuk menampilkan baik bahasa kebijakan eksak maupun kontrol yang secara semantik terkait.  
- **Top‑k = 3**: Batasi pada tiga buah bukti untuk menjaga penggunaan token tetap rendah dan meningkatkan keterlacakan.  
- **Ambang skor**: Buang potongan dengan kesamaan < 0.78 agar output tidak berisik.

### 3.3 Perhitungan Kepercayaan  

Setelah generasi, hitung **skor kepercayaan** dengan rumus:

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

Jika `confidence < 0.65`, Penilai menandai jawaban untuk tinjauan manusia.

---

## 4. Mesin Penilai Kepatuhan  

Penilai mengubah setiap pertanyaan yang telah dijawab menjadi nilai numerik pada **skala 0‑100**:

| Metrik | Bobot |
|--------|-------|
| Kelengkapan jawaban (kehadiran bidang wajib) | 30 % |
| Cakupan bukti (jumlah ID bukti unik) | 25 % |
| Kepercayaan (kepercayaan RAG) | 30 % |
| Dampak regulasi (kerangka risiko tinggi) | 15 % |

Skor akhir adalah jumlah tertimbang. Mesin juga menghasilkan **rating risiko**:

* **0‑49** → Merah (Kritis)  
* **50‑79** → Kuning (Sedang)  
* **80‑100** → Hijau (Patuh)

Rating ini langsung masuk ke visualisasi dasbor.

---

## 5. Dasbor Kartu Skor Live  

### 5.1 Heatmap Mermaid  

Heatmap memberikan visual instan tentang cakupan lintas kerangka 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;
```

Dasbor menggunakan **React‑Flow** untuk menyematkan kode Mermaid. Setiap kali back‑end memperbarui skor, UI menghasilkan kembali string Mermaid dan merender diagram, memberi pengguna **pandangan tanpa jeda** pada postur kepatuhan.

### 5.2 Radar Chart untuk Distribusi Risiko  

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

Radar chart diperbarui melalui kanal WebSocket yang mendorong array numerik terbaru dari Penilai.

### 5.3 Pola Interaksi  

| Aksi | Elemen UI | Panggilan Backend |
|------|-----------|-------------------|
| **Drill‑down** | Klik pada node heatmap | Ambil daftar bukti terperinci untuk kontrol tersebut |
| **Override** | Kotak edit inline | Tulis‑langsung ke grafik pengetahuan dengan jejak audit |
| **Pengaturan Alert** | Slider untuk ambang risiko | Perbarui aturan peringatan di micro‑service Alerts |

---

## 6. Keamanan & Tata Kelola  

1. **Zero‑knowledge proof untuk verifikasi bukti** – Simpan hash SHA‑256 setiap file bukti; hitung ZKP saat file diakses untuk membuktikan integritas tanpa mengungkapkan konten.  
2. **Kontrol akses berbasis peran (RBAC)** – Gunakan kebijakan OPA untuk membatasi siapa yang dapat mengedit skor versus yang hanya dapat melihat.  
3. **Audit logging** – Setiap panggilan RAG, perhitungan kepercayaan, dan pembaruan skor ditulis ke log immutable (mis. Amazon QLDB).  
4. **Kediaman data** – Vector DB dan Neo4j dapat dideploy di EU‑West‑1 untuk kepatuhan GDPR, sementara LLM dijalankan pada instance yang dibatasi wilayah dengan endpoint privat.

---

## 7. Menskalakan Mesin  

| Tantangan | Solusi |
|-----------|--------|
| **Volume kuesioner tinggi** (10k+ per hari) | Deploy RAG sebagai **container serverless** di belakang API‑gateway; gunakan auto‑scaling berbasis latency permintaan. |
| **Pergantian embedding** (kebijakan baru tiap jam) | Pembaruan embedding inkremental: hanya hitung ulang vektor untuk dokumen yang berubah, cache vektor yang sudah ada. |
| **Latency dasbor** | Push pembaruan lewat **Server‑Sent Events**; cache string Mermaid per kerangka kerja untuk reuse cepat. |
| **Manajemen biaya** | Gunakan **embedding terkuantisasi** (8‑bit) dan batch panggilan LLM (maks 20 pertanyaan) untuk amortisasi biaya permintaan. |

---

## 8. Daftar Periksa Implementasi  

- [ ] Definisikan skema grafik pengetahuan dan ingest korpus kebijakan awal.  
- [ ] Siapkan vector database serta pipeline pencarian hibrida.  
- [ ] Buat template prompt RAG dan integrasikan dengan LLM terpilih.  
- [ ] Terapkan rumus perhitungan kepercayaan serta ambang‑ambang.  
- [ ] Bangun Penilai Kepatuhan dengan metrik berbobot.  
- [ ] Rancang dasbor React dengan komponen Mermaid (heatmap, radar, flow).  
- [ ] Konfigurasi kanal WebSocket untuk pembaruan real‑time.  
- [ ] Terapkan RBAC dan middleware audit‑log.  
- [ ] Deploy ke lingkungan staging; lakukan load test untuk 5 k QPS.  
- [ ] Aktifkan webhook peringatan ke Slack/Teams untuk pelanggaran risiko.  

---

## 9. Dampak Dunia Nyata  

Pilot terbaru pada perusahaan SaaS menengah menunjukkan **pengurangan 70 %** waktu yang dihabiskan untuk menjawab kuesioner vendor. Dasbor live menyoroti hanya tiga kesenjangan risiko tinggi, memungkinkan tim keamanan mengalokasikan sumber daya secara efisien. Lebih jauh, peringatan berbasis kepercayaan mencegah potensi pelanggaran kepatuhan dengan menampilkan artefak bukti [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) yang **hilang 48 jam** sebelum audit terjadwal.

---

## 10. Pengembangan di Masa Depan  

1. **RAG Federasi** – Mengambil bukti dari organisasi mitra tanpa pemindahan data, menggunakan secure multi‑party computation.  
2. **UI Generatif** – Biarkan LLM menghasilkan diagram Mermaid langsung dari perintah bahasa alami “tampilkan heatmap cakupan [ISO 27001](https://www.iso.org/standard/27001)”.  
3. **Skoring Prediktif** – Feed skor historis ke model time‑series untuk memproyeksikan kesenjangan kepatuhan yang akan datang.  

---

## Lihat Juga  

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