
# Informacijos Papildymo Generavimas (RAG) su Adaptaciniais Promptų Šablonais Saugioms Klausimyno Automatizavimui

Greitai besikeičiančiame SaaS atitikties pasaulyje saugumo klausimynai tapo vartų sargybu kiekvienai naujai sutartiai. Komandos vis dar praleidžia begales valandų peržiūrėdamos politikos dokumentus, įrodymų saugyklas ir ankstesnių auditų archyvus, kad sukurtų atsakymus, tenkinančius reikalaujančius auditorius. Tradiciniai AI pagalbos atsakymų generavimo įrankiai dažnai nuslūgsta, nes jie remiasi statišku kalbos modeliu, negaliniu užtikrinti, kad cituojami įrodymai būtų švieži ir aktualūs.  

**Informacijos Papildymo Generavimas (RAG)** užpildo šį tarpą, tiekiant dideliam kalbos modeliui (LLM) atnaujintus, kontekstui pritaikytus dokumentus inferencijos metu. Kai RAG sujungiama su **adaptaciniais promptų šablonais**, sistema gali dinamiškai formuoti užklausą LLM, atsižvelgdama į klausimyno sritį, rizikos lygį ir gautus įrodymus. Rezultatas – uždaras ciklas, generuojantis **tikslius, audituojamus ir atitinkančius** atsakymus, tuo pačiu paliekant žmogų – atitikties pareigūną – patvirtinimo grandyje.

Toliau apžvelgsime architektūrą, promptų inžinerijos metodiką ir operacines geriausias praktikas, kurios šią koncepciją paverčia pasiruošusia gamybos paslauga bet kokio saugumo klausimyno darbo eigai.

---

## 1. Kodėl vien tik RAG nepakanka

Standartinis RAG procesas paprastai vyksta trijų žingsnių:

1. **Dokumentų paieška** – Vektorinis paieškos užklausimas per žinių bazę (politikų PDF, auditų žurnalus, tiekėjų patvirtinimus) grąžina top‑k labiausiai susijusius fragmentus.  
2. **Konteksto įterpimas** – Gauti fragmentai sujungiami su naudotojo užklausa ir perduodami LLM.  
3. **Atsakymo generavimas** – LLM sukuria atsakymą, kartais cituodamas gautą tekstą.

Nors tai pagerina faktų tikslumą, palyginti su grynu LLM, dažnai kyla **promptų trapumas**:

- Skirtingi klausimynai klausia panašių koncepcijų šiek tiek skirtingais žodžiais. Statiškas promptas gali per daug apibendrinti arba praleisti reikiamą atitikties formulavimą.  
- Įrodymų aktualumas keičiasi, kai politikos keičiasi. Vienas promptas negali automatiškai prisitaikyti prie naujos reguliacinės kalbos.  
- Auditoriai reikalauja **sekamų citatų**. Vien tik RAG gali įterpti fragmentus be aiškios citavimo semantikos, reikalingos auditų takelims.

Šie trūkumai skatina kitą sluoksnį: **adaptacinius promptų šablonus**, kurie vystosi kartu su klausimyno kontekstu.

---

## 2. Adaptacinio RAG plano pagrindiniai komponentai

```mermaid
graph TD
    A["Gaunamas Klausimyno Įrašas"] --> B["Rizikos ir Srities Klasifikatorius"]
    B --> C["Dinaminė Promptų Šablonų Sistema"]
    C --> D["Vektorinė Paieška (RAG)"]
    D --> E["LLM (Generavimas)"]
    E --> F["Atsakymas su Struktūruotomis Citatomis"]
    F --> G["Žmogaus Peržiūra ir Patvirtinimas"]
    G --> H["Audito Paruoštas Atsakymų Saugojimas"]
```

- **Rizikos ir Srities Klasifikatorius** – Naudoja lengvą LLM arba taisyklėmis pagrįstą variklį, kad kiekvienam klausimui priskirtų rizikos lygį (aukštas / vidutinis / žemas) ir sritį (tinklas, duomenų privatumas, tapatybės valdymas ir kt.).  
- **Dinaminė Promptų Šablonų Sistema** – Laiko biblioteką išrankiai parinktų promptų fragmentų (įžanga, politikos specifinė kalba, citatų formatas). Vykdymo metu ji pasirenka ir sujungia fragmentus, remdamasi klasifikatoriaus išvestimi.  
- **Vektorinė Paieška (RAG)** – Atlieka panašumo paiešką per *versijomis* valdomą įrodymų saugyklą. Saugykla indeksuojama įterpimais ir metaduomenimis (politikos versija, galiojimo data, recenzentas).  
- **LLM (Generavimas)** – Gali būti nuosavybinis modelis arba atviro kodo LLM, pritaikytas atitikties kalbai. Jis vykdo struktūruotą promptą ir generuoja atsakymus markdown formatu su aiškiai nurodytais citatų ID.  
- **Žmogaus Peržiūra ir Patvirtinimas** – Naudotojo sąsaja, kurioje atitikties analitikai tikrina atsakymą, redaguoja citatas arba prideda papildomą naratyvą. Sistema registruoja kiekvieną redagavimą sekamumui.  
- **Audito Paruoštas Atsakymų Saugojimas** – Išsaugo galutinį atsakymą kartu su tiksliomis naudojamų įrodymų nuotraukomis, suteikdamas **vieną šaltinį** bet kuriam ateities auditui.

---

## 3. Adaptacinių Promptų Šablonų kūrimas

### 3.1 Šablonų detalumas

Promptų fragmentai turėtų būti organizuoti pagal **keturias ortogonalias dimensijas**:

| Dimensija | Pavyzdinės reikšmės | Priežastis |
|-----------|---------------------|------------|
| **Rizikos lygis** | `high`, `medium`, `low` | Valdo išsamumo lygį ir reikiamą įrodymų skaičių. |
| **Reguliavimo sritis** | `[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)`, `[ISO 27001](https://www.iso.org/standard/27001)`, `[GDPR](https://gdpr.eu/)` | Įterpia reguliavimo specifinę terminologiją. |
| **Atsakymo stilius** | `concise`, `narrative`, `tabular` | Atitinka klausimyno lūkesčius dėl formato. |
| **Citatų režimas** | `inline`, `footnote`, `appendix` | Tenka auditoriaus pageidavimus. |

Promptų fragmentas gali būti išreikštas paprastoje JSON/YAML katalogo forma:

```yaml
templates:
  high:
    intro: "Atsižvelgiant į mūsų galiojančias kontrolės priemones, patvirtiname, kad"
    policy_clause: "Kreipkitės į politiką **{{policy_id}}** dėl išsamios valdymo informacijos."
    citation: "[[Įrodymas {{evidence_id}}]]"
  low:
    intro: "Taip."
    citation: ""
```

Vykdymo metu sistema surenka:

```
{{intro}} {{answer_body}} {{policy_clause}} {{citation}}
```

### 3.2 Promptų surinkimo algoritmas (pseudo‑kodas)

```goat
func BuildPrompt(question Question, evidence []Evidence) string {
    risk := ClassifyRisk(question)
    scope := IdentifyRegulation(question)
    style := ChooseStyle(question)
    tmpl := LoadTemplate(risk, scope, style)

    // Įterpiami dinaminiai laukai
    prompt := strings.ReplaceAll(tmpl.intro, "{{policy_id}}", evidence[0].PolicyID)
    prompt = strings.ReplaceAll(prompt, "{{answer_body}}", "{{USER_ANSWER}}")
    prompt = strings.ReplaceAll(prompt, "{{evidence_id}}", evidence[0].ID)

    return prompt
}
```

Vietaženklis **`{{USER_ANSWER}}`** vėliau pakeičiamas LLM generuotu tekstu, garantuojant, kad galutinis išvedimas tiksliai atitiks reguliavimo kalbą, apibrėžtą šablonu.

---

## 4. Įrodymų Saugyklos Projektavimas Audituojamam RAG

Audituojama įrodymų saugykla turi atitikti tris principus:

1. **Versijavimas** – Kiekvienas dokumentas po įkėlimo tampa nekeitiamas; atnaujinimai sukuria naują versiją su laiko žyme.  
2. **Metaduomenų Praturtinimas** – Įtraukiami laukai, tokie kaip `policy_id`, `control_id`, `effective_date`, `expiration_date` ir `reviewer`.  
3. **Prieigos Auditas** – Registruoja kiekvieną paieškos užklausą, susiejant užklausos maišos reikšmę su tikslu pateiktu dokumentų versija.

Praktiškas įgyvendinimas naudoja **Git‑pagrįstą objektų saugyklą**, sukuriančią vektorinį indeksą (pvz., **FAISS** arba **Vespa**). Kiekvienas commit atspindi įrodymų bibliotekos momentinį „snapshot“. Sistema gali grįžti prie ankstesnio „snapshot“, jei auditoriai prašo įrodymų iš konkrečios datos.

---

## 5. Žmogaus į kilpą (Human‑in‑the‑Loop) darbo eiga

Net ir turint pažangiausią promptų inžineriją, atitikties specialistas turėtų patvirtinti galutinį atsakymą. Įprasta UI eiga apima:

1. **Peržiūrą** – Rodo generuotą atsakymą su paspaudžiamais citatų ID, kurie išplečia atitinkamą įrodymo fragmentą.  
2. **Redagavimą** – Leidžia analitikui koreguoti formuluotes arba pakeisti citatą naujesniu dokumentu.  
3. **Patvirtinimą / Atmetimą** – Patvirtinus, sistema įrašo kiekvienos cituojamos dokumento versijos kontrolės maišą, sukurdama nekeičiama audito takelį.  
4. **Grįžtamąjį ryšį** – Analitiko pataisymai perduodami į **reinforcement learning** modulį, kuris tobulina promptų pasirinkimo logiką ateities klausimams.

---

## 6. Sėkmės matavimas

Įdiegus adaptacinę RAG sistemą, jos efektyvumas turėtų būti vertinamas pagal **greitį** ir **kokybės** metrikas:

| KPI | Apibrėžimas |
|-----|-------------|
| **Atsako laikas (TAT)** | Vidutinis laikas minutėmis nuo klausimo gavimo iki patvirtinto atsakymo. |
| **Citatų tikslumas** | Procentas citatų, kurių auditoriai laiko teisingomis ir atnaujintomis. |
| **Rizikos svoriu paklaidos dažnis** | Klaidos, svertinės pagal klausimo rizikos lygį (aukštos rizikos klaidos baudžiamas sunkiau). |
| **Atitikties balas** | Sudėtinis balas, gaunamas iš auditų rezultatų per ketvirtį. |

Pradiniuose pilotiniuose projektuose komandos pranešė **70 % TAT sumažėjimą** ir **30 % citatų tikslumo padidėjimą** po adaptacinių promptų įdiegimo.

---

## 7. Įgyvendinimo kontrolinis sąrašas

- [ ] Inventorizuoti visus esamus politikos dokumentus ir juos saugoti su versijų metaduomenimis.  
- [ ] Sukurti vektorinį indeksą su įterpimais, generuotais iš naujausio modelio (pvz., **OpenAI text‑embedding‑3‑large**).  
- [ ] Apibrėžti rizikos lygius ir susieti klausimyno laukus su šiais lygiais.  
- [ ] Sukurti biblioteka su promptų fragmentais kiekvienam lygiui, reguliavimui ir stiliui.  
- [ ] Parengti promptų surinkimo servisą (rekomenduojama bevalė mikroserviso architektūra).  
- [ ] Integruoti LLM galinį tašką, palaikantį sistemos instrukcijas.  
- [ ] Sukurti UI žmogaus peržiūrai, registruojančiai kiekvieną redagavimą.  
- [ ] Nustatyti automatizuotas audito ataskaitas, išgaunančias atsakymą, citatas ir įrodymų versijas.  

---

## 8. Ateities kryptys

1. **Daugialypė (multimodal) paieška** – Išplėsti įrodymų saugyklą, įtraukiant ekrano nuotraukas, architektūrinius diagramas ir video įrašus, naudojant Vision‑LLM modelius turtingesniam kontekstui.  
2. **Savigyjančios (self‑healing) promptų sistemos** – Naudoti LLM valdomą meta‑mokymą automatiniam naujų promptų fragmentų pasiūlymui, kai klaidos dažnis tam tikroje srityje kyla.  
3. **Zero‑Knowledge Proof (ZKP) integracija** – Suteikti kriptografinį įrodymą, kad atsakymas kilęs iš konkrečios dokumento versijos, neišskleidžiant viso dokumento, patenkinant itin reguliuojamus sektorius.

RAG ir adaptacinių promptų susijungimas taps pagrindiniu šiuolaikinės atitikties automatizacijos kampu. Sukūrus modulini, audituojamą procesą, organizacijos ne tik pagreitins klausimyno atsakymų kūrimą, bet ir sukurs nuolatinio tobulėjimo bei reguliacinio atsparumo kultūrą.