
# AI двигател за вземане на решения за приоритетизиране на въпросници за доставчици в реално време и оценка на риска

Сигурностните въпросници, одити за съответствие и оценки на доставчици са важни контролни точки за всяка B2B SaaS сделка. Ръчното триажиране на входящите заявки обаче често носи скрити разходи: забавени сделки, фрагментирана представа за риска и претоварени екипи по съответствие. **Procurize** вече предлага централизирана платформа за организиране на въпросници, но следващата еволюционна стъпка е *слой за вземане на решения*, който знае **кой** въпросник да се реши **кога** и **колко рисков** всъщност е даденият доставчик.

Тази статия ще ви проведе през проектирането, изпълнението и бизнес ефекта от **AI двигател за вземане на решения**, който:

1. **Приема** сигнали от доставчици в реално време (депозити от [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), сертификати по [ISO 27001](https://www.iso.org/standard/27001), атестати от DPO‑тата за [GDPR](https://gdpr.eu/)).  
2. **Оценява** риска чрез хибриден Graph Neural Network (GNN) + Байесов модел.  
3. **Приоритизира** разпределението на въпросници чрез подсилено‑обучен планировчик.  
4. **Връща** решенията обратно в съвместното работно пространство на Procurize за безпроблемно изпълнение.

До края ще разберете как да превърнете море от заявки в данни‑управляван, непрекъснато оптимизиран процес, който скъсява времето за отговор до **70 %** при едновременно увеличаване на точността на отговорите.

---

## Защо приоритетизирането в реално време е от значение

| Болка | Традиционен подход | AI‑трансформирана реалност |
|------|--------------------|----------------------------|
| **Висок обем** при раунди за финансиране или стартиране на продукти | Опашка „първи‑дошъл‑първи‑обслужен“ | Динамично планиране, съобразено с натоварването |
| **Слепи зони** в риска – екипите третират всички доставчици еднакво | Ръчно рейтингуване (често остаряло) | Непрекъсната оценка на риска с живи данни |
| **Разпиляване на ресурси** – млади аналитици отговарят на ниско‑влияещи въпросници | Правилно‑базирано разпределение | Задачите се съпоставят със специфични умения |
| **Трудности в сделките** – бавните отговори водят до изгубени възможности | Реактивно последващо действие | Проактивни известия за високоважни доставчици |

Двигателят за решения премахва мисленето „един‑размер‑подава‑всичко“, като постоянно преоценява **риска на доставчика** и **капацитета на екипа**. Резултатът е *жив списък с приоритети*, който се променя с всяка нова информация – точно това, от което се нуждаят модерните организации, ориентирани към сигурност.

---

## Обзор на архитектурата

По‑долу е показана високо‑ниво Mermaid диаграма, илюстрираща основните компоненти и потоците от данни на AI двигател за вземане на решения, твърдо интегриран с съществуващата платформа 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
```

*Всички етикети на възлите са двойно кавички, както е изискуемо от синтаксиса на Mermaid.*

### Ключови елементи

1. **Event Stream** – Apache Kafka (или Pulsar) улавя всяка промяна: нови одитни доклади, известия за уязвимости, актуализации на договори.  
2. **Feature Store** – Централизиран Delta Lake съхранява инженерираните характеристики (например възраст на доставчика, зрялост на контролите, ниво на излагане).  
3. **Hybrid GNN + Bayesian Model** – GNN‑ът разпространява риска през графа на познанията, докато Байесовият компонент вмъква предварителните регулаторни познания.  
4. **RL Scheduler** – Алгоритъм „много‑ръменното бандито“ се учи кои корекции на приоритетите водят до най‑бързо *заключване на сделка* или *намаляване на риска*, използвайки реалните награди от обратната връзка.  
5. **Task Dispatcher** – Чрез API‑то на Procurize, двигателят натиска високоприоритетни задачи за въпросници директно в таблото на съответния заинтересован.

---

## Приемане на данни в реално време

### 1. Сигнали от доставчици

- **Документи за съответствие**: [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) Type II, сертификати по [ISO 27001](https://www.iso.org/standard/27001), атестати за [GDPR](https://gdpr.eu/) от DPO.  
- **Оперативна телеметрия**: CloudTrail логове, SIEM известия, инвентар на активи.  
- **Външна интелигентност**: CVE потоци, наблюдение на тъмната мрежа, оценки от трети страни.

Всички сигнали се нормализират в **канонична JSON схема** и се публикуват в Kafka темите `vendor.signals`, `policy.updates` и `threat.intel`.

### 2. Инженеринг на характеристики

Spark Structured Streaming job непрекъснато обогатява суровите събития:

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

# Пример: изчисляване на дни от последен одит
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")
```

Получената **Delta Lake таблица** става източник за модела за риск.

---

## AI енджин за оценка на риска

### Хибриден Graph Neural Network

Графът на познанията за доставчици‑контроли свързва:

- **Доставчик → Контроли** (напр. “Доставчик X прилага шифроване‑в‑покой”).  
- **Контрол → Регулация** (напр. “Шифроването‑в‑покой отговаря на GDPR Art. 32”).  
- **Контрол → Доказателство** (напр. “Доказателство #1234”).

С помощта на **PyG** (PyTorch Geometric) двуслоен GCN разпространява оценките за риск:

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

Изходният вектор `x` представлява **нормализирана оценка за риск** за всеки възел‑доставчик.

### Байесов приоритетен слой

Регулаторните експерти предоставят **приори** (например “Всички доставчици, обработващи ПЛИ, започват с базова оценка 0.65”). Байесовото обновление комбинира тези приори с постериорото от GNN:

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

Имплементацията използва `pymc3`, за да извадим постериорни разпределения и да предоставим **интервал на доверие** заедно с точковата оценка.

---

## Планировчик за приоритети с подсилено обучение

### Формулировка на много‑ръменното бандито

Всяко **ръко** представлява приоритетна категория (например **Искрено**, **Висок**, **Среден**, **Нисък**). Агентът избира категория за конкретен въпросник, наблюдава **награда** (заключена сделка, намаление на риска, удовлетвореност на аналитика) и актуализира политиката си.

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

**Наградният сигнал** агрегира няколко KPI:

- **Съкращаване на време‑до‑отговор (TTA)**.  
- **Съгласуваност с оценката на риска** (колко добре отговорът намалява изчисления риск).  
- **Оценка от потребителя** (рейтинг от аналитика за релевантността на задачата).

### Непрекъснато учене

На всеки 5 минути RL агентът се пре‑обучава върху последната партида от награди, съхранявани в Delta Lake таблица за награди. Обновената политика се изпраща към **Priority Queue** услугата, като незабавно влияе върху следващия пакет задачи.

---

## Интеграция с Procurize

Procurize вече предоставя:

- **`/api/v1/questionnaires`** – листа, създаване, актуализиране на въпросници.  
- **`/api/v1/tasks/assign`** – разпределяне на въпросник към потребител/екип.  
- Уеб‑куки за събития при завършване на задачи.

AI двигателът ползва тези API‑та чрез леко обвиване с **FastAPI**:

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

Когато въпросникът се маркира като **завършен**, уеб‑кука на Procurize задейства актуализация в таблицата за награди, затваряйки обратната връзка.

---

## Ползи за бизнеса

| Метрика | Преди двигателя | След двигателя (30 дни) |
|---------|----------------|------------------------|
| Средно време за отговор (TTA) на въпросник | 4.3 дни | **1.2 дни** |
| % високорискови доставчици, обработени в рамките на 48 ч | 22 % | **68 %** |
| Удовлетвореност на аналитиците (1‑5) | 3.1 | **4.6** |
| Увеличение на скоростта на сделките (процент печеливши) | 31 % | **45 %** |

**Съчетаният ефект** от по‑бързи отговори, по‑точна оценка на риска и по‑щастливи екипи се превръща в измерим растеж на приходите и намаляване на правните последици.

---

## План за изпълнение (12‑седмичен спринт)

| Седмица | Показател |
|---------|------------|
| 1‑2 | Настройка на Kafka теми, дефиниране на схема за сигнали от доставчици |
| 3‑4 | Създаване на Delta Lake Feature Store, писане на стрийминг задачи |
| 5‑6 | Разработка на GNN модела, обучение върху исторически данни от въпросници |
| 7 | Добавяне на Байесов приоритетен слой, калибриране на доверителните интервали |
| 8‑9 | Имплементация на бандит планировчик, събиране на наградни данни |
| 10 | Свързване към API‑тата на Procurize, енд‑т до енд тестове за разпределяне |
| 11 | Провеждане на A/B пилот с ограничен набор от аналитици |
| 12 | Пълно разгръщане, настройка на мониторинг и табла за известия |

Критичните критерии за успех включват **латентност на модела < 500 ms**, **конвергенция на планировчика след 200 взаимодействия**, и **≥ 80 % качество на данните** във Feature Store‑а.

---

## Бъдещи перспективи

1. **Разширение с федеративно обучение** – позволява на множество SaaS партньори да подобряват модела за риск без споделяне на сурови данни.  
2. **Слой за обясним AI** – генерира естествено езикови обяснения (напр. “Доставчик X получи висока оценка, защото е бил засегнат от CVE‑2024‑1234”).  
3. **Интеграция с Zero‑Trust** – съчетава двигателя с Zero‑Trust мрежа за автоматично предоставяне на най‑малките привилегии за извличане на доказателства.  
4. **Дигитален двойник за съответствие** – симулира бъдещи регулаторни сценарии и предварително пренасочва приоритетите.

AI двигателят за вземане на решения се превръща в **мозъка** на проактивна екосистема за съответствие – преминавайки от реактивно генериране на отговори към предсказуемо управление на риска.

---

## Заключение

Автоматизирането на отговорите на въпросници е само половината от задачата. Истинското конкурентно предимство се крие в **знанието кой въпросник да бъде решен първо и защо**. Чрез комбиниране на приемане на данни в реално време, графово‑базирана оценка на риска и планировчик, управляван от подсилено обучение, AI двигателът за вземане на решения трансформира функцията за съответствие от тесен пръстен в стратегически ускорител.

Внедряването на този двигател върху съвместната платформа на Procurize дава възможност на екипи по сигурност, правна услуга и продажби да работят в синхрон, да скъсят сделките и да бъдат крачка пред постоянно променящите се регулаторни изисквания. В свят, в който секунди правят разликата, AI‑управлявана, риск‑ориентирана опашка за приоритети е следващият незаменим слой на модерната автоматизация за съответствие.  

---

## Свързани ресурси

- [NIST SP 800‑53 Rev 5 – Рамка за управление на риска](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- [ISO/IEC 27001:2022 – Управление на информационната сигурност](https://www.iso.org/standard/73906.html)  
- [Google Cloud Blog: Създаване на реално‑времеви ML тръбопроводи с Kafka и Vertex AI](https://cloud.google.com/blog/topics/inside-google-cloud/building-real-time-ml-pipelines)