
# Sintesis Dasar Dinamik dengan LLM dan Konteks Risiko Masa Nyata

**Abstrak** – Soal selidik keselamatan vendor adalah titik leher yang terkenal bagi syarikat SaaS.Repositori statik tradisional menyimpan dasar yang terkunci dalam masa, memaksa pasukan menyunting jawapan secara manual setiap kali isyarat risiko baru muncul. Artikel ini memperkenalkan *Sintesis Dasar Dinamik* (DPS), satu cetak biru yang menggabungkan model bahasa besar (LLM), telemetri risiko berterusan, dan lapisan orkestrasi berasaskan acara untuk menghasilkan jawapan tepat‑masa, berkesedaran‑konteks atas permintaan. Pada akhir bacaan anda akan memahami komponen teras, aliran data, dan langkah‑langkah praktikal untuk melaksanakan DPS di atas platform Procurize.

---

## 1. Mengapa Perpustakaan Dasar Statik Gagal dalam Audit Moden

1. **Kelambatan perubahan** – Kelemahan yang baru ditemui dalam komponen pihak ketiga mungkin memaklumkan semula klausa yang diluluskan enam bulan lalu. Perpustakaan statik memerlukan kitaran penyuntingan manual yang boleh mengambil masa berhari‑hari.  
2. **Ketidakcocokan konteks** – Kawalan yang sama boleh ditafsirkan berbeza bergantung pada landskap ancaman semasa, skop kontrak, atau peraturan geografi.  
3. **Tekanan skalabiliti** – Syarikat SaaS yang berkembang pesat menerima berpuluh‑puluh soal selidik setiap minggu; setiap jawapan mesti selaras dengan postur risiko terkini, yang mustahil dijamin dengan proses manual.

Titik sakit ini mendorong keperluan untuk sistem *adaptif* yang dapat **menarik** dan **menolak** wawasan risiko secara masa nyata serta menterjemahkannya ke dalam bahasa dasar yang mematuhi secara automatik.

---

## 2. Tiang Teras Sintesis Dasar Dinamik

| Tiang | Fungsi | Teknologi Biasa |
|--------|----------|--------------------|
| **Pengambilan Telemetri Risiko** | Menyiarkan aliran kelemahan, amaran intel‑ancaman, dan metrik keselamatan dalaman ke dalam tasik data bersepadu. | Kafka, AWS Kinesis, ElasticSearch |
| **Enjin Konteks** | Menormalkan telemetri, memperkayanya dengan inventori aset, dan mengira *skor risiko* bagi setiap domain kawalan. | Python, Pandas, Neo4j Knowledge Graph |
| **Penjana Prompt LLM** | Menghasilkan prompt khusus domain yang menyertakan skor risiko terkini, rujukan peraturan, dan templat dasar. | OpenAI GPT‑4, Anthropic Claude, LangChain |
| **Lapisan Orkestrasi** | Menyelaraskan pencetus acara, menjalankan LLM, menyimpan teks terhasil, dan memberitahu penyemak. | Temporal.io, Airflow, Serverless Functions |
| **Jejak Audit & Penversian** | Menyimpan setiap jawapan terhasil dengan hash kriptografi untuk kebolehkesanan audit. | Git, Immutable Object Store (contoh: S3 dengan Object Lock) |

Bersama-sama mereka membentuk saluran kitar balik tertutup yang menukar isyarat risiko mentah menjadi jawapan soal selidik yang dipoles.

---

## 3. Aliran Data Dihuraikan

```mermaid
flowchart TD
    A["Sumber Suapan Risiko"] -->|Kafka Stream| B["Tasik Telemetri Mentah"]
    B --> C["Penormalan & Penyemakan"]
    C --> D["Enjin Penilaian Risiko"]
    D --> E["Pakej Konteks"]
    E --> F["Pembina Prompt"]
    F --> G["LLM (GPT‑4)"]
    G --> H["Draf Klausa Dasar"]
    H --> I["Hab Semakan Manusia"]
    I --> J["Repositori Jawapan Diluluskan"]
    J --> K["Antara Muka Soal Selidik Procurize"]
    K --> L["Penghantaran Vendor"]
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style L fill:#9f9,stroke:#333,stroke-width:2px
```

*Setiap nod teks diletakkan dalam tanda petikan berganda seperti yang diperlukan.*

---

## 4. Membina Penjana Prompt

Prompt berkualiti tinggi adalah rahsia kejayaan. Di bawah adalah contoh kepingan Python yang menunjukkan cara menyusun prompt yang menggabungkan konteks risiko dengan templat yang boleh diguna semula.

```python
import json
from datetime import datetime

def build_prompt(risk_context, template_id):
    # Muat templat klausa yang disimpan
    with open(f"templates/{template_id}.md") as f:
        template = f.read()

    # Sisipkan pemboleh ubah risiko
    prompt = f"""
Anda adalah pakar pematuhan yang mengarang jawapan bagi soal selidik keselamatan.
Skor risiko semasa untuk domain "{risk_context['domain']}" ialah {risk_context['score']:.2f}.
Amaran baru‑baru ini: {", ".join(risk_context['alerts'][:3])}
Rujukan peraturan: {", ".join(risk_context['regulations'])}

Gunakan templat berikut, hasilkan jawapan yang ringkas dan tepat yang mencerminkan postur risiko terkini.

{template}
"""
    return prompt.strip()

# Contoh penggunaan
risk_context = {
    "domain": "Penyulitan Data Pada Simpanan",
    "score": 0.78,
    "alerts": ["CVE‑2024‑1234 memengaruhi modul AES‑256", "Panduan NIST baru tentang putaran kunci"],
    "regulations": ["ISO 27001 A.10.1", "PCI DSS 3.2"]
}
print(build_prompt(risk_context, "encryption_response"))
```

Prompt yang terhasil kemudian dihantar ke LLM melalui panggilan API, dan teks yang dipulangkan disimpan sebagai *draf* menunggu kelulusan manusia yang pantas.

---

## 5. Orkestrasi Masa Nyata dengan Temporal.io

Temporal menyediakan *workflow‑as‑code*, membolehkan kita takrifkan saluran yang boleh dipercayai dan menyokong percubaan semula.

```goat
workflow DynamicPolicyWorkflow(riskEvent RiskEvent, questionnaireID string) {
    // Langkah 1: Bina pakej konteks
    contextPkg := Activity(BuildContextPackage, riskEvent)

    // Langkah 2: Jana prompt LLM
    prompt := Activity(BuildPrompt, contextPkg, questionnaireID)

    // Langkah 3: Panggil LLM
    draft := Activity(CallLLM, prompt)

    // Langkah 4: Simpan draf dan beri notifikasi penyemak
    Activity(StoreDraftAndNotify, draft, questionnaireID)

    // Pilihan: Kelulusan automatik jika skor risiko < 0.2
    if contextPkg.Score < 0.2 {
        Activity(AutoApprove, draft, questionnaireID)
    }
}
```

Alur kerja ini menjamin pelaksanaan tepat‑sekali, percubaan semula automatik bagi kegagalan sementara, dan kebolehlihatan telus melalui UI Temporal—penting bagi juruaudit pematuhan.

---

## 6. Tadbir Urus Manusia‑Dalam‑Kitar (HITL)

Walaupun LLM terhebat sekalipun boleh mengarang maklumat palsu. DPS menyertakan langkah HITL yang ringan:

1. **Penyemak menerima notifikasi Slack/Teams** dengan paparan sisi‑dengan‑sisi draf dan konteks risiko yang mendasari.  
2. **Kelulusan satu klik** menulis jawapan akhir ke repositori tak boleh ubah dan mengemas kini UI soal selidik.  
3. **Penolakan** memicu lingkaran maklum balas yang menandakan prompt, meningkatkan generasi masa depan.

Log audit merekodkan ID penyemak, cap masa, dan hash kriptografi teks yang diluluskan, memenuhipersyaratan bukti [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) dan [ISO 27001](https://www.iso.org/standard/27001).

---

## 7. Penversian dan Bukti Boleh Audit

Setiap klausa yang dihasilkan dikomitkan ke storan bersesuaian Git dengan metadata berikut:

```json
{
  "questionnaire_id": "Q-2025-09-14",
  "control_id": "C-ENCR-01",
  "risk_score": 0.78,
  "generated_at": "2025-10-22T14:03:12Z",
  "hash": "sha256:9f8d2c1e...",
  "reviewer": "alice.smith@example.com",
  "status": "approved"
}
```

Penyimpanan tak boleh ubah (S3 Object Lock) memastikan bukti tidak dapat diubah selepas fakta, menyediakan rantaian kawalan yang kukuh untuk audit.

---

## 8. Manfaat Secara Kuantitatif

| Metrik | Sebelum DPS | Selepas DPS (12 bln) |
|--------|------------|-------------------|
| Masa purata menjawab | 3.2 hari | 3.5 jam |
| Usaha penyuntingan manusia | 25 jam seminggu | 6 jam seminggu |
| Jurang bukti audit | 12 % | <1 % |
| Liputan pematuhan (kawalan) | 78 % | 96 % |

Nombor-nombor ini berasal daripada percubaan pilot dengan tiga firma SaaS bersaiz sederhana yang mengintegrasikan DPS ke dalam persekitaran Procurize mereka.

---

## 9. Senarai Semak Pelaksanaan

- **[ ]** Sediakan platform penstriman (Kafka) untuk suapan risiko.  
- **[ ]** Bina graf pengetahuan Neo4j yang menghubungkan aset, kawalan, dan intel‑ancaman.  
- **[ ]** Cipta templat klausa boleh pakai yang disimpan dalam format Markdown.  
- **[ ]** Deploy perkhidmatan penjana prompt (Python/Node).  
- **[ ]** Sediakan akses LLM (OpenAI, Azure OpenAI, dsb.).  
- **[ ]** Konfigurasi alur kerja Temporal atau DAG Airflow.  
- **[ ]** Integrasikan dengan UI semakan jawapan Procurize.  
- **[ ]** Aktifkan logging tak boleh ubah (Git + S3 Object Lock).  
- **[ ]** Lakukan semakan keselamatan ke atas kod orkestrasi itu sendiri.

Mengikuti langkah‑langkah ini akan memberi organisasi anda saluran DPS yang siap diproduksi dalam masa 6‑8 minggu.

---

## 10. Arah Masa Depan

1. **Pembelajaran Bersekutu** – Latih penyesuai LLM khusus domain tanpa memindahkan telemetri mentah keluar dari firewall korporat.  
2. **Privasi Diferensial** – Tambah bunyi pada skor risiko sebelum sampai ke penjana prompt, mengekalkan kerahsiaan sambil mengekalkan kegunaan.  
3. **Bukti Tanpa Pengetahuan** – Benarkan vendor mengesahkan bahawa jawapan selaras dengan model risiko tanpa mendedahkan data asas.  

Bidang penyelidikan ini menjanjikan agar Sintesis Dasar Dinamik menjadi lebih selamat, telus, dan mesra pengawal selia.

---

## 11. Kesimpulan

Sintesis Dasar Dinamik mengubah tugas membosankan menjawab soal selidik keselamatan menjadi **perkhidmatan masa nyata, berasaskan bukti**. Dengan menggabungkan telemetri risiko langsung, enjin konteks, dan LLM berkuasa dalam aliran kerja yang diorkestrasikan, organisasi dapat memangkas masa tanggapan secara drastik, mengekalkan pematuhan berterusan, dan menyediakan auditor dengan bukti tidak dapat diubah tentang ketepatan. Bila digabungkan dengan Procurize, DPS menjadi kelebihan kompetitif—menukar data risiko menjadi aset strategik yang mempercepatkan perjanjian dan membina kepercayaan.