'use client' import React, { useState } from 'react' import Link from 'next/link' import { useSDK, UseCaseAssessment, UseCaseIntake } from '@/lib/sdk' import { AssessmentResultCard } from '@/components/sdk/use-case-assessment/AssessmentResultCard' // ============================================================================= // WIZARD STEPS // ============================================================================= const WIZARD_STEPS = [ { id: 1, name: 'Grunddaten', description: 'Name, Beschreibung, Kategorie und Branche' }, { id: 2, name: 'Datenkategorien', description: 'Welche Daten werden verarbeitet?' }, { id: 3, name: 'Verarbeitungszweck', description: 'Rechtsgrundlage und Zweck' }, { id: 4, name: 'Technologie & Modell', description: 'KI-Technologien und Modell-Nutzung' }, { id: 5, name: 'Automatisierung', description: 'Grad der Automatisierung' }, { id: 6, name: 'Hosting & Transfer', description: 'Hosting und Datentransfer' }, { id: 7, name: 'Datenhaltung', description: 'Aufbewahrung und Vertraege' }, { id: 8, name: 'Zusammenfassung', description: 'Ueberpruefung und Abschluss' }, ] const TOTAL_STEPS = WIZARD_STEPS.length const DOMAINS = [ { value: 'healthcare', label: 'Gesundheit' }, { value: 'finance', label: 'Finanzen' }, { value: 'education', label: 'Bildung' }, { value: 'retail', label: 'Handel' }, { value: 'it_services', label: 'IT-Dienstleistungen' }, { value: 'consulting', label: 'Beratung' }, { value: 'manufacturing', label: 'Produktion' }, { value: 'hr', label: 'Personalwesen' }, { value: 'marketing', label: 'Marketing' }, { value: 'legal', label: 'Recht' }, { value: 'public', label: 'Oeffentlicher Sektor' }, { value: 'general', label: 'Allgemein' }, ] // ============================================================================= // RISK CALCULATION (client-side) // ============================================================================= function calculateRiskScore(form: WizardFormData): { score: number; level: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; dsfaRequired: boolean } { let score = 0 if (form.processesPersonalData) score += 10 if (form.specialCategories) score += 25 if (form.biometricData) score += 20 if (form.healthData) score += 15 if (form.minorsData) score += 15 if (form.financialData) score += 5 if (form.purposeProfiling) score += 15 if (form.purposeAutomatedDecision) score += 20 if (form.automation === 'fully_automated') score += 25 else if (form.automation === 'semi_automated') score += 10 if (form.internationalTransfer) score += 10 if (form.modelTraining) score += 10 if (form.modelFinetune) score += 5 let level: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL' if (score >= 60) level = 'CRITICAL' else if (score >= 40) level = 'HIGH' else if (score >= 20) level = 'MEDIUM' else level = 'LOW' const dsfaRequired = score >= 40 || form.specialCategories || (form.purposeAutomatedDecision && form.automation === 'fully_automated') return { score, level, dsfaRequired } } // ============================================================================= // USE CASE CARD // ============================================================================= function UseCaseCard({ useCase, isActive, onSelect, onDelete, }: { useCase: UseCaseAssessment isActive: boolean onSelect: () => void onDelete: () => void }) { const completionPercent = Math.round((useCase.stepsCompleted / TOTAL_STEPS) * 100) return (
{useCase.description}
{resultSource === 'api' ? 'Regelbasierte Bewertung durch UCCA Policy Engine' : 'Lokale Risikobewertung (UCCA-API nicht verfuegbar)'}
Schritt {currentStep} von {TOTAL_STEPS}: {WIZARD_STEPS[currentStep - 1].description}
Bei besonderen Kategorien ist eine DSFA in der Regel erforderlich!
)}z.B. Kennzeichen, Fahrzeug-Identifikationsnummer (VIN), Geraete-IDs, IP-Adressen
{formData.customDataTypes.map((dt, idx) => (Waehlen Sie alle zutreffenden Optionen.
{[ { key: 'modelInference' as const, label: 'Inferenz', desc: 'Ein fertiges, vortrainiertes Modell wird direkt genutzt — z.B. ChatGPT, Claude, DeepL. Das Modell wird nicht veraendert.', example: 'Sie nutzen die OpenAI API, um Texte zusammenzufassen.', }, { key: 'modelRag' as const, label: 'RAG (Retrieval-Augmented Generation)', desc: 'Das Modell erhaelt zusaetzlichen Kontext aus Ihren eigenen Dokumenten. Das Modell selbst wird nicht veraendert.', example: 'Ein Chatbot durchsucht Ihre Firmen-FAQ und beantwortet Fragen basierend auf den gefundenen Dokumenten.', }, { key: 'modelFinetune' as const, label: 'Fine-Tuning', desc: 'Ein bestehendes Modell wird mit Ihren eigenen Daten nachtrainiert. Die Originaldaten fliessen ins Modell ein.', example: 'Sie trainieren GPT-3.5 mit 1.000 Ihrer Support-Tickets, damit es Ihren Kommunikationsstil uebernimmt.', }, { key: 'modelTraining' as const, label: 'Training (eigenes Modell)', desc: 'Sie trainieren ein komplett eigenes KI-Modell von Grund auf. Hoechster Kontrollgrad, aber auch hoechstes Datenrisiko.', example: 'Sie trainieren ein eigenes Bilderkennungsmodell fuer Qualitaetskontrolle in der Produktion.', }, ].map(item => (Wie stark greift die KI in Entscheidungen ein? Je hoeher der Automatisierungsgrad, desto strenger die regulatorischen Anforderungen.
{[ { value: 'assistive' as const, label: 'Assistiv (Mensch entscheidet)', desc: 'Die KI liefert Informationen oder Vorschlaege, aber ein Mensch trifft immer die finale Entscheidung.', examples: 'Rechtschreibkorrektur, Suchvorschlaege, Zusammenfassungen, Uebersetzungshilfe', }, { value: 'semi_automated' as const, label: 'Teilautomatisiert (Mensch prueft)', desc: 'Die KI erstellt Ergebnisse oder Entwuerfe, die ein Mensch vor der Ausfuehrung prueft und bestaetigt.', examples: 'E-Mail-Entwuerfe mit manueller Freigabe, vorgeschlagene Diagnosen mit Arztbestaetigung, KI-generierte Vertraege mit juristischer Pruefung', }, { value: 'fully_automated' as const, label: 'Vollautomatisiert (KI entscheidet)', desc: 'Die KI trifft Entscheidungen eigenstaendig. Ein Mensch ueberwacht nur stichprobenartig oder bei Ausnahmen.', examples: 'Automatische Kreditentscheidungen, automatisierte Bewerbungs-Vorauswahl, autonome Chatbot-Antworten ohne Pruefung', }, ].map(item => ( ))} {/* Art. 22 DSGVO Info-Box */}Vollautomatisierte Systeme, die Personen erheblich beeinflussen (z.B. Kreditvergabe, Bewerbungsauswahl), unterliegen strengen Auflagen: Informationspflicht, Recht auf menschliche Ueberpruefung und Anfechtungsmoeglichkeit.
Kommagetrennte Laenderkuerzel
Basierend auf Ihren Angaben wird eine DSFA nach Art. 35 DSGVO empfohlen. Sie koennen diese im DSFA-Modul erstellen, nachdem der Use Case angelegt wurde.
Erfassen Sie Ihre KI-Anwendungsfaelle und erhalten Sie eine erste Compliance-Bewertung
Erstellen Sie Ihren ersten Use Case, um mit dem Compliance Assessment zu beginnen.