
# AI döntési motor valós‑időben a beszállítói kérdőív priorizálásához és kockázati pontozáshoz

A biztonsági kérdőívek, megfelelőségi auditok és beszállítói értékelések minden B2B SaaS tranzakció alapvető kapuai. A bejövő kérések manuális szűrése azonban gyakran rejtett költséget teremt: késleltetett üzletkötések, töredezett kockázati betekintés és túlterhelt megfelelőségi csapatok. A **Procurize** már most egységes hubot biztosít a kérdőívek szervezéséhez, de a következő evolúciós lépés egy *döntéshozó réteg*, amely tudja, **melyik** kérdőívet kell **mikor** megoldani, és **mennyire** kockázatos valójában egy adott beszállító.

Ez a cikk bemutatja egy **AI döntési motor** tervezését, megvalósítását és üzleti hatását, amely:

1. **Beépíti** a beszállítói jeleket valós‑időben ([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) jelentések, [ISO 27001](https://www.iso.org/standard/27001) tanúsítványok, [GDPR](https://gdpr.eu/) DPO nyilatkozatok).  
2. **Pontozza** a kockázatot egy hibrid Graph Neural Network (GNN) + Bayes‑i modell segítségével.  
3. **Prioritálja** a kérdőív feladatokat egy megerősítés‑tanulású ütemezővel.  
4. **Visszajuttatja** a döntéseket a Procurize együttműködő munkaterületére a zökkenőmentes végrehajtásért.

A végére megérti, hogyan lehet egy kérésövsényt adat‑vezérelt, folyamatosan optimalizált munkafolyamattá alakítani, amely akár **70 %**‑kal csökkenti a válaszadási ciklusokat, miközben növeli a válasz pontosságát.

---

## Miért fontos a valós‑idő priorizálás

| Probléma | Hagyományos megközelítés | AI‑alapú átalakulás |
|----------|--------------------------|----------------------|
| **Mennyiség‑csúcsok** finanszírozási körök vagy termékindítások során | Első beérkezőként sor | Dinamikus, terhelés‑tudatos ütemezés |
| **Kockázati sötétfoltok** – a csapatok minden beszállítót egyenlően kezelnek | Manuális kockázati besorolás (gyakran elavult) | Folyamatos kockázati pontozás élő adatokkal |
| **Erőforrás-pazarlás** – junior elemzők válaszolnak alacsony hatású kérdőívekre | Szabály‑alapú feladatkiosztás | Készség‑alapú feladatkiosztás |
| **Üzlet-rezgés** – lassú válaszok elveszten lehetőségeket | Reaktív nyomon követés | Proaktív riasztások magas értékű beszállítókra |

Egy döntési motor megtöri a „minden beszállító egyforma” gondolkodást, folyamatosan újraértékeli a **beszállítói kockázatot** és a **csapatkapacitást**. Az eredmény egy *élő prioritási lista*, amely új bizonyítékok megjelenésekor is fejlődik – pontosan amire a modern, biztonság‑első szervezeteknek szükségük van.

---

## Architektúra áttekintése

Az alábbi magas szintű Mermaid diagram ábrázolja az AI döntési motor fő komponenseit és adatfolyamát, szorosan integrálva a meglévő Procurize platformmal.

```mermaid
graph LR
    subgraph Data Ingestion
        A[""Valós‑idő beszállítói jelek""]
        B[""Szabályzat-tár""]
        C[""Fenyegetés‑intelligencia feed""]
        A --> D[""Esemény‑stream (Kafka)""]
        B --> D
        C --> D
    end

    subgraph Risk Scoring
        D --> E[""Jellemző‑tár (Delta Lake)""]
        E --> F[""Hibrid GNN + Bayes‑i modell""]
        F --> G[""Kockázati pontszám (0‑100)""]
    end

    subgraph Prioritization Scheduler
        G --> H[""Megerősítés‑tanulás ügynök""]
        H --> I[""Prioritási sor""]
        I --> J[""Feladat‑kiosztó (Procurize)""]
    end

    subgraph Feedback Loop
        J --> K[""Felhasználói művelet és visszajelzés""]
        K --> L[""Jutalom‑jel (RL)""]
        L --> H
    end
```

*Az összes csomópont címkéje dupla idézőjelben van a Mermaid szintaxis követelménye szerint.*

### Kulcselemek

1. **Esemény‑stream** – Apache Kafka (vagy Pulsar) rögzíti minden változást: új audit‑jelentések, sebezhetőség‑riasztások, szerződés‑frissítések.  
2. **Jellemző‑tár** – Központosított Delta Lake tárolja a megmunkált jellemzőket (pl. beszállító kora, kontroll érettsége, kitettségi szint).  
3. **Hibrid GNN + Bayes‑i modell** – A GNN a kockázatot terjeszti egy ismeretségi gráfon, míg a Bayes‑i komponens szabályozási tudást juttat be.  
4. **RL ütemező** – Egy többpálcás bandita algoritmus tanulja, mely prioritási módosítások vezetnek a leggyorsabb *üzlet‑lezáráshoz* vagy *kockázat‑csökkentéshez*, a visszacsatolásból származó jutalmakat felhasználva.  
5. **Feladat‑kiosztó** – A Procurize API‑ját használva a motor közvetlenül a megfelelő érintett felhasználó műszerfalára küldi a magas prioritású kérdőív jegyeket.

---

## Valós‑idő adatbevitel

### 1. Beszállítói jelek

- **Megfelelőségi artefaktumok**: SOC 2 Type II, ISO 27001 tanúsítványok, GDPR DPO nyilatkozatok.  
- **Operatív telemetria**: CloudTrail naplók, SIEM riasztások, eszköz‑leltárak.  
- **Külső intelligencia**: CVE feedek, dark‑web incidens‑monitorok, harmadik‑fél kockázati pontszámok.

Minden jel canonical JSON sémába normalizálva kerül publikálásra a Kafka topikokba: `vendor.signals`, `policy.updates` és `threat.intel`.

### 2. Jellemző‑készítés

Egy Spark Structured Streaming feladat folyamatosan gazdagítja a nyers eseményeket:

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

# Példa: számítsa ki az utolsó audit óta eltelt napok számát
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")
```

Az eredményül kapott **Delta Lake táblát** használja a kockázati modell.

---

## AI kockázati pontozó motor

### Hibrid Graph Neural Network

A beszállító‑kontroll tudásgráf a következő entitásokat kapcsolja össze:

- **Beszállító → Kontrollok** (pl. „Beszállító X alkalmaz titkosítást lemezre”).  
- **Kontrol → Szabályozás** (pl. „A titkosítás GDPR 32. cikket elégíti ki”).  
- **Kontrol → Bizonyíték** (pl. „Bizonyíték #1234”).

A **PyG** (PyTorch Geometric) segítségével egy kétszintű GCN terjeszti a kockázati értékeket:

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

A kimeneti vektor `x` a **normalizált kockázat** minden beszállítói csomópont esetén.

### Bayes‑i előzetes réteg

A szabályozási szakértők **előzetes** értékeket adnak (pl. „Minden PHI‑t kezelő beszállító alap kockázata 0,65”). Egy Bayes‑i frissítés egyesíti ezeket az előzeteseket a GNN posteriorival:

\[
P(Kockázat \mid Adat) = \frac{P(Adat \mid Kockázat) \cdot P(Kockázat)}{P(Adat)}
\]

Az implementáció a `pymc3`‑at használja, és pontbecslés mellett **bizonytalansági intervallumot** is biztosít.

---

## Prioritási ütemező megerősítés‑tanulással

### Többpálcás bandita formulázás

Minden **kar** egy prioritási szintnek (pl. **Sürgős**, **Magas**, **Közép**, **Alacsony**) felel meg. Az ügynök egy szintet választ, megfigyel egy **jutalmat** (üzlet lezárva, kockázat csökkentve, elemzői elégedettség), és frissíti politikáját.

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

A **jutalom‑jel** több KPI‑t aggregál:

- **Válasz‑idő (TTA)** csökkenése.  
- **Kockázati‑pontszám‑összhang** (mennyire csökkenti a válasz a kalkulált kockázatot).  
- **Felhasználói visszajelzés** (elemzői értékelés a feladat relevanciájáról).

### Folyamatos tanulás

Minden 5 percben a RL‑ügynök a legújabb jutalom‑táblát (Delta Lake) használva újratanul, majd a frissített politikát a **Prioritási sor** szolgáltatásba tolja, azonnal befolyásolva a következő feladatkiosztásokat.

---

## Integráció a Procurize‑sel

A Procurize már most biztosítja az alábbi API‑kat:

- **`/api/v1/questionnaires`** – kérdőívek listázása, létrehozása, frissítése.  
- **`/api/v1/tasks/assign`** – kérdőív feladat kiosztása felhasználó/csapat számára.  
- Webhook‑ok a feladat befejezéséhez.

A döntési motor ezeket a FastAPI‑val könnyen fogyasztja:

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

Amikor egy kérdőívet **befejeznek**, a Procurize webhook‑ja frissíti a jutalom‑táblát, ezzel lezárva a visszacsatolási hurokot.

---

## Üzleti előnyök

| Méret | Mielőtt a motorral | 30 nap után |
|-------|---------------------|--------------|
| Átlagos válaszidő kérdőívre | 4,3 nap | **1,2 nap** |
| **Magas kockázatú** beszállítók 48 órán belüli kezelése | 22 % | **68 %** |
| Elemzői elégedettség (1‑5) | 3,1 | **4,6** |
| Üzletsebesség növekedés (nyert arány) | 31 % | **45 %** |

A **többszörös hatás** – gyorsabb válaszok, jobb kockázat‑illeszkedés és elégedettebb elemzők – mérhető bevételnövekedést és csökkentett megfelelőségi felelősséget eredményez.

---

## Megvalósítási ütemterv (12‑hétes sprint)

| Hét | Mérföldkő |
|-----|-------------|
| 1‑2 | Kafka topikok felállítása, beszállítói jel sémájának definiálása |
| 3‑4 | Delta Lake jellemző‑tár kiépítése, streaming feladatok írása |
| 5‑6 | GNN modell fejlesztése, historikus kérdőív adatokon történő tanítás |
| 7 | Bayes‑i előzetes réteg hozzáadása, konfidenciaküszöb kalibrálása |
| 8‑9 | Bandita ütemező implementálása, jutalomgyűjtés integrálása |
| 10 | Procurize API‑k csatlakoztatása, vég‑től‑vég teszt |
| 11 | A/B pilot egy kisebb megfelelőségi elemző csoporttal |
| 12 | Globális bevezetés, monitor‑ és riasztási dashboardok kiépítése |

Kulcs‑siker‑kritériumok: **modell késleltetés < 500 ms**, **ütemező konvergencia 200 interakción belül**, **adat‑minőség ≥ 80 %** a jellemző‑tárban.

---

## Jövőbeli kilátások

1. **Föderált tanulás kiterjesztése** – több SaaS partner együtt javíthatja a kockázati modellt anélkül, hogy nyers adatot osztana meg.  
2. **Explainable AI réteg** – természetes nyelvű indoklások generálása (pl. „A X beszállító magas pontszámot kapott a legutóbbi CVE‑2024‑1234 miatt”).  
3. **Zero‑Trust integráció** – a döntési motor együttműködik egy Zero‑Trust hálózattal, automatikusan a legkisebb jogosultságú hozzáférést biztosítja a bizonyíték‑lekérésekhez.  
4. **Szabályozási digitális iker** – szimulálja a jövőbeli szabályozási forgatókönyveket, és előre priorizálja a kérdőíveket.

A motor így a **kombinált intelligencia** a compliance funkció központi agyaként szolgál, átalakítva a reakció‑válaszadásból a proaktív kockázatkezelés felé.

---

## Összegzés

A kérdőív válaszok automatizálása csak a feladat egy részét oldja meg. Az igazi versenyelőny abban rejlik, hogy **tudjuk, melyik kérdőívet kell először megválaszolni, és miért**. A valós‑idő adatbevitel, grafikon‑alapú kockázati pontozás és megerősítés‑tanulás‑vezérelt priorizálás kombinálásával az AI döntési motor a megfelelőségi funkciót egy stratégiai gyorsítórá válik.

A Procurize együttműködő platformjára építve ez a motor lehetővé teszi a biztonsági, jogi és értékesítési csapatok szinkronizálását, a gyorsabb üzletkötések és a folyamatosan változó szabályozási környezet előtti előrelátó kockázatkezelés érdekében. Egy olyan világban, ahol a másodpercek számítanak, egy AI‑vezérelt, kockázat‑tudatos prioritási sor a modern compliance automatizáció következő nélkülözhetetlen rétege.

---

## Kapcsolódó anyagok

- [NIST SP 800‑53 Rev 5 – Kockázatkezelési keretrendszer](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- [ISO/IEC 27001:2022 – Információbiztonsági menedzsment](https://www.iso.org/standard/73906.html)  
- [Google Cloud Blog: Valós‑idő ML pipeline‑ok építése Kafka‑val és Vertex AI‑val](https://cloud.google.com/blog/topics/inside-google-cloud/building-real-time-ml-pipelines)