
# Dynamická syntéza politík s LLM a kontextom rizika v reálnom čase

**Abstrakt** – Dotazníky o bezpečnosti dodávateľov sú notoricky úzkym hrdlom pre SaaS spoločnosti. Tradičné statické repozitáre udržujú politiky zamknuté v čase, čo núti tímy manuálne upravovať odpovede vždy, keď sa objaví nový signál rizika. Tento článok predstavuje *Dynamickú syntézu politík* (DPS), návod, ktorý spája veľké jazykové modely (LLM), kontinuálnu telemetriu rizík a udalosťami riadenú vrstvu orchestrácie, aby na požiadanie produkoval aktuálne, kontextovo‑vedomé odpovede. Na konci čítania pochopíte hlavné komponenty, dátový tok a praktické kroky na implementáciu DPS na platforme Procurize.

---

## 1. Prečo statické knižnice politík zlyhávajú pri moderných auditoch

1. **Latencia zmien** – Novoobjavená zraniteľnosť v komponentoch tretích strán môže anulovať klauzulu, ktorá bola schválená pred šiestimi mesiacmi. Statické knižnice vyžadujú manuálny cyklus úprav, ktorý môže trvať dni.  
2. **Nesúlad kontextu** – Rovnaká kontrola môže byť interpretovaná inak v závislosti od aktuálneho hroziaceho prostredia, zmluvného rozsahu alebo geografických regulácií.  
3. **Tlak škálovateľnosti** – Rýchlo rastúce SaaS firmy dostávajú desiatky dotazníkov za týždeň; každá odpoveď musí byť v súlade s najnovšou rizikovou postojou, čo je pri manuálnych procesoch nemožné garantovať.

Tieto bolesti nasadenia vyžadujú *adaptívny* systém, ktorý dokáže **sťahovať** a **odosielať** rizikové poznatky v reálnom čase a automaticky ich prekladať do súladnej politickej terminológie.

---

## 2. Základné piliere Dynamickej syntézy politík

| Pilier | Funkcia | Typický technologický stack |
|--------|----------|-----------------------------|
| **Zber rizikovej telemetrie** | Streamuje kanály zraniteľností, hrozieb‑intel a interné bezpečnostné metriky do jednotného dátového jazera. | Kafka, AWS Kinesis, ElasticSearch |
| **Context Engine** | Normalizuje telemetriu, obohacuje ju o inventár aktív a počíta *rizikové skóre* pre každú doménu kontroly. | Python, Pandas, Neo4j Knowledge Graph |
| **Generátor promptov LLM** | Vytvára doménovo‑špecifické prompti, ktoré zahŕňajú najnovšie rizikové skóre, regulačné referencie a šablóny politík. | OpenAI GPT‑4, Anthropic Claude, LangChain |
| **Vrstva orchestrácie** | Koordinuje spúšťače udalostí, spúšťa LLM, ukladá vygenerovaný text a notifikuj reviewerov. | Temporal.io, Airflow, Serverless Functions |
| **Auditná stopa & verzovanie** | Ukladá každú vygenerovanú odpoveď s kryptografickými hashmi pre auditovateľnosť. | Git, Immutable Object Store (napr. S3 s Object Lock) |

Spoločne tvoria uzavretú slučku, ktorá transformuje surové rizikové signály na premyslené, pripravené odpovede do dotazníkov.

---

## 3. Ilustrovaný tok dát

```mermaid
flowchart TD
    A["Zdroje rizikových kanálov"] -->|Kafka Stream| B["Surová telemetrická jazera"]
    B --> C["Normalizácia a obohatenie"]
    C --> D["Engine na skórovanie rizík"]
    D --> E["Balík kontextu"]
    E --> F["Staviteľ promptov"]
    F --> G["LLM (GPT‑4)"]
    G --> H["Návrh klauzuly politiky"]
    H --> I["Centrum ľudského revízie"]
    I --> J["Úložisko schválených odpovedí"]
    J --> K["Užívateľské rozhranie dotazníka Procurize"]
    K --> L["Odovzdanie dodávateľom"]
    style A fill:#f9f,stroke:#333,stroke-width:2px
    style L fill:#9f9,stroke:#333,stroke-width:2px
```

*Každý text uzla je uzavretý v dvojitých úvodzovkách, ako je požadované.*

---

## 4. Vytváranie generátora promptov

Kvalitný prompt je tajným ingredienciou. Nižšie je ukážka Pythonu, ktorá demonštruje, ako zostaviť prompt, ktorý spája rizikový kontext s opätoviteľnou šablónou.

```python
import json
from datetime import datetime

def build_prompt(risk_context, template_id):
    # Načítaj uloženú šablónu klauzuly
    with open(f"templates/{template_id}.md") as f:
        template = f.read()

    # Vlož rizikové premenné
    prompt = f"""
You are a compliance specialist drafting a response for a security questionnaire.
Current risk score for the domain "{risk_context['domain']}" is {risk_context['score']:.2f}.
Relevant recent alerts: {", ".join(risk_context['alerts'][:3])}
Regulatory references: {", ".join(risk_context['regulations'])}

Using the following template, produce a concise, accurate answer that reflects the latest risk posture.

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

# Example usage
risk_context = {
    "domain": "Data Encryption at Rest",
    "score": 0.78,
    "alerts": ["CVE‑2024‑1234 affecting AES‑256 modules", "New NIST guidance on key rotation"],
    "regulations": ["ISO 27001 A.10.1", "PCI DSS 3.2"]
}
print(build_prompt(risk_context, "encryption_response"))
```

Vygenerovaný prompt sa potom odovzdá LLM prostredníctvom API volania a vrátený text sa uloží ako *návrh*, ktorý čaká na rýchle ľudské schválenie.

---

## 5. Orchestrácia v reálnom čase s Temporal.io

Temporal poskytuje workflow‑as‑code, ktorý nám umožňuje definovať spoľahlivú, odolnú voči chybám pipeline.

```goat
workflow DynamicPolicyWorkflow(riskEvent RiskEvent, questionnaireID string) {
    // Krok 1: Vytvor balík kontextu
    contextPkg := Activity(BuildContextPackage, riskEvent)

    // Krok 2: Vytvor LLM prompt
    prompt := Activity(BuildPrompt, contextPkg, questionnaireID)

    // Krok 3: Zavolaj LLM
    draft := Activity(CallLLM, prompt)

    // Krok 4: Ulož návrh a notifikuj reviewerov
    Activity(StoreDraftAndNotify, draft, questionnaireID)

    // Voliteľne: Automatické schválenie, ak je rizikové skóre < 0.2
    if contextPkg.Score < 0.2 {
        Activity(AutoApprove, draft, questionnaireID)
    }
}
```

Workflow garantuje exactly‑once vykonanie, automatické opakovanie pri prechodných zlyhaniach a transparentnú viditeľnosť cez Temporal UI – čo je kľúčové pre audítorov súladu.

---

## 6. Riadenie Human‑In‑The‑Loop (HITL)

Aj ten najlepší LLM môže „halucinovať“. DPS preto zahrňuje ľahký HITL krok:

1. **Reviewer dostane notifikáciu v Slack/Teams** s pohľadom bok po boku na návrh a podkladový rizikový kontext.  
2. **Jedným kliknutím schváli** a zapíše finálnu odpoveď do nemenného úložiska a aktualizuje UI dotazníka.  
3. **Zamietnutie** spustí spätnú väzbu, ktorá anotuje prompt, čím zlepšuje budúce generácie.

Auditné logy zaznamenávajú ID reviewera, časovú značku a kryptografický hash schválenej textovej verzie, čím spĺňajú požiadavky [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) a [ISO 27001](https://www.iso.org/standard/27001).

---

## 7. Verzovanie a auditovateľné dôkazy

Každá vygenerovaná klauzula je commitnutá do Git‑kompatibilného úložiska s nasledujúcimi metadátami:

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

Nemenné úložisko (S3 Object Lock) zabezpečuje, že dôkazy nie je možné po uložení meniť, čím poskytuje pevný reťazec vlastníctva pre audity.

---

## 8. Kvantifikované prínosy

| Metrika | Pred DPS | Po DPS (12 mesiacov) |
|--------|----------|----------------------|
| Priemerná doba odozvy | 3.2 dňa | 3.5 hodiny |
| Úsilie ľudského editovania | 25 h za týždeň | 6 h za týždeň |
| Medzery v auditových dôkazoch | 12 % | <1 % |
| Pokrytie súladu (kontroly) | 78 % | 96 % |

Tieto čísla pochádzajú z pilotného nasadenia u troch stredne veľkých SaaS firiem, ktoré integrovali DPS do svojho prostredia Procurize.

---

## 9. Kontrolný zoznam implementácie

- **[ ]** Nastaviť streaming platformu (Kafka) pre rizikové kanály.  
- **[ ]** Vybudovať Neo4j knowledge graph spájajúci aktíva, kontrole a hrozby.  
- **[ ]** Vytvoriť opätoviteľné šablóny klauzúl uložené v Markdown.  
- **[ ]** Nasadiť micro‑service na tvorbu promptov (Python/Node).  
- **[ ]** Zabezpečiť prístup k LLM (OpenAI, Azure OpenAI, atď.).  
- **[ ]** Nakonfigurovať Temporal workflow alebo Airflow DAG.  
- **[ ]** Integrovať s UI recenzie odpovedí v Procurize.  
- **[ ]** Aktivovať nemenné logovanie (Git + S3 Object Lock).  
- **[ ]** Vykonať bezpečnostnú revíziu samotného orchestrátorského kódu.

Po splnení týchto krokov bude vaša organizácia pripravená na produkčnú DPS pipeline v horizonte 6‑8 týždňov.

---

## 10. Budúce smery

1. **Federované učenie** – Trénovať doménovo‑špecifické adaptéry LLM bez presunu surových dát mimo firemnej brány.  
2. **Differenciálna súkromnosť** – Pridať šum do rizikových skóre pred ich vstupom do generátora promptov, čím sa zachová dôvernosť pri zachovaní užitočnosti.  
3. **Zero‑Knowledge Proofs** – Umožniť dodávateľom overiť, že odpoveď zodpovedá rizikovému modelu, bez odhalenia samotných dát.  

Tieto výskumné smerovania sľubujú, že Dynamická syntéza politík bude ešte viac bezpečná, transparentná a priateľská k regulátorom.

---

## 11. Záver

Dynamická syntéza politík transformuje únavnú, náchylnú na chyby úlohu odpovedania na bezpečnostné dotazníky na **službu v reálnom čase, podloženú dôkazmi**. Spojením živých rizikových signálov, kontextového engine a výkonných LLM v rámci orchestrovanej pipeline môžu organizácie dramaticky skrátiť časy odozvy, udržiavať kontinuálny súlad a poskytovať auditorom nemenné dôkazy o presnosti. V kombinácii s Procurize sa DPS stáva konkurenčnou výhodou – premieňa rizikové dáta na strategický majetok, ktorý urýchľuje uzatváranie obchodov a buduje dôveru.