
# AI generirani kontekstualni dokaz za sigurnosne upitnike

Sigurnosni upitnici su čuvari svakog B2B SaaS posla. Kupci zahtijevaju konkretan dokaz – odlomke politika, revizijske izvještaje, snimke konfiguracije – kako bi dokazali da sigurnosni stav dobavljača odgovara njihovoj toleranciji rizika. Tradicionalno, timovi za sigurnost, pravne i inženjering pretražuju labirint PDF‑ova, SharePoint foldera i sustava za ticketiranje kako bi pronašli točan dokument koji podupire svaki odgovor.  

Posljedica su **spori rokovi, nedosljedan dokaz i povećan rizik od ljudske pogreške**.  

Uvođenje **Retrieval‑Augmented Generation (RAG)** – hibridne AI arhitekture koja kombinira generativnu moć velikih jezičnih modela (LLM‑ova) s preciznošću vektorske pretrage dokumenata. Povezujući RAG s platformom Procurize, timovi mogu automatski izložiti najrelevantnije artefakte usklađenosti *dok sastavljaju svaki odgovor*, pretvarajući ručno traženje u radni tijek u stvarnom vremenu temeljen na podacima.

U nastavku razlažemo tehničko kičme RAG‑a, prikazujemo produkcijski spremnu cjevovod uz Mermaid i nudimo praktične smjernice za SaaS organizacije spremne usvojiti automatizaciju kontekstualnog dokaza.

---

## 1. Zašto je kontekstualni dokaz važan sada

### 1.1 Regulatorni pritisak
Regulacije poput **[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)**, **[ISO 27001](https://www.iso.org/standard/27001)**, **[GDPR](https://gdpr.eu/)** i nadolazećih **okvira za AI rizike** izričito zahtijevaju dokazljiv dokaz za svaku kontrolu. Revizori više nisu zadovoljni odgovorom „politika postoji“; žele **traciranu poveznicu** na točnu verziju koja je pregledana.

### 1 2 3 4 5 6 7 8 9 10  
**Statistika**: Prema Gartnerovoj anketi iz 2024., 68 % B2B kupaca navodi „nepotpun ili zastarjeli dokaz“ kao glavni razlog odgađanja ugovora.

### 1.2 Očekivanja kupaca
Moderni kupci ocjenjuju dobavljače prema **Trust Score**‑u koji agregira potpunost upitnika, svježinu dokaza i latenciju odgovora. Automatizirani motor za dokaz izravno podiže taj rezultat.

### 1.3 Unutarnja učinkovitost
Svaka minuta koju sigurnosni inženjer provodi tražeći PDF je minuta koja nije provedena na modeliranju prijetnji ili reviziji arhitekture. Automatizacija pretrage dokaza oslobađa kapacitete za sigurnosni rad višeg utjecaja.

---

## 2. Retrieval‑Augmented Generation – Osnovni koncept

RAG radi u dva koraka:

1. **Retrieval** – Sustav pretvara upit na prirodnom jeziku (npr. „Prikaži najnoviji SOC 2 Type II izvještaj“) u vektorski ugrađeni vektor i pretražuje **vrokorsku bazu podataka** za najbliže odgovarajuće dokumente.
2. **Generation** – LLM prima dohvaćene dokumente kao **kontekst** i generira koncizan, citiran odgovor.

Ljepota RAG‑a je što **ukorjenjuje generativni izlaz u provjerljivom izvoru**, uklanjajući halucinacije – ključni zahtjev za sadržaj usklađenosti.

### 2.1 Ugrađivanja i vektorske pohrane
- **Modeli ugrađivanja** (npr. OpenAI‑ov `text-embedding-ada-002`) prevode tekst u visokodimenzionalne vektore.  
- **Vektorske pohrane** (npr. Pinecone, Milvus, Weaviate) indeksiraju te vektore, omogućujući pretrage sličnosti u podsekundama kroz milijune stranica.

### 2.2 Inženjering prompta za dokaz
Dobro konstruiran prompt govori LLM‑u da:
- Citira svaki izvor s Markdown poveznicom ili ID‑jem reference.  
- Sačuva izvornu formulaciju prilikom citiranja odlomaka politika.  
- Označi bilo koji dvosmislen ili zastarjeli sadržaj za ljudsku reviziju.

Primjer fragmenta prompta:

```
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 radni tijek u Procurizeu

Dolje je vizualni prikaz RAG‑om omogućenog toka upitnika unutar Procurize ekosustava.

```mermaid
graph LR
    A["Korisnik predaje upitnik"] --> B["Generator AI prompta"]
    B --> C["Retriever (vektorska DB)"]
    C --> D["Relevantni dokumenti"]
    D --> E["Generator (LLM)"]
    E --> F["Odgovor s dokazom"]
    F --> G["Revizija i objava"]
    G --> H["Audit log i verzioniranje"]
```

**Ključni koraci objašnjeni**

| Korak | Opis |
|------|------|
| **A – Korisnik predaje upitnik** | Tim za sigurnost kreira novi upitnik u Procurizeu, birajući ciljne standarde (SOC 2, ISO 27001, itd.). |
| **B – Generator AI prompta** | Za svako pitanje Procurize sastavlja prompt koji uključuje tekst pitanja i eventualne postojeće fragmente odgovora. |
| **C – Retriever** | Prompt se ugrađuje i upituje vektorsku bazu koja sadrži sve učitane artefakte usklađenosti (politike, revizijski izvještaji, zapise iz code‑reviewa). |
| **D – Relevantni dokumenti** | Dohvaćaju se top‑k dokumenti (obično 3‑5), obogaćeni metapodacima i prosljeđeni LLM‑u. |
| **E – Generator** | LLM proizvodi koncizan odgovor, automatski ubacujući citate (npr. `[SOC2-2024#A.5.2]`). |
| **F – Odgovor s dokazom** | Generirani odgovor prikazuje se u UI‑u upitnika, spreman za inline uređivanje ili odobrenje. |
| **G – Revizija i objava** | Dodijeljeni revizori provjeravaju točnost, dodaju dopunske napomene i zaključavaju odgovor. |
| **H – Audit log i verzioniranje** | Svaki AI‑generirani odgovor pohranjuje se s snapshotom izvora, osiguravajući neizmjenjiv audit trail. |

---

## 4. Implementacija RAG‑a u vašem okruženju

### 4.1 Priprema korpusa dokumenata
1. **Prikupite** sve artefakte usklađenosti: politike, izvještaje skeniranja ranjivosti, konfiguracijske baseline‑e, komentare iz code‑reviewa, CI/CD zapise.  
2. **Standardizirajte** formate (PDF → tekst, Markdown, JSON). Upotrijebite OCR za skenirane PDF‑ove.  
3. **Dijelite** dokumente u segmente od 500‑800 riječi radi bolje relevantnosti pretrage.  
4. **Dodajte metapodatke**: tip dokumenta, verzija, datum kreiranja, okvir usklađenosti i jedinstveni `DocID`.

### 4.2 Izgradnja vektorskog indeksa
```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)])

# Petlja kroz sve segmente
for chunk, meta in corpus:
    embed_and_upsert(chunk, meta)
```
*Ova skripta se pokreće jednom po kvartalnoj ažuriranoj politici; inkrementalni upserti održavaju indeks svježim.*

### 4.3 Integracija s Procurizeom
- **Webhook**: Procurize emitira događaj `question_created`.  
- **Lambda funkcija**: Prima događaj, gradi prompt, poziva retriever, zatim LLM putem OpenAI‑jevog `ChatCompletion`.  
- **Response Hook**: Ubacuje AI‑generirani odgovor natrag u Procurize putem njegovog REST API‑ja.

```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 Ljudska kontrola (HITL) zaštite
- **Score povjerenja**: LLM vraća vjerojatnost; ispod 0.85 aktivira obaveznu reviziju.  
- **Zaključavanje verzije**: Nakon odobrenja, snapshotovi izvora se zamrzavaju; bilo koja kasnija promjena politike stvara novu verziju, a ne prepisuje staru.  
- **Audit trail**: Svaka AI interakcija bilježi se s vremenskim oznakama i ID‑jevima korisnika.

---

## 5. Mjerenje učinka

| Metrika | Manualni osnov | Nakon RAG implementacije | % Poboljšanje |
|--------|----------------|---------------------------|----------------|
| Prosječno trajanje po upitniku | 14 dana | 3 dana | 78 % |
| Potpunost citiranja dokaza | 68 % | 96 % | 41 % |
| Stopa revizijske ponovne obrade | 22 % | 7 % | 68 % |
| Stopa prolaza audita (prvi podnesak) | 84 % | 97 % | 15 % |

*Studija slučaja*: **AcmeCloud** je usvojio Procurize RAG u drugom kvartalu 2025.  izvijestili su **70 % smanjenje** prosječnog vremena odgovora i **30 % povećanje** trust‑score‑a kod svojih najvažnijih enterprise kupaca.

---

## 6. Najbolje prakse & zamke koje treba izbjegavati

### 6.1 Održavajte čisti korpus
- **Uklonite zastarjele dokumente** (npr. istekle certifikate). Označite ih kao `archived` kako bi retriever mogao smanjiti njihov prioritet.  
- **Normalizirajte terminologiju** kroz politike radi bolje podudarnosti sličnosti.

### 6.2 Disciplina prompta
- Izbjegavajte preširoke promptove koji mogu povući nepovezane sekcije.  
- Koristite **few‑shot primjere** u promptu kako biste usmjerili LLM na željeni format citiranja.

### 6.3 Sigurnost i privatnost
- Pohranite ugrađivanja u **VPC‑izoliranu** vektorsku pohranu.  
- Šifrirajte API ključeve i koristite **role‑based access** za Lambda funkciju.  
- Osigurajte GDPR‑usklađeno rukovanje bilo kojim osobnim podacima unutar dokumenata.

### 6.4 Kontinuirano učenje
- Zabilježite revizijske ispravke kao **feedback parove** (pitanje, ispravan odgovor) i periodično fino podučite domenom‑specifični LLM.  
- Ažurirajte vektorsku bazu nakon svake revizije politike kako bi graf znanja ostao aktualan.

---

## 7. Smjerovi za budućnost

1. **Dinamička integracija znanja grafa** – Povežite svaki segment dokaza s čvorom u enterprise knowledge graphu, omogućujući hijerarhijsko pretraživanje (npr. „Politika → Kontrola → Podkontrola”).  
2. **Multimodalna pretraga** – Proširite izvan teksta na slike (npr. arhitektonske dijagrame) koristeći CLIP ugrađivanja, omogućujući AI‑u da izravno citira screenshotove.  
3. **Upozorenja u stvarnom vremenu o promjenama politika** – Kada se politika ažurira, automatski ponovno provjerite sve otvorene odgovore upitnika i označite one koji možda trebaju reviziju.  
4. **Zero‑Shot ocjena rizika dobavljača** – Kombinirajte dohvaćene dokaze s eksternim prijetnjama kako biste automatski generirali risk score za svaki odgovor dobavljača.

---

## 8. Kako započeti danas

1. **Auditarajte** svoje trenutno skladište usklađenosti i identificirajte praznine.  
2. **Pilotirajte** RAG cjevovod na jednom visokovrijednom upitniku (npr. SOC 2 Type II).  
3. **Integrirajte** s Procurizeom koristeći predložak webhooka.  
4. **Izmjerite** KPI‑e navedene iznad i iterirajte.

Usvajanjem Retrieval‑Augmented Generationa, SaaS tvrtke pretvaraju tradicionalni, ručni i sklon pogreškama proces u **skalabilni, auditable i pouzdani mehanizam**, čime grade konkurentsku prednost na tržištu sve usmjerenijem prema usklađenosti.