
# AI poháněný kontextuální důkaz pro bezpečnostní dotazníky

Bezpečnostní dotazníky jsou bránou každé B2B SaaS transakce. Kupující požadují konkrétní důkazy – úryvky z politik, auditní zprávy, snímky konfigurací – aby se prokázalo, že bezpečnostní postoj dodavatele odpovídá jejich apetitu k riziku. Tradičně se týmy z bezpečnosti, práv a inženýrství brodí labyrintem PDF, SharePoint složek a ticketovacích systémů, aby našly přesný dokument, který podporuje každou odpověď.

Výsledkem jsou **pomalé doby odezvy, nekonzistentní důkazy a zvýšené riziko lidské chyby**.

Vstupuje **Retrieval‑Augmented Generation (RAG)** – hybridní AI architektura, která kombinuje generativní sílu velkých jazykových modelů (LLM) s přesností vektorového vyhledávání dokumentů. Spojením RAG s platformou Procurize mohou týmy automaticky zobrazovat nejrelevantnější artefakty souhlasu *během psaní každé odpovědi*, a tak proměnit manuální honbu za informacemi v real‑time, daty řízený workflow.

Níže rozebíráme technické základy RAG, ilustrujeme produkčně připravený pipeline pomocí Mermaid a poskytneme akční pokyny pro SaaS organizace, které jsou připravené přijmout automatizaci kontextuálního důkazu.

---

## 1. Proč je kontextuální důkaz nyní důležitý

### 1.1 Regulační tlak
Regulace jako **[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)**, **[ISO 27001](https://www.iso.org/standard/27001)**, **[GDPR](https://gdpr.eu/)** a vznikající **rámce pro AI‑rizika** výslovně vyžadují prokazatelné důkazy ke každému tvrzení o kontroly. Auditoři už nejsou spokojeni s “politika existuje”; chtějí **sledovatelný odkaz** na konkrétní verzi, která byla přezkoumána.

### 1 2 3 4 5 6 7 8 9 10  
**Statistika**: Podle průzkumu Gartneru z 2024 uvádí 68 % B2B kupujících “neúplné nebo zastaralé důkazy” jako hlavní důvod ke zdržení kontraktu.

### 1.2 Očekávání kupujících
Moderní kupující hodnotí dodavatele podle **Trust Score**, který agreguje kompletnost dotazníku, čerstvost důkazů a rychlost odpovědi. Automatizovaný engine pro důkazy přímo zvyšuje tento skóre.

### 1.3 Interní efektivita
Každá minuta, kterou bezpečnostní inženýr stráví hledáním PDF, je minuta, která není věnována modelování hrozeb nebo revizím architektury. Automatizace získávání důkazů uvolní kapacitu pro vyšší bezpečnostní práci.

---

## 2. Retrieval‑Augmented Generation – jádrový koncept

RAG funguje ve dvou fázích:

1. **Retrieval** – Systém převede dotaz v přirozeném jazyce (např. “Zobraz nejnovější SOC 2 Type II zprávu”) na vektor a prohledá **vektorovou databázi** pro nejbližší odpovídající dokumenty.  
2. **Generation** – LLM dostane vybrané dokumenty jako **kontext** a vygeneruje stručnou odpověď bohatou na citace.

Krásou RAG je, že **zakotvuje generovaný výstup v ověřitelných zdrojových materiálech**, čímž eliminuje halucinace – kritickou podmínku pro obsah související s dodržováním předpisů.

### 2.1 Vkládání a vektorové úložiště
- **Embedding modely** (např. OpenAI `text-embedding-ada-002`) převádějí text do vysoce‑dimenzionálních vektorů.  
- **Vektorová úložiště** (Pinecone, Milvus, Weaviate) indexují tyto vektory a umožňují sub‑sekundové podobnostní vyhledávání v milionech stránek.

### 2.2 Prompt engineering pro důkazy
Dobře navržený prompt říká LLM, aby:
- Citoval každý zdroj pomocí Markdown odkazu nebo ID reference.  
- Zachoval původní formulaci při citování úryvků z politik.  
- Označil jakýkoli nejasný či zastaralý obsah pro lidskou kontrolu.

Příklad úryvku promptu:

```
You are an AI compliance assistant. Answer the following questionnaire item using ONLY the supplied documents. Cite each source using the format [DocID#Section].
If a required document is missing, respond with "Document not found – please upload."
```

---

## 3. End‑to‑End workflow v Procurize

Níže je vizuální znázornění RAG‑poháněného toku dotazníku v ekosystému Procurize.

```mermaid
graph LR
    A["User Submits Questionnaire"] --> B["AI Prompt Generator"]
    B --> C["Retriever (Vector DB)"]
    C --> D["Relevant Documents"]
    D --> E["Generator (LLM)"]
    E --> F["Answer with Evidence"]
    F --> G["Review & Publish"]
    G --> H["Audit Log & Versioning"]
```

**Klíčové kroky vysvětleny**

| Krok | Popis |
|------|-------|
| **A – User Submits Questionnaire** | Bezpečnostní tým vytvoří nový dotazník v Procurize a vybere cílové standardy (SOC 2, ISO 27001 atd.). |
| **B – AI Prompt Generator** | Pro každou otázku Procurize sestaví prompt, který obsahuje text otázky a případné existující fragmenty odpovědi. |
| **C – Retriever** | Prompt se zakóduje a dotazuje proti vektorové databázi, která obsahuje všechny nahrané artefakty souhlasu (politiky, auditní zprávy, logy revizí kódu). |
| **D – Relevant Documents** | Vyberou se top‑k dokumenty (obvykle 3‑5), obohatí se o metadata a předají LLM. |
| **E – Generator** | LLM vytvoří stručnou odpověď a automaticky vloží citace (např. `[SOC2-2024#A.5.2]`). |
| **F – Answer with Evidence** | Vygenerovaná odpověď se zobrazí v UI dotazníku, je připravena k inline úpravám nebo schválení. |
| **G – Review & Publish** | Přidělení recenzenti ověří přesnost, přidají doplňující poznámky a zamknou reakci. |
| **H – Audit Log & Versioning** | Každá AI‑vygenerovaná odpověď se uloží se snapshotem zdroje, čímž vznikne nezfalšovatelný auditní záznam. |

---

## 4. Implementace RAG ve vašem prostředí

### 4.1 Příprava korpusu dokumentů
1. **Shromážděte** všechny artefakty souhlasu: politiky, zprávy o skenování zranitelností, konfigurační baseline, komentáře k revizím kódu, logy CI/CD pipeline.  
2. **Standardizujte** formáty souborů (PDF → text, Markdown, JSON). Použijte OCR pro naskenované PDF.  
3. **Rozdělte** dokumenty na segmenty po 500‑800 slovech, aby se zlepšila relevance vyhledávání.  
4. **Přidejte metadata**: typ dokumentu, verze, datum vytvoření, rámec souhlasu a unikátní `DocID`.

### 4.2 Vytvoření vektorového indexu
```python
from openai import OpenAI
from pinecone import PineconeClient

client = PineconeClient(api_key="YOUR_API_KEY")
index = client.Index("compliance-evidence")

def embed_and_upsert(chunk, metadata):
    embedding = OpenAI.embeddings.create(model="text-embedding-ada-002", input=chunk).data[0].embedding
    index.upsert(vectors=[(metadata["DocID"], embedding, metadata)])

# Loop through all chunks
for chunk, meta in corpus:
    embed_and_upsert(chunk, meta)
```
*Script se spustí jednou při čtvrtletní aktualizaci politik; inkrementální upserty udržují index čerstvým.*

### 4.3 Integrace s Procurize
- **Webhook**: Procurize vysílá událost `question_created`.  
- **Lambda funkce**: Přijme událost, vytvoří prompt, zavolá retriever a poté LLM pomocí OpenAI `ChatCompletion`.  
- **Response Hook**: Vloží AI‑vygenerovanou odpověď zpět do Procurize přes REST API.

```python
def handle_question(event):
    question = event["question_text"]
    prompt = build_prompt(question)
    relevant = retrieve_documents(prompt, top_k=4)
    answer = generate_answer(prompt, relevant)
    post_answer(event["question_id"], answer)
```

### 4.4 Lidská kontrola (HITL) jako pojistka
- **Confidence Score**: LLM vrací pravděpodobnost; pod 0,85 vyvolá povinnou revizi.  
- **Version Lock**: Po schválení se snímky zdrojů zmrazí; jakákoliv pozdější změna politiky vytvoří novou verzi místo přepsání.  
- **Audit Trail**: Každá AI interakce se loguje s časovým razítkem a ID uživatele.

---

## 5. Měření dopadu

| Metrika | Základ (manuální) | Po implementaci RAG | % Zlepšení |
|---------|-------------------|---------------------|------------|
| Průměrná doba zpracování dotazníku | 14 dní | 3 dny | 78 % |
| Kompletnost citací důkazů | 68 % | 96 % | 41 % |
| Míra revizí po recenzi | 22 % | 7 % | 68 % |
| Procento úspěšných auditů při první podání | 84 % | 97 % | 15 % |

*Případová studie*: **AcmeCloud** nasadil RAG v Procurize ve 2. čtvrtletí 2025. Nahlásili **70 % snížení průměrné doby odpovědi** a **30 % nárůst Trust Score** od svých největších podnikových zákazníků.

---

## 6. Best practices & časté úskalí

### 6.1 Udržujte korpus čistý
- **Odstraňujte zastaralé dokumenty** (např. vypršené certifikace). Označte je jako `archived`, aby je retriever méně upřednostňoval.  
- **Normalizujte terminologii** napříč politikami pro lepší podobnost při vyhledávání.

### 6.2 Disciplína v promptování
- Vyhněte se příliš obecným promptům, které mohou přinést nesouvisející sekce.  
- Používejte **few‑shot příklady** v promptu, aby LLM věděl, jaký formát citací požadujete.

### 6.3 Bezpečnost a soukromí
- Ukládejte embeddingy v **VPC‑izolovaném** vektorovém úložišti.  
- Šifrujte API klíče a používejte **role‑based access** pro Lambda funkci.  
- Zajistěte GDPR‑kompatibilní zacházení s jakýmikoli osobními údaji obsaženými v dokumentech.

### 6.4 Kontinuální učení
- Zachytávejte úpravy recenzentů jako **feedback páry** (otázka, opravená odpověď) a periodicky doladěte doménově specifický LLM.  
- Po každé revizi politiky aktualizujte vektorový index, aby zůstala znalostní báze aktuální.

---

## 7. Budoucí směry

1. **Dynamická integrace znalostního grafu** – Propojte každý úryvek důkazu s uzlem v enterprise znalostním grafu, což umožní hierarchické procházení (Politika → Kontrola → Sub‑kontrola).  
2. **Multimodální retrieval** – Rozšiřte vyhledávání i mimo text a zahrňte obrázky (např. diagramy architektury) pomocí CLIP embeddingů, aby AI mohla citovat snímky přímo.  
3. **Upozornění na změny politik v reálném čase** – Když se aktualizuje verze politiky, automaticky přepočítejte relevanci všech otevřených odpovědí a označte ty, které mohou vyžadovat revizi.  
4 **Zero‑Shot skórování rizik dodavatelů** – Kombinujte získané důkazy s externími hrozbovými informacemi pro automatické generování rizikového skóre pro každou odpověď dodavatele.

---

## 8. Jak začít ještě dnes

1. **Auditujte** aktuální úložiště souhlasu a identifikujte mezery.  
2. **Pilotujte** RAG pipeline na jednom vysoce hodnotném dotazníku (např. SOC 2 Type II).  
3. **Integrujte** s Procurize pomocí poskytnuté webhook šablony.  
4. **Měřte** KPI uvedené výše a iterujte.

Přijetím Retrieval‑Augmented Generation proměníte tradičně manuální, náchylný k chybám proces na **škálovatelný, auditovatelný a budujíci důvěru stroj**, což představuje konkurenční přirozkum v stále více regulovaném trhu.