
# Inženjering Promptova za Pouzdane AI‑generirane Odgovore na Sigurnosna Upitnačka

## Uvod  

Sigurnosna upitnačka predstavljaju usku grlu za mnoge SaaS tvrtke. Jedna ocjena dobavljača može uključivati desetke detaljnih pitanja o zaštiti podataka, odgovoru na incidente, kontrolama pristupa i još mnogo toga. Ručno generiranje odgovora je vremenski intenzivno, sklono greškama i često dovodi do dupliciranja napora među timovima.  

Veliki jezični modeli (LLM‑i) poput GPT‑4, Claude ili Llama 2 imaju sposobnost sastavljanja visokokvalitetnih narativnih odgovora u sekundi. Međutim, izravno oslobadjanje te snage na upitnik rijetko donosi pouzdane rezultate. Neobrađeni izlaz može odmaknuti od jezika politike, propustiti kritične klauzule ili halucinirati dokaze koji ne postoje.  

**Inženjering promptova** — disciplinirana praksa oblikovanja teksta koji vodi LLM — premošćuje jaz između sirove generativne sposobnosti i strogih standarda usklađenosti koje zahtijevaju sigurnosni timovi. U ovom članku razlažemo ponovljivi okvir inženjeringa promptova koji pretvara LLM u pouzdanog asistenta za automatizaciju sigurnosnih upitnika.  

Obradit ćemo:

* Kako ugraditi znanje o politici izravno u promptove  
* Tehnike za kontrolu tona, dužine i strukture  
* Automatizirane petlje provjere koje otkrivaju nedosljednosti prije nego što dođu do revizora  
* Uzorke integracije za platforme poput Procurize‑a, uključujući Mermaid dijagram radnog toka  

Na kraju vodiča, praktičari će imati konkretan set alata koji mogu odmah primijeniti kako bi smanjili vrijeme izrade upitnika za 50 % – 70 % uz poboljšanje točnosti odgovora.

---

## 1. Razumijevanje Okvira Promptova  

### 1.1 Vrste Promptova  

| Vrsta Promptova | Cilj | Primjer |
|-----------------|------|---------|
| **Kontekstualni Prompt** | Pruža LLM‑u relevantne odlomke politike, standarde i definicije | “Dolje je isječak iz naše [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) politike u vezi enkripcije podataka u mirovanju…” |
| **Instrukcijski Prompt** | Naređuje modelu točno kako treba formatirati odgovor | “Napiši odgovor u tri kratka odlomka, pri čemu svaki započinje podebljanim naslovom.” |
| **Prompt Ograničenja** | Postavlja čvrsta ograničenja kao što su broj riječi ili zabranjene riječi | “Ne premaši 250 riječi i izbjegavaj korištenje riječi ‘možda’.” |
| **Verifikacijski Prompt** | Generira kontrolnu listu koju odgovor mora zadovoljiti | “Nakon izrade odgovora, navedi sve sekcije politike koje nisu referencirane.” |

Robustan sustav odgovaranja na upitnike tipično povezuje nekoliko ovih vrsta promptova u jedan zahtjev ili koristi višekorak pristup (prompt → odgovor → ponovni prompt).

### 1.2 Zašto Jednokratni Promptovi Ne Uspijevaju  

Naivan jednokratni prompt poput *“Odgovori na sljedeće sigurnosno pitanje”* često daje:

* **Izostanak** – ključne reference na politiku ostaju izostavljene.  
* **Halucinacija** – model izmišlja kontrole koje ne postoje.  
* **Nedosljedan jezik** – odgovor koristi neformalni stil koji se sukobljava s glasom usklađenosti tvrtke.  

Inženjering promptova ublažava te rizike tako da LLM‑u pruža točno informacije koje su mu potrebne i traži od njega da samostalno provjeri svoj izlaz.

---

## 2. Izgradnja Okvira Inženjeringa Promptova  

Dolje je korak‑po‑korak okvir koji se može kodirati u ponovno upotrebljivu funkciju unutar bilo koje platforme usklađenosti.

### 2.1 Korak 1 – Dohvaćanje Relevantnih Dijelova Politike  

Koristite pretraživu bazu znanja (vektorsku pohranu, graf bazu ili jednostavan indeks po ključnim riječima) kako biste izvukli najrelevantnije sekcije politike.  
*Primjer upita*: “enkripcija podataka u mirovanju” + “[ISO 27001](https://www.iso.org/standard/27001)” ili “SOC 2 CC6.1”.

Rezultat može biti:

```
Policy Fragment A:
“All production data must be encrypted at rest using AES‑256 or an equivalent algorithm. Encryption keys are rotated every 90 days and stored in a hardware security module (HSM).”
```

### 2.2 Korak 2 – Sastavljanje Šablona Promptova  

Šablona koja kombinira sve vrste promptova:

```
[CONTEXT] 
{Policy Fragments}

[INSTRUCTION] 
You are a compliance specialist drafting an answer for a security questionnaire. The target audience is a senior security auditor. Follow these rules:
- Use the exact language from the policy fragments where applicable.
- Structure the answer with a short intro, a detailed body, and a concise conclusion.
- Cite each policy fragment with a reference tag (e.g., [Fragment A]).

[QUESTION] 
{Security Question Text}

[CONSTRAINT] 
- Maximum 250 words.
- Do not introduce any controls not mentioned in the fragments.
- End with a statement confirming that evidence can be provided on request.

[VERIFICATION] 
After answering, list any policy fragments that were not used and any new terminology introduced.
```

**Napomena**: Tekst unutar zagrada ostaje na engleskom kako bi API ostao konzistentan, ali pravila i opis su prevedeni ovdje radi jasnoće.

### 2.3 Korak 3 – Slanje LLM‑u  

Pošaljite sastavljeni prompt odabranom LLM‑u putem njegovog API‑ja. Za reproducibilnost, postavite `temperature = 0.2` (nisku nasumičnost) i `max_tokens` prema ograničenju riječi.

### 2.4 Korak 4 – Parsiranje i Provjera Odgovora  

LLM vraća dva odjeljka: **odgovor** i **kontrolna lista verifikacije**. Automatizirani skript provjerava:

* Sva potrebna oznaka fragmenta su prisutna.  
* Nema novih naziva kontrola (usporedba s bijelom listom).  
* Broj riječi poštuje zadano ograničenje.

Ako bilo koje pravilo ne uspije, skript pokreće **ponovni prompt** koji uključuje povratnu informaciju:

```
[FEEDBACK]
You missed referencing Fragment B and introduced the term “dynamic key rotation” which is not part of our policy. Please revise accordingly.
```

### 2.5 Korak 5 – Pridruživanje Poveznica na Dokaze  

Nakon uspješne verifikacije, sustav automatski dodaje poveznice na potporne dokaze (npr. dnevnike rotacije ključeva, HSM certifikate). Konačni izlaz se pohranjuje u Procurize‑ov evidence hub i postaje vidljiv preglednicima.

---

## 3. Dijagram Radnog Toka u Praksi  

Slijedeći Mermaid dijagram vizualizira cjelokupni tijek unutar tipične SaaS platforme usklađenosti.

```mermaid
graph TD
    A["Korisnik odabire upitnik"] --> B["Sustav dohvaća relevantne dijelove politike"]
    B --> C["Graditelj Promptova sastavlja višedjelni prompt"]
    C --> D["LLM generira odgovor + kontrolnu listu verifikacije"]
    D --> E["Automatski validator parsira kontrolnu listu"]
    E -->|Pass| F["Odgovor pohranjen, poveznice na dokaze priložene"]
    E -->|Fail| G["Ponovni prompt s povratnom informacijom"]
    G --> C
    F --> H["Recenzenti pregledavaju odgovor u Procurize nadzornoj ploči"]
    H --> I["Revizija završena, odgovor izvezen"]
```

---

## 4. Napredne Tehnike Promptova  

### 4.1 Primjeri s Nekoliko Primjera  

Uključivanje par **primjera Q&A** u prompt može značajno poboljšati dosljednost. Primjer:

```
Example 1:
Q: How do you protect data in transit?
A: All data in transit is encrypted using TLS 1.2 or higher, with forward‑secrecy ciphers. [Fragment C]

Example 2:
Q: Describe your incident response process.
A: Our IR plan follows the [NIST CSF](https://www.nist.gov/cyberframework) (NIST 800‑61) framework, includes a 24‑hour escalation window, and is reviewed bi‑annually. [Fragment D]
```

LLM sada ima jasan stil koji treba oponašati.

### 4.2 Promptiranje Lančane Misli  

Potaknite model da razmišlja korak po korak prije odgovora:

```
Think about which policy fragments apply, list them, then craft the answer.
```

Ovo smanjuje halucinacije i daje transparentni trag razmišljanja koji se može zabilježiti.

### 4.3 Generiranje S Poboljšanim Preuzimanjem (RAG)  

Umjesto prethodnog dohvaćanja fragmenta, dopustite LLM‑u da upita vektorsku pohranu tijekom generacije. Ovaj pristup je pogodan kada je korpus politika veoma velik i stalno se mijenja.

---

## 5. Integracija s Procurize‑om  

Procurize već nudi:

* **Repository politika** (centraliziran, verzioniran)  
* **Tracker upitnika** (zadaci, komentari, audit‑traka)  
* **Evidence hub** (pohrana datoteka, automatsko povezivanje)  

Ugradnja prompt inženjeringa sastoji se od tri ključna API poziva:

1. `GET /policies/search` – dohvaća fragmente na osnovi ključnih riječi ekstrahiranih iz pitanja upitnika.  
2. `POST /llm/generate` – šalje sastavljeni prompt i prima odgovor + verifikacijsku listu.  
3. `POST /questionnaire/{id}/answer` – podnosi verificirani odgovor, prilaže URL‑ove dokaza i označava zadatak kao dovršen.

Lagani Node.js omotač može izgledati ovako:

```javascript
async function answerQuestion(questionId) {
  const q = await api.getQuestion(questionId);
  const fragments = await api.searchPolicies(q.keywords);
  const prompt = buildPrompt(q.text, fragments);
  const { answer, verification } = await api.llmGenerate(prompt);
  if (verify(verification)) {
    await api.submitAnswer(questionId, answer, fragments.evidenceLinks);
  } else {
    const revisedPrompt = addFeedback(prompt, verification);
    // recursion or loop until pass
  }
}
```

Kad se poveže u UI Procurize‑a, analitičari sigurnosti mogu kliknuti **“Automatski generiraj odgovor”** i pratiti napredak kroz korake prikazane u Mermaid dijagramu.

---

## 6. Mjerenje Uspjeha  

| Metrika | Početno stanje | Cilj nakon Inženjeringa Promptova |
|---------|----------------|------------------------------------|
| Prosječno vrijeme izrade odgovora | 45 min | ≤ 15 min |
| Stopa korekcija od strane čovjeka | 22 % | ≤ 5 % |
| Usklađenost s referencama politike (oznake) | 78 % | ≥ 98 % |
| Ocjena zadovoljstva revizora | 3.2/5 | ≥ 4.5/5 |

Ove KPI‑e prikupljajte putem Procurize‑ove analitičke nadzorne ploče. Kontinuirano praćenje omogućuje fino podešavanje prompt šablona i selekcije fragmenta politike.

---

## 7. Zamke i Kako Ih Izbjeći  

| Zamka | Simptom | Rješenje |
|-------|---------|----------|
| Preopterećenje prompta irelevantnim fragmentima | Odgovor odskače, povećana latencija LLM‑a | Implementiraj prag relevantnosti (npr. kosinusna sličnost > 0.78) prije uključivanja |
| Ignoriranje temperature modela | Povremeno kreativni, ali netočni izlazi | Fiksiraj temperature na nisku vrijednost (0.1‑0.2) za radnike usklađenosti |
| Neverzioniranje fragmenta politike | Odgovori referenciraju zastarjele klauzule | Pohrani fragmente s ID‑om verzije i nameće „najnovije‑samo“ pravilo, osim ako nije eksplicitno traženo |
| Oslanjanje na jedinstvenu provjeru | Propušteni rubni slučajevi | Pokreni sekundarnu provjeru putem pravila (npr. regex za zabranjene termine) nakon LLM‑ovog prolaza |

---

## 8. Budući Smjerovi  

* **Dinamička Optimizacija Promptova** – korištenje reinforcement learninga za automatsko prilagođavanje formulacije prompta na temelju povijesnih stopa uspjeha.  
* **Ensembli Višestrukih LLM‑ova** – paralelno upitavanje više modela i odabir odgovora s najvišim verifikacijskim rezultatom.  
* **Složeni AI‑Slojevi za Objašnjenje** – priložiti sekciju „Zašto ovaj odgovor“ koja citira točne numerirane stavke politike, čime se omogućuje potpuno auditabilna revizija.  

Ovi napredci pomiču automatizaciju s razine *“brz nacrt”* na *“spremno za reviziju bez ljudskog dodatka.”*

---

## Zaključak  

Inženjering promptova nije jednokratni trik; to je sustavna disciplina koja moćne LLM‑ove pretvara u pouzdane asistente za usklađenost. Kroz:

1. Precizno dohvaćanje fragmenta politike,  
2. Sastavljanje višedjelnih promptova koji kombiniraju kontekst, instrukcije, ograničenja i verifikaciju,  
3. Automatizaciju petlje povratne informacije koja prisiljava model na samopropitivanje, i  
4. Besproblematno ugradnju cijelog procesa u platformu poput Procurize‑a,

organiza­cije mogu skratiti vrijeme izrade upitnika, smanjiti ručne pogreške i održati stroge audit‑trake koje zahtijevaju regulatori i kupci.

Započnite pilot projekt na upitniku niske razine rizika, zabilježite KPI‑e i iterirajte prompt šablone. U roku od tjedana postići ćete istu razinu točnosti koju pruža senior stručnjak za usklađenost – samo uz djelić napora.

---  

## Pogledajte Također  

- Najbolje prakse inženjeringa promptova za LLM‑ove  
- Uzorki dizajna i zamke Retrieval‑Augmented Generation‑a  
- Trendovi automatizacije usklađenosti za 2025. godinu  
- Pregled Procurize‑ovog API‑ja i vodič za integraciju