
# Real‑Time spolupracujúci AI asistent pre bezpečnostné dotazníky

V rýchlo sa meniacom svete SaaS sa bezpečnostné dotazníky stali strážcami každého nového obchodu. Dodávatelia, audítori a podnikové zákazníky požadujú presné, aktuálne odpovede na desiatky otázok o súlade, a proces tradične vyzerá takto:

1. **Zbierajte** dotazník od kupca.  
2. **Priraďte** každú otázku odborníkovi na predmet.  
3. **Vyhľadávajte** v interných politických dokumentoch, minulých odpovediach a dôkazných súboroch.  
4. **Návrh** odpovede, rozšírite ju na kontrolu a nakoniec **odoslať**.

Aj pri platforme ako Procurize, ktorá centralizuje dokumenty a sleduje úlohy, tímy stále strávia hodiny hľadaním správnej klauzuly politiky, kopírovaním do odpovede a manuálnou kontrolou verzií. Výsledok? Odložené obchody, nekonzistentné odpovede a výpadok v súlade, ktorý nikdy úplne nezmizne.

Čo ak by **real‑time AI asistent** mohol sedieť priamo v pracovnom priestore dotazníka, chatovať s tímom, vytiahnuť presný úryvok politiky, navrhnúť vyladenú odpoveď a zároveň všetko zaznamenať pre audit? Nižšie preskúmame tento koncept, prehĺbime sa do architektúry a ukážeme, ako ho môžete oživiť v Procurize.

---

## Prečo je chat‑centrický asistent prevratným riešením

| Problém | Tradičné riešenie | Výhoda AI‑chat asistenta |
|------------|----------------------|----------------------------|
| **Časovo náročný výskum** | Manuálne vyhľadávanie v repozitároch politík. | Okamžité, kontextovo‑vedomé vyhľadávanie politík a dôkazov. |
| **Nekonzistentný jazyk** | Rôzni autori, rôzny tón. | Jeden AI model vynucuje štýlové smernice a formulácie súladu. |
| **Stratené znalosti** | Odpovede žijú v emailových vláknach alebo PDF. | Každý návrh je zaznamenaný v prehľadateľnej histórii konverzácií. |
| **Obmedzená prehľadnosť** | Len priradený používateľ vidí návrh. | Celý tím môže spolupracovať v reálnom čase, komentovať a schvaľovať v rovnakom vlákne. |
| **Riziko nesúladu** | Ľudská chyba pri citáciách alebo zastarané dokumenty. | AI overuje verziu dokumentu, dátumy expirácie a relevantnosť politiky. |

Prevedením workflow dotazníka na **konverzačný zážitok** už tímy nepotrebujú prepínať medzi viacerými nástrojmi. Asistent sa stáva lepidlom, ktoré spája úložisko dokumentov, správcu úloh a komunikačný kanál – všetko v reálnom čase.

---

## Kľúčové funkcie asistenta

1. **Generovanie odpovedí s ohľadom na kontext**  
   - Keď používateľ napíše „Ako šifrujete údaje v pokoji?“, asistent rozoberie otázku, spoji ju s relevantnými časťami politiky (napr. „Politika šifrovania údajov v3.2“) a navrhne stručnú odpoveď.

2. **Živé prepojenie na dôkazy**  
   - AI navrhne presný artefakt (napr. „Encryption‑Certificate‑2024.pdf”) a vloží hyperodkaz alebo vložený úryvok priamo do odpovede.

3. **Kontrola verzie a expirácie**  
   - Pred potvrdením návrhu asistent skontroluje dátum účinnosti dokumentu a upozorní používateľa, ak je potrebná aktualizácia.

4. **Spolupráca pri revízii**  
   - Členovia tímu môžu **@spomenúť** recenzentov, pridávať komentáre alebo požiadať AI o „druhé stanovisko“ pre alternatívne formulovanie.

5. **Auditovateľný log konverzácií**  
   - Každá interakcia, návrh a akceptácia je zaznamenaná, opatraná časovou značkou a prepojená s položkou dotazníka pre budúce audity.

6. **Integračné háčiky**  
   - Webhooky posielajú akceptované odpovede späť do štruktúrovaných polí v Procurize a asistent môže byť vyvolaný zo Slacku, Microsoft Teams alebo priamo v UI webu.

---

## Prehľad systémovej architektúry

Nižšie je vysoká úroveň toku typickej interakcie, vyjadrená v Mermaid diagrame. Všetky popisy uzlov sú preložené do slovenčiny.

```mermaid
flowchart TD
    A["Používateľ otvorí dotazník v Procurize"] --> B["Načítava sa widget AI asistenta"]
    B --> C["Používateľ položí otázku v chate"]
    C --> D["Vrstva NLP extrahuje úmysel a entity"]
    D --> E["Služba vyhľadávania politík dotazuje úložisko dokumentov"]
    E --> F["Vrátené relevantné úryvky politík"]
    F --> G["LLM generuje návrh odpovede s citáciami"]
    G --> H["Asistent prezentuje návrh, odkazy na dôkazy a kontrolu verzie"]
    H --> I["Používateľ akceptuje, upravuje alebo požaduje revíziu"]
    I --> J["Akceptovaná odpoveď odoslaná do odpovedného enginu Procurize"]
    J --> K["Odpoveď uložená, vytvorený záznam auditu"]
    K --> L["Tím dostane oznámenie a môže komentovať"]
```

**Kľúčové komponenty**

| Komponent | Zodpovednosť |
|-----------|---------------|
| **Chat UI Widget** | Vloží sa do stránky dotazníka; spracováva vstup používateľa a zobrazuje AI odpovede. |
| **NLP Intent Engine** | Rozoberá anglické otázky, extrahuje kľúčové slová (napr. „šifrovanie“, „prístupová kontrola“). |
| **Policy Retrieval Service** | Indexované vyhľadávanie vo všetkých PDF, Word a markdown súboroch a ich verziách. |
| **LLM (Large Language Model)** | Produkuje ľudsky čitateľné odpovede, zabezpečuje jazykové smernice súladu a formátuje citácie. |
| **Validation Layer** | Kontroluje verziu dokumentu, expiráciu a relevantnosť otázke. |
| **Response Engine** | Zapíše finálnu odpoveď do štruktúrovaných polí v Procurize a aktualizuje auditný záznam. |
| **Notification Service** | Posiela Slack/Teams upozornenia, keď je odpoveď pripravená na revíziu. |

---

## Implementačný návod

### 1. Nastavenie indexu dokumentov

1. **Extrahovať text** – Použite nástroj ako Apache Tika na získanie čistého textu z PDF, Word a markdown súborov.  
2. **Chunking** – Rozdeľte každý dokument na úseky po 300 slov, pričom zachováte názov zdrojového súboru, verziu a čísla stránok.  
3. **Embedding** – Vygenerujte vektorové embeddingy pomocou open‑source modelu (napr. `sentence‑transformers/all‑mini‑lm‑L6‑v2`). Vektory uložte do vektorovej databázy ako Pinecone alebo Qdrant.  
4. **Metadata** – Pripojte metadátové polia: `policy_name`, `version`, `effective_date`, `expiry_date`.

```python
from tqdm import tqdm
from transformers import AutoTokenizer, AutoModel
import pinecone

# pseudo‑code na ilustráciu pipeline
tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-mini-lm-L6-v2")
model = AutoModel.from_pretrained("sentence-transformers/all-mini-lm-L6-v2")

def embed_chunk(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
    embeddings = model(**inputs).last_hidden_state.mean(dim=1).detach().cpu().numpy()
    return embeddings.squeeze()

# iterácia cez extrahované úseky a ich upsert do Pinecone
for chunk in tqdm(chunks):
    vec = embed_chunk(chunk["text"])
    pinecone.upsert(
        id=chunk["id"],
        vector=vec,
        metadata=chunk["metadata"]
    )
```

### 2. Vytvorenie NLP Intent vrstvy

Intent vrstva rozlišuje **typ otázky** (vyhľadanie politiky, požiadavka na dôkaz, upresnenie) a extrahuje **kľúčové entity**. Ľahko vyladený BERT klasifikátor dosahuje >94 % presnosti na sade 2 000 označených položiek dotazníka.

```python
from transformers import pipeline

classifier = pipeline("text-classification", model="distilbert-base-uncased-finetuned-qa")

def parse_question(question):
    result = classifier(question)[0]
    intent = result["label"]
    # jednoduchý regex pre entity
    entities = re.findall(r"\b(encryption|access control|backup|retention)\b", question, flags=re.I)
    return {"intent": intent, "entities": entities}
```

### 3. Prompt Engineering pre LLM

System prompt zabezpečuje, že model dodržiava tón a citácie.

```
Ste AI asistent pre súlad. Poskytujte stručné odpovede (max 150 slov) na položky bezpečnostných dotazníkov. Vždy:
- Uveďte presné číslo klauzuly politiky.
- Pridajte hyperodkaz na najnovšiu verziu politiky.
- Používajte schválený štýl spoločnosti: tretia osoba, prítomný čas.
Ak si nie ste istí, opýtajte sa používateľa na objasnenie.
```

Ukážkový volanie (používame OpenAI `gpt‑4o‑mini` alebo open‑source LLaMA 2 13B):

```python
def generate_answer(question, snippets):
    system_prompt = open("assistant_prompt.txt").read()
    user_prompt = f"Question: {question}\nRelevant policy excerpts:\n{snippets}"
    response = client.chat_completion(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ],
        temperature=0.2
    )
    return response.choices[0].message.content
```

### 4. Real‑time Validácia

Pred prezentáciou návrhu validačná služba kontroluje:

```python
def validate_snippet(snippet_meta):
    today = datetime.date.today()
    if snippet_meta["expiry_date"] and today > snippet_meta["expiry_date"]:
        return False, f"Politika vypršala dňa {snippet_meta['expiry_date']}"
    return True, "Platná"
```

Ak validácia zlyhá, asistent automaticky navrhne najnovšiu verziu a pridá štítok **„potreba aktualizácie politiky“**.

### 5. Uzavretie slučky – zápis späť do Procurize

Procurize poskytuje REST endpoint `/api/questionnaires/{id}/answers`. Asistent pošle PATCH požiadavku s finálnou odpoveďou, pripojí ID dôkazov a zaznamená operáciu.

```http
PATCH /api/questionnaires/1234/answers/56 HTTP/1.1
Content-Type: application/json
Authorization: Bearer <token>

{
  "answer_text": "Všetky údaje v pokoji sú šifrované pomocou AES‑256 GCM, ako popísané v politike #SEC‑001, verzia 3.2 (platná od januára 2024). Pozri prílohu Encryption‑Certificate‑2024.pdf.",
  "evidence_ids": ["ev-9876"],
  "assistant_log_id": "log-abc123"
}
```

Platforma následne informuje priradeného recenzenta, ktorý môže **schváliť** alebo **požiadať o úpravu** priamo v UI – bez nutnosti opúšťať chat.

---

## Reálne benefity: čísla z počiatočných pilotov

| Metrika | Pred AI asistentom | Po AI asistentovi |
|---------|--------------------|--------------------|
| Priemerný čas tvorby odpovede | 12 minút na otázku | 2 minúty na otázku |
| Čas na dokončenie celého dotazníka | 5 dní (≈ 40 otázok) | 12 hodín |
| Miera revízií | 38 % odpovedí potrebovalo úpravy | 12 % |
| Skóre presnosti súladu (interný audit) | 87 % | 96 % |
| Spokojnosť tímu (NPS) | 28 | 67 |

Údaje pochádzajú z beta testu u troch stredne veľkých SaaS spoločností, ktoré spracovávali **SOC 2** a **ISO 27001** dotazníky. Najväčším prínosom bol **auditovateľný konverzačný log**, ktorý eliminoval potrebu samostatného “kto čo povedal” tabuľky.

---

## Začíname: krok‑za‑krokom sprievodca pre používateľov Procurize

1. **Povoľte AI asistenta** – V admin konzole prepnite **AI Collaboration** pod *Integrations → AI Features*.  
2. **Prepojte úložisko dokumentov** – Pripojte cloud storage (AWS S3, Google Drive alebo Azure Blob), kde sa nachádzajú politiky. Procurize automaticky spustí indexovaciu pipeline.  
3. **Pozvite členov tímu** – Pridajte používateľov do roly *AI Assist*; v každej stránke dotazníka uvidia chat bublinu.  
4. **Nastavte notifikačné kanály** – Zadajte Slack alebo Teams webhook URL, aby ste dostávali upozornenia „Odpoveď pripravená na revíziu“.  
5. **Vyskúšajte testovaciu otázku** – Otvorte akýkoľvek otvorený dotazník, napíšte vzorovú otázku (napr. „Aká je vaša politika uchovávania údajov?“) a sledujte odpoveď asistenta.  
6. **Skontrolujte a schváľte** – Použite tlačidlo **Accept** na zapísanie odpovede do štruktúrovaného poľa. Systém automaticky zaznamená konverzáciu v záložke *Audit Log*.  

**Tip:** Začnite s menším súborom politík (napr. Šifrovanie údajov, Prístupová kontrola), aby ste overili relevanciu, a potom rozšírite na celú knižnicu súladu.

---

## Budúce vylepšenia na obzore

| Plánovaná funkcia | Popis |
|--------------------|-------|
| **Podpora viacerých jazykov** | Umožní asistentovi pochopiť a odpovedať na otázky v španielčine, nemčine a japončine, čím rozšíri globálny dosah. |
| **Proaktívna detekcia medzier** | AI skenuje nadchádzajúce dotazníky a upozorní na chýbajúce politiky ešte pred začiatkom odpovedania. |
| **Automatické pripájanie dôkazov** | Na základe obsahu odpovede systém automaticky vyberie najnovší dôkazový súbor, čím zníži manuálne kroky. |
| **Dashboard súladu** | Agreguje AI‑generované odpovede a vytvára pre manažérov reálny prehľad o stave súladu. |
| **Explainable AI** | Poskytne zobrazenie “Prečo táto odpoveď?” vrátane konkrétnych politických viet a skóre podobnosti použitého pri generovaní. |

Tieto položky posunú AI asistenta z **nástroja na zvýšenie produktivity** na **strategického poradcu pre súlad**.

---

## Záver

Bezpečnostné dotazníky budú len ďalej komplikovať regulácie a požiadavky podnikových zákazníkov. Spoločnosti, ktoré budú naďalej spoliehať na manuálne kopírovanie a vkladanie, uvidia dlhšie predajné cykly, vyššiu expozíciu auditu a rastúce prevádzkové náklady.

**Real‑time spolupracujúci AI asistent** rieši tieto problémy tým, že:

* Poskytuje okamžité, podložené odpovede s citáciami politík.  
* Udržiava celý tím v jednom konverzačnom kontekte.  
* Vytvára nemenný, prehľadateľný auditný záznam.  
* Bezproblémovo sa integruje do existujúceho workflow v Procurize a do externých nástrojov.

Zavedením tohto asistenta do vášho súladového ekosystému ešte dnes **skrátime čas spracovania dotazníkov až o 80 %** a položime základy pre inteligentnejší, dátovo‑riadený program súladu, ktorý bude rásť spolu s vaším biznisom.

*Pripravení zažiť budúcnosť spracovania dotazníkov? Povoliť AI asistenta v Procurize a sledujte, ako váš bezpečnostný tím odpovedá s istotou – priamo v chate.*