
# Komponuojama raginimų rinka adaptiviam saugumo klausimynų automatizavimui

*Pasaulyje, kur dešimtos kartos saugumo klausimynų kiekvieną savaitę patenka į SaaS tiekėjo pašto dėžutę, AI generuojamų atsakymų greitis ir tikslumas gali lemti ar laimėti sandorį, ar prarasti potencialų klientą.*  

Dauguma komandų šiandien rašo ad‑hoc raginimus kiekvienam klausimynui, kopijuodamos politikos tekstų fragmentus, keičiažodžius ir tikisi, kad LLM duos atitinkamą atsakymą. Šis rankinis „raginimas po raginimo“ metodas sukelia netikslumus, audito riziką ir paslėptas išlaidas, kurios auga proporcingai klausimynų skaičiui.  

**Komponuojama raginimų rinka** keičia žaidimo taisykles. Vietoj to, kad kiekvienam klausimui iš naujo sukurtumėte raginimą, komandos kuria, peržiūri, versijuoja ir publikuoja pakartotinai naudojamus raginimo komponentus, kuriuos galima surinkti pagal poreikį. Rinka tampa bendru žinių bazės centru, kuris sujungia **raginimų inžineriją**, **politika kaip kodas** ir **valdymą** į vieną, paiešką palaikančią sąsają – teikdamas greitesnius, patikimesnius atsakymus ir išlaikydamas atitikties audito taką nepakitusią.

---

## Kodėl raginimų rinka svarbi

| Skausmo taškas | Tradicinis požiūris | Sprendimas rinkoje |
|----------------|----------------------|--------------------|
| **Nenuosekli kalba** | Kiekvienas inžinierius rašo savo formuluotes. | Centralizuoti raginimų standartai skatina vienodą terminologiją visų atsakymų mastu. |
| **Slaptos žinios** | Ekspertizė gyvena atskiruose pašto dėžutėse. | Raginimai yra randami, peržiūrimi ir žymimi pakartotinai naudojimui. |
| **Versijų pasenimas** | Seni raginimai išlieka po politikos atnaujinimų. | Semantinė versijavimas seka pokyčius ir priverčia peržiūrėti, kai politika keičiasi. |
| **Audito sunkumai** | Sunku įrodyti, kuris raginimas sukėlė konkretų atsakymą. | Kiekvienas raginimo įvykdymas registruoja tikslaus raginimo ID, versiją ir politikos momentinį būseną. |
| **Greičio buteliukas** | Naujo raginimo kūrimas prideda minutes prie kiekvieno klausimyno. | Iš anksto paruoštos raginimo bibliotekos sumažina pastangą nuo kelių minučių iki sekundžių. |

Taigi rinka tampa **strategine atitikties priemone** – gyva biblioteka, besikeičiančia kartu su reguliavimo pakeitimais, vidinėmis politikos atnaujinimais ir LLM patobulinimais.

---

## Pagrindinės sąvokos

### 1. Raginimas kaip pirmos rūšies artefaktas  
Raginimas saugomas kaip JSON objektas, kuriame yra:
- **id** – globaliai unikalus identifikatorius.  
- **title** – glaustas žmogui suprantamas pavadinimas (pvz., “ISO 27001‑Control‑A.9.2.1 Santrauka”).  
- **version** – semantinės versijos eilutė (`1.0.0`).  
- **description** – paskirtis, taikoma reglamentacija ir naudojimo pastabos.  
- **template** – Jinja‑stiliaus vietos žymės dinamiškiems duomenims (`{{control_id}}`).  
- **metadata** – žymės, reikalaujami politikos šaltiniai, rizikos lygis ir savininkas.  

```json
{
  "id": "prompt-iso27001-a9-2-1",
  "title": "ISO 27001 kontrolė A.9.2.1 Santrauka",
  "version": "1.0.0",
  "description": "Generuoja trumpą atsakymą apie prieigos kontrolės politiką, aprašytą ISO 27001 A.9.2.1.",
  "template": "Pateikite trumpą aprašymą, kaip {{company}} įgyvendina {{control_id}} pagal ISO 27001. Nurodykite politiką {{policy_ref}}.",
  "metadata": {
    "tags": ["iso27001", "prieigos‑kontrolė", "santrauka"],
    "risk": "low",
    "owner": "security‑lead"
  }
}
```

*Pastaba: nuoroda į oficialų ISO 27001 standartą – žiūrėkite [ISO 27001](https://www.iso.org/standard/27001) bei platesnį informacijos saugumo valdymo sistemų aprašymą [ISO/IEC 27001 Information Security Management](https://www.iso.org/isoiec-27001-information-security.html).*  

### 2. Komponuojamumas per raginimų grafus  
Sudėtingi klausimynų elementai dažnai reikalauja kelių duomenų šaltinių (politikos tekstas, įrodymų URL, rizikos įvertinimai). Vietoj monolitinio raginimo modeliuojame **kryptinį aciklinį grafą (DAG)**, kurio kiekvienas mazgas – raginimo komponentas, o briaunos apibrėžia duomenų srautą.

```mermaid
graph TD
    A["Politikos gavimo raginimas"] --> B["Rizikos įvertinimo raginimas"]
    B --> C["Įrodymų nuorodos generavimo raginimas"]
    C --> D["Galutinio atsakymo surinkimo raginimas"]
```

Grafas įvykdomas iš viršaus žemyn, kiekvienas mazgas grąžina JSON struktūrą, kuri perduodama kitam mazgui. Tai leidžia **naudoti žemo lygio komponentus** (pvz., „Gauti politikos punktą“) daugelyje aukšto lygio atsakymų.

### 3. Versijavimas ir politikos momentiniai duomenys  
Kiekvienas raginimo įvykdymas fiksuoja **politikos momentinį duomenų rinkinį**: tiksli politikos dokumentų versija tuo momentu. Tai užtikrina, kad vėlesni auditai galėtų patikrinti, jog AI atsakymas pagrįstas ta pačia politika, kuri egzistavo atsakymo sukūrimo metu.

### 4. Valdymo procesas  
- **Juodraštis** – Raginimo autorius kuria naują komponentą privačioje šakoje.  
- **Peržiūra** – Atitikties peržiūrėtojas patikrina kalbą, politikos atitikimą ir riziką.  
- **Testavimas** – Automatizuota testų serija vykdo bandomuosius klausimynų elementus prieš raginimą.  
- **Publikavimas** – Patvirtintas raginimas sujungiamas į viešąją rinką su nauja versijos žyme.  
- **Atsijungimas** – Senesni raginimai pažymimi kaip „archyvuoti“, tačiau lieka nekintami istorinės sekos tikslais.

---

## Architektūrinis brėžinys

Žemiau pateikiamas aukšto lygio vaizdas, kaip rinka integruojama su esamu „Procurize“ AI varikliu.

```mermaid
flowchart LR
    subgraph UI [Vartotojo sąsaja]
        A1[Promptų bibliotekos UI] --> A2[Promptų kūrimo įrankis]
        A3[Klausimyno kūrimo UI] --> A4[AI atsakymų variklis]
    end
    subgraph Services
        B1[Promptų registre] --> B2[Versijavimo ir metaduomenų DB]
        B3[Politikos saugykla] --> B4[Momentinių duomenų servisas]
        B5[Įvykdymo variklis] --> B6[LLM tiekėjas]
    end
    subgraph Auditing
        C1[Įvykdymų žurnalas] --> C2[Audito skydelis]
    end
    UI --> Services
    Services --> Auditing
```

**Svarbiausi sąveikos taškai**

1. **Promptų bibliotekos UI** gauna raginimo metaduomenis iš **Promptų registro**.  
2. **Promptų kūrimo įrankis** leidžia autoriams komponuoti DAG diagramas per vilkimo‑ir‑numetimo sąsają; sukurtas grafas saugomas kaip JSON manifestas.  
3. Apdorojant klausimyno elementą, **AI atsakymų variklis** kreipiasi į **Įvykdymo variklį**, kuris vykdo grafą, išgauna politikos momentinius duomenis per **Momentinių duomenų servisą** ir kviečia **LLM tiekėją** kiekvienam komponentui.  
4. Kiekvienas įvykdymas registruoja raginimo ID, versiją, politikos snapshot ID ir LLM atsakymą **Įvykdymų žurnale**, kurį analizuoja **Audito skydelis**.

---

## Įgyvendinimo žingsniai

### Žingsnis 1: Promptų registro kūrimas  
- Naudokite reliacinę duomenų bazę (PostgreSQL) su lentelėmis `prompts`, `versions`, `tags` ir `audit_log`.  
- Suteikite REST API (`/api/prompts`, `/api/versions`) su OAuth2 prieigos kontrolę.

### Žingsnis 2: Promptų kūrimo UI  
- Pasinaudokite modernia JavaScript biblioteka (React + D3) grafų vizualizavimui.  
- Įdiekite **šablono redaktorių** su realiu Jinja patikrinimu ir automatiniais policijos vietų parinkimu.

### Žingsnis 3: Politikos momentinių duomenų integravimas  
- Saugokite kiekvieną politikos dokumentą versijavimo objektų saugykloje (pvz., S3 su versijavimu).  
- **Momentinių duomenų servisas** grąžina turinio maišos reikšmę ir laiko žymą pagal `policy_ref` įvykdymo metu.

### Žingsnis 4: Įvykdymo variklio išplėtimas  
- Modifikuokite esamą RAG (Retrieval‑Augmented Generation) procesą, kad priimtų **grafų manifestą**.  
- Įgyvendinkite **mazgo vykdytoją**, kuris:
  1. Atvaizduoja Jinja šabloną su kontekstu.  
  2. Iškviečia LLM (OpenAI, Anthropic ir kt.) su sistemos raginimu, kuriame yra politikos snapshot.  
  3. Grąžina struktūrizuotą JSON tolimesniam mazgui.

### Žingsnis 5: Automatinis valdymas  
- Sukurkite CI/CD (GitHub Actions) pipelines, kurie tikrina raginimo šablonus, vykdo vienetinius testus, bei atitikties patikrinimus (pvz., draudžiamų frazių neleidimas).  
- Privalomas bent vienas patvirtinimas iš atitikties peržiūrėtojo prieš sujungimą į viešą šaką.

### Žingsnis 6: Audituojamas paieškos variklis  
- Į indeksavimo sistemą (Elasticsearch) įkelkite raginimo metaduomenis ir įvykdymų žurnalus.  
- Sukurkite **paieškos UI**, kuri leidžia filtruoti pagal reglamentą (`iso27001`, `soc2`), rizikos lygį ar savininką.  
- Pridėkite „žiūrėti istoriją“ mygtuką, rodantį visą versijų liniją ir susijusias politikos snapshots.

---

## Pasiekti rezultatai

| Rodiklis | Prieš rinką | Po 6‑mėnesio piloto (rinka) |
|----------|-------------|-----------------------------|
| **Vidutinis atsakymo rengimo laikas** | 7 min per klausimą | 1,2 min per klausimą |
| **Atitikties audito trūkumai** | 4 mažos apimties per ketvirtį | 0 (pilnas sekimas) |
| **Raginimų pakartotinis naudojimas** | 12 % | 68 % (dauguma iš bibliotekos) |
| **Komandos pasitenkinimas (NPS)** | –12 | +38 |

Pilotinis projektas, vykdytas su „Procurize“ beta klientais, patvirtino, kad rinka ne tik sumažina operacines išlaidas, bet ir **sukuria ginčijamą atitikties poziciją**. Kadangi kiekvienas atsakymas susietas su konkrečiu raginimo versija ir politikos snapshot, auditoriai gali bet kuriuo metu atkurti bet kurį istorinį atsakymą.

---

## Geriausios praktikos ir klaidos

### Geriausios praktikos
1. **Pradėkite nuo paprastų** – Pirmiausia publikuokite raginimus dažniausiai pasitaikančioms kontrolėms (pvz., „Duomenų išsaugojimas“, „Šifravimas poilsio metu“), prieš plėsdami prie nišinių reglamentų.  
2. **Aktyviai žymėkite** – Naudokite smulkias žymes (`region:EU`, `framework:PCI-DSS`) geresniam atrankumui.  
3. **Uždrauskite griežtus išvesties šemų apibrėžimus** – Kiekvienam mazgui apibrėžkite patikimą JSON schemą, kad išvengtumėte žemų grandinių klaidų.  
4. **Stebėkite LLM pasikeitimus** – Registruokite naudotą modelio versiją ir planuokite ketvirtinį peržiūrą keičiant LLM tiekėjus.

### Dažniausios klaidos
- **Per didelis inžinerijavimas** – Sudėtingi DAG vien paprastam klausimui gali sukelti nereikalingą delsą. Laikykite grafą kuo lygesnį.  
- **Žmogaus peržiūros nuvertinimas** – Pilnai automatizuoti klausimynų atsakymai be galutinio žmogaus patikrinimo gali sukelti reguliacinius pažeidimus. Traktuokite rinką kaip **sprendimo priemonę**, o ne galutinį sprendimą.  
- **Politikos versijų chaosas** – Jei politikos dokumentai nėra versijuoti, snapshots praranda prasmę. Įdiekite privalomą politikos versijavimo procesą.

---

## Ateities patobulinimai

1. **Rinkos tarp rinka** – Leiskite trečiosioms šalims publikuoti sertifikuotas raginimo paketes nišiniams standartams (pvz., FedRAMP, HITRUST) ir uždirbti pajamas.  
2. **AI padedama raginimų generacija** – Naudokite meta‑LLM, kuris iš natūralaus kalbos aprašymo pasiūlys bazinį raginimą, po to peržiūrintį per įprastą valdymo kanalą.  
3. **Dinaminis rizikos maršrutas** – Sujunkite rinką su rizikos varikliu, kuris automatiškai skiria aukštesnės patikimumo raginimus aukštos įtakos klausimams.  
4. **Federuotas dalijimasis tarp organizacijų** – Įgyvendinkite federuotą ledger'ą (blokų grandinę), kad partneriai galėtų dalintis raginimais, išlaikant kilmės autentiškumą.

---

## Kaip pradėti dabar

1. **Įjunkite raginimų rinkos funkciją** savo „Procurize“ administravimo skiltyje.  
2. **Sukurkite pirmąjį raginimą**: “[SOC 2 CC5.1 Duomenų atsarginės kopijos santrauka](https://secureframe.com/hub/soc-2/what-is-soc-2)”. Patikrinkite „draft“ šaką.  
3. **Pakvieskite savo atitikties vadovą** peržiūrėti ir patvirtinti raginimą.  
4. **Priskirkite raginimą klausimyno elementui** naudodami vilkimo‑ir‑numetimo kūrimo priemonę.  
5. **Paleiskite bandymo įvykdymą**, patikrinkite atsakymą ir publikuokite.

Per kelias savaites tas pat pats klausimynas, kuris anksčiau užtruko valandas, dabar bus atsakytas per kelias minutes – *su pilna audito takelių sekimu*.

---

## Išvada

**Komponuojama raginimų rinka** paverčia raginimo kūrimą iš paslėpto rankinio darbo į strateginę, pakartotinai naudojamą žinių priemonę. Traktuodamos raginimus kaip versijavimo ir komponavimo komponentus, organizacijos gauna:

* **Greitį** – Akimirksniu surinktos atsakymo dalys iš patikrintų blokų.  
* **Nuoseklumą** – Vienoda kalba visuose atsakymuose.  
* **Valdymą** – Nepakeičiami audito takeliai, susieti su tiksliomis politikos versijomis.  
* **Mastą** – Galimybę tvarkyti didėjantį klausimynų kiekį nepadidindami personalo.

AI papildytoje atitikties erdvėje rinka yra trūkstamas elementas, leidžiantis SaaS tiekėjams neatsilikti nuo nuolat augančių reguliavimo reikalavimų ir suteikti klientams patikimą, automatizuotą patirtį.

---

## <span class='highlight-content'>Žiūrėti</span> Taip pat

- https://www.procurize.com/blog/zero-touch-evidence-generation-with-generative-ai  
- https://cloud.google.com/architecture/knowledge-graph-architecture  
- https://www.nist.gov/publications/framework-improving-accuracy-llm-based-compliance-tools  
- https://moritzschwizer.medium.com/prompt-engineering-best-practices-2025-6e5b2a1d9c4f