
# AI rozhodovací engine pre real‑time prioritizáciu dotazníkov dodávateľov a hodnotenie rizika

Bezpečnostné dotazníky, audity compliance a hodnotenia dodávateľov sú nevyhnutnými kontrolnými bodmi pre každú B2B SaaS transakciu. Manuálna triáž prichádzajúcich požiadaviek však často vytvára skrytý náklad: oneskorené obchody, fragmentovaný prehľad o riziku a preťažené tímy compliance. **Procurize** už poskytuje jednotný hub na organizovanie dotazníkov, ale ďalším evolučným krokom je *vrstva rozhodovania*, ktorá vie **ktorý** dotazník riešiť **kedy**, a **ako** rizikový je každý dodávateľ.

Tento článok vás prevedie dizajnom, implementáciou a obchodným dopadom **AI rozhodovacieho engine**, ktorý:

1. **Prijíma** signály od dodávateľov v reálnom čase ([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) správy, [ISO 27001](https://www.iso.org/standard/27001) certifikáty, [GDPR](https://gdpr.eu/) DPO atestácie).  
2. **Hodnotí** riziko pomocou hybridného Graph Neural Network (GNN) + Bayesovského modelu.  
3. **Prioritizuje** priradenia dotazníkov prostredníctvom posilňovacieho učenia (reinforcement‑learning).  
4. **Zasiela** rozhodnutia späť do spolupracovného pracovného priestoru Procurize pre bezproblémovú exekúciu.

Na konci porozumiete, ako premeniť more požiadaviek na dátovo‑riadený, neustále optimalizovaný pracovný tok, ktorý skráti reakčný čas až o **70 %** a zároveň zvýši presnosť odpovedí.

---

## Prečo je dôležitá real‑time prioritizácia

| Problém | Konvenčný prístup | Transformácia pomocou AI |
|------------|------------------------|---------------------------|
| **Náhle nárasty objemu** počas kolá financovania alebo spustení produktov | Fronta podľa princípu kto prvý, ten prvý | Dynamické plánovanie podľa záťaže |
| **Slepé miesta v riziku** – tímy ošetrovali všetkých dodávateľov rovnako | Manuálne hodnotenie rizika (často zastarané) | Kontinuálne hodnotenie rizika s živými dátami |
| **Plývanie zdrojmi** – junior analytici odpovedajú na dotazníky s nízkym dopadom | Priradenie na základe pravidiel | Priradenie úloh podľa zručností |
| **Odpor v obchode** – pomalé odpovede spôsobujú stratené príležitosti | Reaktívne doplnenie | Proaktívne upozornenia na dodávateľov s vysokou hodnotou |

Rozhodovací engine eliminuje princíp „jedna veľkosť pre všetkých“ tým, že neustále prehodnocuje **riziko dodávateľa** aj **kapacitu tímu**. Výsledkom je *živý zoznam priorít*, ktorý sa mení s príchodom nových dôkazov – presne to, čo potrebujú moderné organizácie orientované na bezpečnosť.

---

## Prehľad architektúry

Nižšie je vysoká úroveň diagramu Mermaid, ktorý ilustruje hlavné komponenty a dátové toky AI rozhodovacieho engine, úzko integrovaného s platformou Procurize.

```mermaid
graph LR
    subgraph Data Ingestion
        A[""Real‑Time Vendor Signals""]
        B[""Policy Repository""]
        C[""Threat Intel Feed""]
        A --> D[""Event Stream (Kafka)""]
        B --> D
        C --> D
    end

    subgraph Risk Scoring
        D --> E[""Feature Store (Delta Lake)""]
        E --> F[""Hybrid GNN + Bayesian Model""]
        F --> G[""Risk Score (0‑100)""]
    end

    subgraph Prioritization Scheduler
        G --> H[""Reinforcement Learning Agent""]
        H --> I[""Priority Queue""]
        I --> J[""Task Dispatcher (Procurize)""]
    end

    subgraph Feedback Loop
        J --> K[""User Action & Feedback""]
        K --> L[""Reward Signal (RL)""]
        L --> H
    end
```

*Všetky popisy uzlov sú dvojitými úvodzovkami, ako to vyžaduje syntax Mermaid.*

### Kľúčové prvky

1. **Event Stream** – Apache Kafka (alebo Pulsar) zachytáva každú zmenu: nové auditná správa, upozornenia na zraniteľnosti, aktualizácie zmlúv.  
2. **Feature Store** – Centralizovaný Delta Lake uchováva inžinierované featury (napr. vek dodávateľa, zrelosť kontrol, úroveň expozície).  
3. **Hybridná GNN + Bayesovský model** – GNN šíri riziko naprieč znalostným grafom prepojených kontrol, zatiaľ čo Bayesovská časť vkladá regulatórne znalosti ako prior.  
4. **RL Scheduler** – Algoritmus typu multi‑armed bandit sa učí, ktoré úpravy priorít vedú k najrýchlejšiemu *uzavretiu obchodu* alebo *zníženiu rizika*, pomocou odmien zo spätnej väzby v reálnom svete.  
5. **Task Dispatcher** – Využíva API Procurize na priame posielanie vysokoprioritných tiketov s dotazníkmi do dashboardu príslušného stakeholdera.

---

## Prijímanie dát v reálnom čase

### 1. Signály od dodávateľov

- **Compliance artefakty**: [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) Type II, [ISO 27001](https://www.iso.org/standard/27001) certifikáty, [GDPR](https://gdpr.eu/) DPO atestácie.  
- **Operačná telemetria**: CloudTrail logy, SIEM alarmy, inventár majetku.  
- **Externý intel**: CVE feedy, monitorovanie temnej siete, skóre rizika tretích strán.

Všetky signály sa normalizujú do **kanonického JSON schémy** a publikujú do Kafka topicov `vendor.signals`, `policy.updates` a `threat.intel`.

### 2. Inžinierstvo vlastností

Spark Structured Streaming úloha neustále obohacuje surové udalosti:

```python
from pyspark.sql import functions as F

# Príklad: výpočet dní od posledného auditu
df = spark.readStream.format("kafka").option("subscribe", "vendor.signals").load()
parsed = df.selectExpr("CAST(value AS STRING) as json").select(F.from_json("json", schema).alias("data"))
features = parsed.withColumn(
    "days_since_audit",
    F.datediff(F.current_date(), F.col("data.last_audit_date"))
)
features.writeStream.format("delta").option("checkpointLocation", "/tmp/checkpoints").start("/mnt/feature-store")
```

Výsledná **Delta Lake tabuľka** sa stáva zdrojom pre rizikový model.

---

## AI motor hodnotenia rizika

### Hybridná grafová neurónová sieť

Graf poznatkov dodávateľ‑kontrola spája entity:

- **Dodávateľ → Kontroly** (napr. „Dodávateľ X používa šifrovanie na disku“).  
- **Kontrola → Regulácia** (napr. „Šifrovanie spĺňa GDPR Art. 32“).  
- **Kontrola → Dôkaz** (napr. „Dôkaz #1234“).

Pomocou **PyG** (PyTorch Geometric) dvojvrstvová GCN šíri rizikové skóre:

```python
import torch
from torch_geometric.nn import GCNConv

class RiskGNN(torch.nn.Module):
    def __init__(self, in_dim, hidden_dim, out_dim):
        super().__init__()
        self.conv1 = GCNConv(in_dim, hidden_dim)
        self.conv2 = GCNConv(hidden_dim, out_dim)

    def forward(self, x, edge_index):
        x = torch.relu(self.conv1(x, edge_index))
        x = torch.sigmoid(self.conv2(x, edge_index))
        return x
```

Výstup `x` predstavuje **normované riziko** pre každý uzol typu dodávateľ.

### Bayesovská priorová vrstva

Regulační experti poskytujú **priory** (napr. „Všetci dodávatelia spracúvajúci PHI začínajú so základným rizikom 0,65“). Bayesovská aktualizácia spája tieto priory s posteriorom z GNN:

\[
P(Risk | Data) = \frac{P(Data | Risk) \cdot P(Risk)}{P(Data)}
\]

Implementácia využíva `pymc3` na vzorkovanie posteriorových rozdelení, pričom spolu so strednou hodnotou poskytuje **interval spoľahlivosti**.

---

## Plánovač priorít s posilňovacím učením

### Formulácia multi‑armového banditu

Každá **ruka** (arm) predstavuje úroveň priority (napr. **Urgent**, **High**, **Medium**, **Low**). Agent vyberá úroveň pre konkrétny tiket, pozoruje **odmenu** (uzavretý obchod, znížené riziko, spokojnosť analytika) a aktualizuje politiku.

```python
import numpy as np

class BanditAgent:
    def __init__(self, n_arms=4):
        self.n = n_arms
        self.counts = np.zeros(n_arms)
        self.values = np.zeros(n_arms)

    def select_arm(self):
        epsilon = 0.1
        if np.random.rand() > epsilon:
            return np.argmax(self.values)
        else:
            return np.random.randint(0, self.n)

    def update(self, chosen_arm, reward):
        self.counts[chosen_arm] += 1
        n = self.counts[chosen_arm]
        value = self.values[chosen_arm]
        self.values[chosen_arm] = ((n - 1) / n) * value + (1 / n) * reward
```

**Odmena** agreguje viacero KPI:

- **Čas‑do‑odpovede (TTA)** – zníženie.  
- **Zladenie s rizikovým skóre** – ako dobre odpoveď zmierňuje vypočítané riziko.  
- **Skóre spätnej väzby používateľa** – hodnotenie analytika o relevantnosti úlohy.

### Neustále učenie

Každých 5 minút agent načíta najnovší batch odmien z **Delta Lake tabuľky odmien**, pretrénuje politiku a nasadí ju do služby **Priority Queue**, čím okamžite ovplyvní nasledujúce priradenia.

---

## Integrácia s Procurize

Procurize už poskytuje:

- **`/api/v1/questionnaires`** – zoznam, tvorbu, úpravu dotazníkov.  
- **`/api/v1/tasks/assign`** – priradenie dotazníka používateľovi/tímu.  
- Webhooky pre udalosti dokončenia úloh.

Rozhodovací engine konzumuje tieto API pomocou ľahkého **FastAPI** wrapperu:

```python
import httpx

async def dispatch_task(vendor_id, priority):
    payload = {
        "vendor_id": vendor_id,
        "priority": priority,
        "due_date": (datetime.utcnow() + timedelta(days=2)).isoformat()
    }
    async with httpx.AsyncClient() as client:
        await client.post("https://api.procurize.com/v1/tasks/assign", json=payload, headers=auth_header)
```

Keď je dotazník označený ako **dokcompleted**, webhook Procurize aktualizuje tabuľku odmien, čím uzavrie spätnú slučku.

---

## Obchodné výhody

| Metrika | Pred engine | Po engine (30 dní) |
|--------|--------------|---------------------|
| Priemerný TTA na dotazník | 4,3 dňa | **1,2 dňa** |
| % vysokorizikových dodávateľov riešených do 48 h | 22 % | **68 %** |
| Spokojnosť analytikov (1‑5) | 3,1 | **4,6** |
| Nárast rýchlosti uzavretia obchodov (won‑rate) | 31 % | **45 %** |

Kombinovaný efekt rýchlejších odpovedí, lepšieho zladenia s rizikom a spokojnejších tímov sa premieta do merateľného zvýšenia príjmov a zníženia compliance rizika.

---

## Implementačná cesta (12‑týždňová sprint)

| Týždeň | Milník |
|--------|--------|
| 1‑2 | Nastavenie Kafka topicov, definícia schémy signálov od dodávateľov |
| 3‑4 | Vytvorenie Delta Lake feature store, napísanie streaming úloh |
| 5‑6 | Vývoj GNN modelu, trénovanie na historických dátach dotazníkov |
| 7 | Pridanie Bayesovskej prior vrstvy, kalibrácia prahov spoľahlivosti |
| 8‑9 | Implementácia bandit scheduler, integrácia zberu odmien |
| 10 | Prepojenie s API Procurize, test end‑to‑end priradenia úloh |
| 11 | A/B pilot s podmnožinou analytikov compliance |
| 12 | Globálne nasadenie, nastavenie monitorovacích a alertovacích dashboardov |

Kľúčové kritériá úspechu zahŕňajú **latenciu modelu < 500 ms**, **konvergenciu scheduleru do 200 interakcií**, a **≥ 80 % kvality dát** vo feature store.

---

## Budúci výhľad

1. **Rozšírenie o federované učenie** – umožniť viacerým SaaS partnerom spoločne zlepšovať model rizika bez zdieľania surových dát.  
2. **Vrstva Explainable AI** – generovať prirodzené vysvetlenia (napr. „Dodávateľ X má vysoké skóre, pretože bol nedávno zaznamenaný v CVE‑2024‑1234“).  
3. **Integrácia Zero‑Trust** – prepojiť engine s Zero‑Trust sieťou a automaticky poskytovať najnižšie oprávnenia pre získavanie dôkazov.  
4. **Digitálny dvojník regulácií** – simulovať budúce scenáre regulácií a predvídať potreby prekladu priorít dotazníkov.

Rozhodovací engine sa tak stáva **mozgom** proaktívneho compliance ekosystému – posúva riešenie dotazníkov od reaktívneho odpovedania k anticipačnému riadeniu rizík.

---

## Záver

Automatizovať odpovede na dotazníky je len polovica boja. Skutočná konkurenčná výhoda spočíva v **vedení vedieť, ktorý dotazník vyriešiť najskôr a prečo**. Spojením prijímania dát v reálnom čase, graf‑založeného hodnotenia rizika a posilňovacím učením riadiacim prioritami, AI rozhodovací engine premieňa funkciu compliance z úzkeho hrdla na strategický akcelerátor.

Implementácia tohto engine na vrchole spolupracovateľnej platformy Procurize umožňuje bezpečnostným, právnym a predajným tímom pracovať v súlade, uzatvárať obchody rýchlejšie a predvídať neustále sa meniacich regulačných požiadaviek. V svete, kde sekundy rozhodujú, je AI‑riadená, rizikovo‑vedomá priorita zoznamu nevyhnutnou vrstvou modernej automatizácie compliance.

---

## Pozri tiež

- [NIST SP 800‑53 Rev 5 – Risk Management Framework](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- [ISO/IEC 27001:2022 – Information Security Management](https://www.iso.org/standard/73906.html)  
- [Google Cloud Blog: Building Real‑Time ML Pipelines with Kafka and Vertex AI](https://cloud.google.com/blog/topics/inside-google-cloud/building-real-time-ml-pipelines)