Menerapkan LLM (Claude, Gemini, GPT) yang sesuai GDPR untuk perusahaan Prancis — checklist lengkap: pseudonimisasi data, perjanjian pemrosesan (DPA), Zero Data Retention, hosting log, serta pertanyaan tentang Mistral / kedaulatan data.
Persyaratan minimum regulasi
- Pseudonimisasi PII sebelum setiap panggilan ke LLM eksternal
- DPA Pasal 28 RGPD ditandatangani dengan setiap subprosesor yang memproses data. Kunavo tidak menyediakannya: jika pemrosesan Anda memerlukannya, buat kontrak langsung dengan penyedia model
- Catatan aktivitas pemrosesan selalu diperbarui, termasuk tujuan setiap panggilan LLM
- Pemberitahuan kepada subjek data: kebijakan privasi Anda harus menyebutkan penggunaan AI
1) Pseudonimisasi — kode siap pakai
Sebelum prompt meninggalkan backend Anda, kami mengganti pengenal langsung dengan token. Tabel pemetaan tetap berada secara lokal:
# Pseudonymiser les données personnelles avant l'appel LLM
import re
from openai import OpenAI
PATTERNS = [
(re.compile(r"[\w.+-]+@[\w-]+\.[\w.-]+"), "<EMAIL>"),
(re.compile(r"\b(?:\+33|0)\s*[1-9](?:\s*\d{2}){4}\b"), "<PHONE_FR>"),
# Numéro de sécurité sociale français (15 chiffres)
(re.compile(r"\b[12]\d{2}(?:0[1-9]|1[012])(?:\d{2})(?:\d{3})(?:\d{3})(?:\d{2})\b"), "<NIR>"),
# IBAN FR
(re.compile(r"\bFR\d{2}\s?(?:\d{4}\s?){5}\d{3}\b"), "<IBAN_FR>"),
]
def pseudonymiser(texte: str) -> tuple[str, dict]:
masque = texte
mapping = {}
for i, (pat, tag) in enumerate(PATTERNS):
for m in pat.finditer(texte):
cle = f"{tag}_{i}_{m.start()}"
mapping[cle] = m.group(0)
masque = masque.replace(m.group(0), f"[{cle}]")
return masque, mappingLLM melihat "[EMAIL_0_42] memesan [IBAN_FR_3_158]" alih-alih pengenal yang sebenarnya. Jika respons perlu mengembalikan nilai tersebut (misalnya untuk email konfirmasi), lakukan substitusi balik setelahnya, jangan pernah di dalam API call.
2) DPA — siapa yang harus menandatangani apa
- Anda ↔ Kunavo: Kunavo tidak menyediakan DPA Pasal 28 RGPD. Permintaan Anda diproses di Amerika Serikat dan diteruskan ke penyedia upstream, yang kebijakan privasi dan penyimpanan datanya sendiri berlaku atas konten tersebut
- Anda ↔ penyedia model: jika pemrosesan Anda memerlukan DPA, tandatangani langsung dengan Anthropic, OpenAI, atau Google berdasarkan ketentuan enterprise mereka
- Klausul Kontraktual Standar (SCC): untuk transfer ke AS (Anthropic, OpenAI), pastikan SCC yang disetujui Komisi Eropa tercantum dalam DPA yang Anda tandatangani dengan penyedia
3) Zero Data Retention (ZDR): langsung dengan penyedia
Secara default, Anthropic dan Google menyimpan log prompt selama 30 hari (Anthropic) / 60 hari (Google) untuk pemantauan penyalahgunaan. Untuk beban kerja yang sensitif terhadap GDPR:
- Kunavo: tidak menyediakan ZDR. Permintaan melewati gateway kami di Amerika Serikat, lalu diteruskan ke penyedia upstream yang kebijakan penyimpanannya sendiri berlaku
- Anthropic ZDR: ditawarkan Anthropic kepada pelanggan enterprise berdasarkan kontrak langsung dengan Anthropic
- Google Vertex AI EU: berdasarkan kontrak langsung dengan Google Cloud, routing ke europe-west1 (Belgia) atau europe-west4 (Belanda) dapat dilakukan — data tidak meninggalkan UE. Kunavo tidak menawarkan wilayah UE
- OpenAI: ZDR pada tier Enterprise, berdasarkan kontrak langsung dengan OpenAI
Mistral dan kedaulatan data
Banyak tim Prancis ingin mengurangi ketergantungan pada pelaku Amerika. Tiga sudut pandang yang perlu dipertimbangkan:
- Mistral melalui Kunavo: tidak. Tidak ada model Mistral maupun penyedia Eropa lainnya dalam katalog, dan tidak ada perutean yang dibatasi hanya pada penyedia Eropa
- Mistral secara langsung: untuk kasus yang benar-benar sensitif (sektor publik, kesehatan), Mistral menyediakan penerapan on-prem. Kunavo tidak menggantikan kebutuhan ini
- Menggabungkan keduanya: Mistral secara langsung untuk kasus sensitif, Claude melalui Kunavo untuk penalaran tingkat tinggi. Ini berarti dua penyedia dan dua kunci, dan kode Anda yang memilih ke mana setiap panggilan dikirim
Hosting log dan residensi data
- Perutean Kunavo: di dalam gateway, dalam satu wilayah saja (US-East, Ashburn). Hanya edge anycast yang ditempatkan di depan yang mengakhiri TLS di dekat Anda
- Persistensi akun dan penagihan: satu database primer di US-East, dengan snapshot volume harian yang terenkripsi. Tidak ada perutean khusus UE maupun penyimpanan di wilayah UE, termasuk atas permintaan
- Log aplikasi Anda: Anda bertanggung jawab meng-host-nya di UE (OVH, Scaleway, Hetzner). Jangan menjadi mata rantai yang lemah
Pemberitahuan kepada subjek data — apa yang harus disampaikan
Jika Anda memproses data pribadi menggunakan LLM, kebijakan privasi harus menyebutkannya. Template minimal:
Kami menggunakan model kecerdasan buatan (Anthropic Claude, Google Gemini, OpenAI GPT) sebagai subprosesor melalui Kunavo (https://kunavo.com), untuk tujuan berikut: [klasifikasi, peringkasan, pembuatan respons, dll.]. Data pribadi dipseudonimkan sebelum dikirimkan. Kunavo tidak menggunakan data ini untuk melatih model; setiap penyedia model memprosesnya berdasarkan kebijakan privasi dan penyimpanan datanya sendiri. Anda memiliki hak akses, perbaikan, keberatan, dan penghapusan berdasarkan Pasal 15 hingga 21 RGPD.
Yang harus diperiksa sebelum produksi
- DPA ditandatangani dengan setiap subprosesor (langsung dengan penyedia model: Kunavo tidak menyediakannya)
- Register pemrosesan yang terbaru
- Pseudonimisasi telah diuji pada sampel nyata (tingkat kebocoran < 0,1 %)
- Log berada di wilayah UE
- Prosedur untuk menanggapi permintaan Pasal 17 (hak untuk menghapus)
- Kebijakan privasi telah diperbarui dan dapat diakses
- DPO telah dikonsultasikan jika pemrosesan berskala besar atau sensitif
Siap untuk memulai? Daftar gratis, lalu isi saldo mulai dari $10.