
# Dynamické řízení souhlasu pro generování syntetických dat s Formize a generativní AI

> **TL;DR** – Moderní pipeline syntetických dat často přehlížejí měnící se preference souhlasu subjektů údajů. Vložením real‑time orchestraci formulářů Formize do generativně‑AI‑řízené syntézy dat mohou organizace zachytit detailní souhlas, automaticky jej vynutit během generování dat a udržet neměnný auditní řetězec, který splňuje požadavky [GDPR](https://gdpr.eu/), [CCPA](https://oag.ca.gov/privacy/ccpa) a nově vznikajících regulací AI‑etiky, jako je [EU AI Act](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai).

---

## Proč je souhlas důležitý u syntetických dat

Syntetická data slibují analytiku šetrnou k soukromí, ale *zdrojová* data stále patří skutečným jednotlivcům. Regulace jako **Obecné nařízení o ochraně osobních údajů (GDPR)**, **Kalifornský zákon o ochraně soukromí spotřebitelů (CCPA)** a připravovaný **EU AI Act** vyžadují, aby jakékoli následné využití osobních údajů – reálných i syntetických – respektovalo volby souhlasu subjektu údajů.

Klíčové výzvy:

| Výzva | Typický dopad |
|-----------|----------------|
| **Granulární rozsahy souhlasu** | Jednotný souhlas „ano/ne“ nezachytí nuancované preference (např. „povolit zdravotní data pro výzkum, ale ne pro marketing“). |
| **Verze souhlasu** | Souhlas se vyvíjí; starší verze mohou být neplatné, přesto pipeline nadále používá zastaralá oprávnění. |
| **Vynucení napříč systémy** | Pipeline dat zahrnují mnoho nástrojů (ETL, LLM, úložiště). Vynucení souhlasu napříč nimi je náchylné k chybám. |
| **Auditovatelnost** | Regulační orgány požadují neměnný důkaz o souhlasu v okamžiku generování dat. |

Formize, se svým nízkokódovým tvůrcem formulářů, architekturou API‑first a auditními logy kompatibilními s blockchainem, je unikátně připraven tento problém řešit.

---

## Architektonický přehled

Níže je diagram v jazyce Mermaid, který ilustruje kompletní tok od zachycení souhlasu po generování syntetických dat a jejich následnou spotřebu.

```mermaid
flowchart TD
    A["Data Subject Portal"] --> B["Formize Consent Form"]
    B --> C["Consent Ledger (Immutable)"]
    C --> D["Consent Service API"]
    D --> E["Synthetic Data Orchestrator"]
    E --> F["Generative AI Model (LLM / Diffusion)"]
    F --> G["Synthetic Dataset Store"]
    G --> H["Analytics & ML Teams"]
    H --> I["Regulatory Audit Dashboard"]
```

*Všechny uzly jsou uzavřeny v uvozovkách podle požadavků; žádné escapované znaky nejsou použity.*

### Rozpis komponent

1. **Portál subjektu údajů** – webové nebo mobilní rozhraní, kde si jednotlivci mohou zobrazit, upravit nebo odvolat souhlas.  
2. **Formize Consent Form** – konfigurovatelný low‑code formulář, který zachycuje rozsah souhlasu, účel, kategorie dat a datum expirace.  
3. **Consent Ledger** – Formize zapisuje každou událost souhlasu do neměnného logu (volitelně ukotveného na blockchainu pro důkaz integrity).  
4. **Consent Service API** – lehká mikro‑služba, která vystavuje koncové body `GET /consent/{subjectId}` a `POST /consent/validate`.  
5. **Synthetic Data Orchestrator** – orchestruje extrakci dat, transformaci a předávání do generativního modelu. Před každým úkolem generování dotazuje Consent Service.  
6. **Generative AI Model** – jakýkoli LLM, difúzní model nebo tabulární syntetizér, který konzumuje surová data.  
7. **Synthetic Dataset Store** – zabezpečené úložiště objektů s metadaty odkazujícími zpět na použité verze souhlasu.  
8. **Analytics & ML Teams** – konzumují syntetická data pro trénink modelů, testování nebo reportování.  
9. **Regulatory Audit Dashboard** – vizualizuje původ souhlasu, časové razítka generování a genealogii modelu.  

---

## Průvodce implementací krok za krokem

### 1. Navrhněte formulář souhlasu ve Formize

* Použijte drag‑and‑drop builder Formize k vytvoření polí:
  * **Data Categories** – výběr více možností (např. „demografie“, „zdravotní záznamy“, „finanční transakce“).
  * **Allowed Purposes** – zaškrtávací políčka (např. „výzkum“, „vývoj produktu“, „marketing“).
  * **Retention Period** – výběr data.
  * **Dynamic Conditions** – podmíněná logika, která zobrazí další pole, když je vybráno „Citlivá data“.

* Povolte **verzování**: pokaždé, když se změní schéma formuláře, Formize automaticky vytvoří nové ID verze (`v1`, `v2`, …). Toto ID verze je uloženo spolu s každým záznamem souhlasu.

### 2. Zachyťte události souhlasu

Když subjekt odešle formulář:

```json
POST /api/v1/consent
{
  "subjectId": "user-12345",
  "formVersion": "v3",
  "consentGiven": true,
  "scopes": ["demographics", "financial"],
  "purposes": ["research"],
  "expiresAt": "2028-12-31T23:59:59Z",
  "signature": "base64‑encoded‑hash"
}
```

Formize zapíše tento payload do **Consent Ledger**, který lze nastavit tak, aby:

* Ukládal do neměnné databáze typu append‑only (např. **Cassandra** s **Time‑Series** kompakcí).
* Volitelně publikoval hash do veřejného blockchainu (např. **Ethereum** nebo **Polygon**) pro externí ověření.

### 3. Vytvořte Consent Service API

Lehký wrapper kolem SDK Formize:

```go
// consent_service.go
package consent

import (
    "net/http"
    "encoding/json"
    "github.com/formize/sdk"
)

type ConsentRequest struct {
    SubjectID string `json:"subjectId"`
    DataCategories []string `json:"dataCategories"`
    Purpose string `json:"purpose"`
}

// Validate checks if the subject’s consent covers the requested scope.
func Validate(w http.ResponseWriter, r *http.Request) {
    var req ConsentRequest
    json.NewDecoder(r.Body).Decode(&req)

    consent, err := sdk.GetLatestConsent(req.SubjectID)
    if err != nil {
        http.Error(w, "Consent not found", http.StatusNotFound)
        return
    }

    // Simple rule engine
    allowed := false
    for _, cat := range req.DataCategories {
        for _, allowedCat := range consent.Scopes {
            if cat == allowedCat {
                allowed = true
                break
            }
        }
    }

    if allowed && consent.PurposesContains(req.Purpose) && !consent.IsExpired() {
        w.WriteHeader(http.StatusOK)
        json.NewEncoder(w).Encode(map[string]bool{"allowed": true})
    } else {
        w.WriteHeader(http.StatusForbidden)
        json.NewEncoder(w).Encode(map[string]bool{"allowed": false})
    }
}
```

*Službu lze nasadit jako funkci **Knative** nebo jako kontejner **Docker** za API gateway.*

### 4. Integrujte s Synthetic Data Orchestrator

Většina orchestrací (např. **Airflow**, **Prefect**, **Dagster**) podporuje vlastní Python operátory. Níže je úloha Prefect, která před spuštěním generování ověří souhlas.

```python
# consent_check_task.py
from prefect import task, Flow
import requests

@task
def check_consent(subject_id: str, categories: list, purpose: str):
    payload = {
        "subjectId": subject_id,
        "dataCategories": categories,
        "purpose": purpose
    }
    resp = requests.post("https://consent.service/api/v1/validate", json=payload)
    resp.raise_for_status()
    return resp.json()["allowed"]

@task
def generate_synthetic_data(subject_id: str):
    # Placeholder for LLM or diffusion model call
    print(f"Generating synthetic data for {subject_id}")

with Flow("synthetic-data-pipeline") as flow:
    allowed = check_consent("user-12345", ["demographics"], "research")
    generate = generate_synthetic_data("user-12345")
    generate.set_upstream(allowed, upstream_tasks=[allowed])

flow.run()
```

Pokud je `allowed` **False**, pipeline se přeruší a auditní záznam se zaznamená.

### 5. Uložte metadata generování

Při ukládání syntetického datasetu připojte **manifest metadat**:

```json
{
  "datasetId": "synthetic-2026-08-21-001",
  "generatedAt": "2026-08-21T14:32:10Z",
  "consentVersion": "v3",
  "subjectId": "user-12345",
  "model": "gpt‑4‑synthetic‑v1",
  "purpose": "research"
}
```

Formize může automaticky vložit tento manifest do **custom metadata** objektu (např. hlavičky `x-amz-meta-*` v S3) nebo jej uložit do katalogu jako **DataHub**.

### 6. Vytvořte auditní dashboard

Pomocí **Grafany** nebo **Superset** vizualizujte:

* Verze souhlasu vs. verze syntetického datasetu.  
* Počet datasetů generovaných podle účelu.  
* Události odvolání souhlasu a jejich dopad na downstream pipeline.

Ukázkový dotaz pro Grafanu (SQL‑like pseudokód):

```sql
SELECT
  consent_version,
  COUNT(*) AS datasets_generated,
  SUM(CASE WHEN purpose = 'research' THEN 1 ELSE 0 END) AS research_datasets
FROM synthetic_dataset_store
GROUP BY consent_version
ORDER BY consent_version DESC;
```

---

## Výhody smyčky souhlasu řízené Formize

| Výhoda | Vysvětlení |
|---------|-------------|
| **Soulad s regulacemi** | Real‑time validace zajišťuje, že jsou použita jen data s aktuálním souhlasem, čímž splňuje GDPR čl. 7 a CCPA § 1798.120. |
| **Dynamický souhlas** | Subjekty mohou kdykoli měnit preference; další běh pipeline automaticky respektuje nový stav. |
| **Neměnný původ** | Každá událost souhlasu je kryptograficky spojena s vygenerovanými datasety, což umožňuje auditovatelný a nezfalšovatelný důkaz. |
| **Škálovatelný low‑code** | Vizualní builder Formize snižuje vývojový čas; týmy pro soulad mohou formuláře spravovat přímo. |
| **Opětovné použití napříč doménami** | Stejná služba souhlasu může být využita analytikou, trénováním AI i třetími stranami datových trhů. |

---

## Reálné příklady použití

### 1. Konsorcium pro výzkum ve zdravotnictví

Konsorcium několika institucí potřebuje syntetické záznamy pacientů pro trénink AI modelů, přičemž musí respektovat preference pacientů ohledně odvolání souhlasu. Díky implementaci smyčky souhlasu:

* Zachytí souhlas na portálu nemocnice.  
* Zaručí, že jakýkoli syntetický kohort vyloučí pacienty, kteří souhlas odvolali.  
* Poskytne regulátorům jedním kliknutím auditní zprávu spojující každý syntetický záznam s hash‑em souhlasu.

### 2. Modelování rizik ve finančních službách

Banky generují syntetické transakční data pro stres‑testování. S Formize:

* Oddělí souhlas pro „marketing“ od souhlasu pro „rizikovou analýzu“.  
* Automaticky blokují generování syntetických dat pro zákazníky, kteří souhlas udělili jen pro marketing.  
* Sníží právní riziko a urychlí vývoj modelů.

### 3. Vývoj produktů v oblasti spotřebitelské technologie

Společnost SaaS sbírá telemetrii používání. S Formize:

* Nabízí granulární souhlas pro „experimentování s funkcemi“ vs. „reklamu“.  
* Dynamicky upravuje syntetické pipeline podle toho, jak uživatelé své preference mění.  
* Udržuje veřejný dashboard, který ukazuje, jak jsou data využívána na základě souhlasu.

---

## Nejlepší postupy a časté chyby, kterým se vyhnout

| Nejlepší postup | Proč je důležitý |
|-----------------|-------------------|
| **Verzovat každou změnu formuláře** | Zajišťuje, že staré záznamy souhlasu zůstávají spojené s přesně tím schématem, které bylo použito v době zachycení. |
| **Nikdy neukládat surové PII do syntetického datasetu** | Syntetická data by měla být odvozená; ukládání původních identifikátorů ruší účinek ochrany soukromí. |
| **Hashovat podpisy souhlasu se solí** | Zabraňuje útokům typu rainbow‑table a zároveň umožňuje ověření. |
| **Implementovat „grace period“ po odvolání** | Umožní dokončit probíhající úlohy před tím, než se zastaví generování nových dat. |
| **Pravidelně rotovat šifrovací klíče ledgeru** | Zvyšuje bezpečnost neměnného logu, aniž by narušil auditovatelnost (použijte strategii key‑rolling). |

**Časté chyby**

* **Hard‑coding logiky souhlasu** – Vkládání kontroly souhlasu přímo do kódu modelu ztěžuje aktualizace. Centralizujte kontrolu přes Consent Service API.  
* **Ignorování expirace souhlasu** – Považujte `expiresAt` za pevný termín; naplánujte automatické úlohy, které odvolání provádějí.  
* **Překombinování sběru souhlasu** – Sbírejte jen údaje nezbytné pro zamýšlený účel; nadbytečná pole zvyšují riziko porušení principu minimalizace dat dle GDPR.

---

## Budoucí směřování

1. **AI‑asistované návrhy souhlasu** – Využít LLM k návrhu textu souhlasu na základě jurisdikce, čímž se sníží právní náročnost.  
2. **Federovaný souhlas mezi organizacemi** – Použít **Decentralized Identifiers (DIDs)** a **Verifiable Credentials** pro sdílení stavu souhlasu napříč důvěryhodnými hranicemi bez centralizace dat.  
3. **Real‑time revokace souhlasu pomocí webhooků** – Push notifikace o odvolání okamžitě informují Synthetic Data Orchestrator, který přeruší probíhající úlohy.  
4. **Vysvětlitelná syntetická data** – Připojit vysvětlení původu (např. „vygenerováno s verzí souhlasu v3, účel výzkum“) ke každému syntetickému záznamu pro lepší interpretovatelnost modelů.

---

## Závěr

Dynamický souhlas již není „příjemný doplněk“; je to regulatorní nutnost pro každou organizaci, která transformuje osobní data na syntetické aktiva. Spojením nízkokódového, neměnného formulářového enginu Formize s pipeline generativní AI mohou podniky:

* Zachytit souhlas v požadované granularitě podle moderních zákonů o ochraně soukromí.  
* Automaticky vynutit souhlas během syntézy dat.  
* Poskytnout auditorům neměnný důkaz o souladu.

Výsledkem je důvěryhodný ekosystém syntetických dat, který urychluje inovace a zároveň chrání práva jednotlivců.

---

## Viz také

- **Článek 7 GDPR – Podmínky pro souhlas**  
- **Auditní řetězce na blockchainu pro správu dat** (IEEE Xplore)