
# Dinamičko mapiranje ugovornih klauzula uz AI za sigurnosna pitanja

## Zašto je mapiranje ugovornih klauzula važno

Sigurnosni upitnici su čuvari B2B SaaS poslova. Tipičan upitnik postavlja pitanja poput:

* *„Šifrira li podatke u mirovanju? Navedite referencu klauzule iz vašeg Ugovora o usluzi.“*  
* *„Koje je vrijeme odziva na incident? Citirajte odgovarajuću odredbu u vašem Dodatku o obradi podataka.“*  

Točno odgovaranje na ova pitanja zahtijeva pronalaženje točne klauzule u moru ugovora, dodataka i politika. Tradicionalni ručni pristup pati od tri ključna nedostatka:

1. **Vrijeme** – Timovi za sigurnost provode sate tražeći pravi odlomak.  
2. **Ljudska pogreška** – Pogrešna referenca na klauzulu može uzrokovati propuste u usklađenosti ili neuspjeh revizije.  
3. **Zastarjele reference** – Ugovori se mijenjaju; stari brojevi klauzula postaju nevažeći, dok odgovori u upitniku ostaju nepromijenjeni.

Motor **Dinamičko mapiranje ugovornih klauzula (DCCM)** rješava sva tri problema pretvaranjem repozitorija ugovora u pretraživi, samoodržavajući graf znanja koji pokreće AI‑generirane odgovore na upitnike u stvarnom vremenu.

---

## Osnovna arhitektura DCCM motora

Dolje je prikazan visok nivo DCCM cjevovoda. Dijagram koristi **Mermaid** sintaksu za prikaz toka podataka i odlučujućih točaka.

```mermaid
stateDiagram-v2
    [*] --> IngestContracts: "Document Ingestion"
    IngestContracts --> ExtractText: "OCR & Text Extraction"
    ExtractText --> Chunkify: "Semantic Chunking"
    Chunkify --> EmbedChunks: "Vector Embedding (RAG)"
    EmbedChunks --> BuildKG: "Knowledge Graph Construction"
    BuildKG --> UpdateLedger: "Attribution Ledger Entry"
    UpdateLedger --> [*]

    state AIResponder {
        ReceiveQuestion --> RetrieveRelevantChunks: "Vector Search"
        RetrieveRelevantChunks --> RAGGenerator: "Retrieval‑Augmented Generation"
        RAGGenerator --> ExplainabilityLayer: "Citation & Confidence Scores"
        ExplainabilityLayer --> ReturnAnswer: "Formatted Answer with Clause Links"
    }

    [*] --> AIResponder
```

**Ključne komponente objašnjene**

| Komponenta | Svrha | Tehnologije |
|------------|-------|-------------|
| **IngestContracts** | Dohvaća ugovore, dodatke i SaaS uvjete iz oblačnog spremišta, SharePointa ili GitOps repozitorija. | Event‑driven Lambda, S3 triggers |
| **ExtractText** | Pretvara PDF‑ove, skenove i Word datoteke u sirovi tekst. | OCR (Tesseract), Apache Tika |
| **Chunkify** | Dijeli dokumente u semantički koherentne sekcije (obično 1‑2 odlomka). | Prilagođeni NLP razdjelnik temeljen na naslovima i hijerarhiji bullet‑ova |
| **EmbedChunks** | Kodira svaki fragment u gustu vektorsku reprezentaciju za pretragu sličnosti. | Sentence‑Transformers (all‑MiniLM‑L12‑v2) |
| **BuildKG** | Stvara graf svojstava gdje su čvorovi = klauzule, a rubovi = reference, obveze ili povezanih standarda. | Neo4j + GraphQL API |
| **UpdateLedger** | Zapisuje nepromjenjivu provjeru podrijetla za svaki dodani ili modificirani fragment. | Hyperledger Fabric (append‑only ledger) |
| **RetrieveRelevantChunks** | Pronalazi top‑k sličnih fragmenata za dani prompt upitnika. | FAISS / Milvus vector DB |
| **RAGGenerator** | Kombinira dohvaćeni tekst s LLM‑om kako bi generirao sažetan odgovor. | OpenAI GPT‑4o / Anthropic Claude‑3.5 |
| **ExplainabilityLayer** | Dodaje citate, ocjene pouzdanosti i vizualni isječak klauzule. | LangChain Explainability Toolkit |
| **ReturnAnswer** | Vraća odgovor u Procurize UI‑ju s klikabilnim linkovima na klauzule. | React front‑end + Markdown rendering |

---

## Retrieval‑Augmented Generation (RAG) susreće ugovornu preciznost

Standardni LLM‑i mogu halucinirati kada se traže referencije na ugovore. Utemeljenjem generacije u *stvarnim* fragmentima ugovora, DCCM motor jamči faktualnu točnost:

1. **Ugrađivanje upita** – Tekst pitanja korisnika pretvara se u vektor.  
2. **Top‑k dohvaćanje** – FAISS vraća najpribližnije ugovorne fragmente (k=5 po zadanim postavkama).  
3. **Inženjering prompta** – Dohvaćeni isječci ubacuju se u sistemski prompt koji prisiljava LLM da izričito navede izvor:

```
You are a compliance assistant. Use ONLY the provided contract excerpts to answer the question. 
For each answer, end with "Clause: <DocumentID>#<ClauseNumber>".
If the excerpt does not contain enough detail, respond with "Information not available".
```

4. **Post‑obrada** – Motor parsira LLM‑ov izlaz, provjerava da li svaka citirana klauzula postoji u grafu znanja i pridružuje ocjenu pouzdanosti (0–100). Ako ocjena padne ispod konfigurabilnog praga (npr. 70), odgovor se označava za ljudsku reviziju.

---

## Objašnjivo knjigovodstvo atribucije

Revizori zahtijevaju dokaz **gdje** je svaki odgovor nastao. DCCM motor zapisuje **kriptografski potpisani ledger zapis** za svaki događaj mapiranja:

```json
{
  "question_id": "Q-2025-07-12-001",
  "answer_hash": "sha256:8f3e...",
  "referenced_clause": "SA-2024-08#12.3",
  "vector_similarity": 0.94,
  "llm_confidence": 88,
  "timestamp": "2025-12-01T08:31:45Z",
  "signature": "0xABCD..."
}
```

Ovaj ledger:

* Osigurava nepromjenjivi audit trail.  
* Omogućuje **zero‑knowledge proof** upite, gdje regulator može verificirati postojanje citata bez otkrivanja cijelog ugovora.  
* Podržava **policy‑as‑code** provedbu – ako se klauzula deprekuje, ledger automatski označava sve povezane odgovore upitnika za re‑evaluaciju.

---

## Adaptacija u stvarnom vremenu na „klauzalni drift”

Ugovori su živi dokumenti. Kad se klauzula izmijeni, **usluga za otkrivanje promjena** recalculira ugrađivanja za zahvaćeni fragment, ažurira graf znanja i regenerira ledger zapise za sve odgovore upitnika koji su referirali modificiranu klauzulu. Cijeli ciklus obično traje **2–5 sekundi**, čime UI Procurize‑a uvijek prikazuje najnoviji jezik ugovora.

### Primjer scenarija

*Izvorna klauzula* (Verzija 1):  
> “Podaci se moraju šifrirati u mirovanju koristeći AES‑256.”

*Ažurirana klauzula* (Verzija 2):  
> “Podaci se moraju šifrirati u mirovanju koristeći AES‑256 ili ChaCha20‑Poly1305, ovisno o tome što se smatra prikladnijim.”

Nakon promjene verzije:

1. Ugrađivanje klauzule se osvježava.  
2. Svi odgovori koji su prethodno citirali „Klauzulu 2.1“ ponovno prolaze kroz RAG generator.  
3. Ako ažurirana klauzula uvodi opcionalnost, ocjena pouzdanosti može pasti, što potiče sigurnosnog revizora da potvrdi odgovor.  
4. Ledger bilježi **događaj drifta** povezujući stare i nove ID‑e klauzula.

---

## Kvantificirane prednosti

| Metrika | Prije DCCM | Nakon DCCM (30‑dnevni pilot) |
|--------|------------|-----------------------------|
| Prosječno vrijeme za odgovor na pitanje vezano uz klauzulu | 12 min (ručno pretraživanje) | 18 sek (AI‑potpomognuto) |
| Stopa ljudske pogreške (pogrešno citirane klauzule) | 4,2 % | 0,3 % |
| Postotak odgovora označenih za reviziju nakon ažuriranja ugovora | 22 % | 5 % |
| Ocjena zadovoljstva revizora (1‑10) | 6 | 9 |
| Ukupno smanjenje vremena obrada upitnika | 35 % | 78 % |

Ovi brojevi ilustriraju kako **jedan AI motor** može pretvoriti usko grlo u konkurentsku prednost.

---

## Popis za implemetaciju sigurnosnih timova

1. **Centralizacija dokumenata** – Osigurajte da su svi ugovori pohranjeni u strojno čitljivom repozitoriju (PDF, DOCX ili plain‑text).  
2. **Obogaćivanje metapodataka** – Označite svaki ugovor s `vendor`, `type` (SA, **[DPA](https://www.dpocentre.com/what-is-a-dpa-and-why-do-you-need-one/)**, SLA), i `effective_date`.  
3. **Kontrola pristupa** – Dajte DCCM servisu samo read‑only dozvole; write pristup ima samo knjigovodstvo provjere.  
4. **Upravljanje politikama** – Definirajte prag pouzdanosti (npr. > 80 % automatski prihvaćen).  
5. **Ljudska kontrola (HITL)** – Dodijelite compliance revizoru zadatak obrade odgovora s niskom pouzdanošću.  
6. **Kontinuirano praćenje** – Omogućite alarme za događaje drifta klauzula koji premašuju određeni rizik‑prag.  

Slijedeći ovaj popis osigurat ćete glatku implementaciju i maksimizirate ROI.

---

## Plan budućnosti

| Kvartal | Inicijativa |
|--------|-------------|
| Q1 2026 | **Višejezično dohvaćanje klauzula** – Iskoristiti višejezicne ugrađivanja za podršku ugovorima na francuskom, njemačkom i japanskom. |
| Q2 2026 | **Zero‑Knowledge Proof revizije** – Regulatorima omogućiti provjeru podrijetla klauzule bez izlaganja cijelog teksta ugovora. |
| Q3 2026 | **Edge‑AI implementacija** – Pokrenuti ugrađivanje na‑premisu za visoko regulirane industrije (financije, zdravstvo). |
| Q4 2026 | **Generiranje nedostajućih klauzula** – Kada tražena klauzula nedostaje, motor predlaže nacrt jezika usklađen s industrijskim standardima. |

---

## Zaključak

Dinamičko mapiranje ugovornih klauzula premošćuje jaz između pravnog teksta i zahtjeva sigurnosnih upitnika. Kombinirajući Retrieval‑Augmented Generation s semantičkim grafom znanja, nepromjenjivim ledgerom i otkrivanjem drifta u stvarnom vremenu, Procurize osnažuje sigurnosne timove da odgovaraju s povjerenjem, smanje vrijeme obrade i zadovolje revizore – sve dok ugovori ostaju automatski ažurirani.

Za SaaS kompanije koje žele brže osvojiti poduzeća, DCCM motor nije više „lijepa‑za‑imati“ – to je **nužna** konkurentska prednost.