'use client' import React, { useState } from 'react' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' // ============================================================================= // TYPES // ============================================================================= interface AISystem { id: string name: string description: string classification: 'prohibited' | 'high-risk' | 'limited-risk' | 'minimal-risk' | 'unclassified' purpose: string sector: string status: 'draft' | 'classified' | 'compliant' | 'non-compliant' obligations: string[] assessmentDate: Date | null assessmentResult: Record | null } // ============================================================================= // INITIAL DATA // ============================================================================= const initialSystems: AISystem[] = [ { id: 'ai-1', name: 'Kundenservice Chatbot', description: 'KI-gestuetzter Chatbot fuer Kundenanfragen', classification: 'limited-risk', purpose: 'Automatisierte Beantwortung von Kundenanfragen', sector: 'Kundenservice', status: 'classified', obligations: ['Transparenzpflicht', 'Kennzeichnung als KI-System'], assessmentDate: new Date('2024-01-15'), assessmentResult: null, }, { id: 'ai-2', name: 'Bewerber-Screening', description: 'KI-System zur Vorauswahl von Bewerbungen', classification: 'high-risk', purpose: 'Automatisierte Bewertung von Bewerbungsunterlagen', sector: 'Personal', status: 'non-compliant', obligations: ['Risikomanagementsystem', 'Datenlenkung', 'Technische Dokumentation', 'Menschliche Aufsicht', 'Transparenz'], assessmentDate: new Date('2024-01-10'), assessmentResult: null, }, { id: 'ai-3', name: 'Empfehlungsalgorithmus', description: 'Personalisierte Produktempfehlungen', classification: 'minimal-risk', purpose: 'Verbesserung der Kundenerfahrung durch personalisierte Empfehlungen', sector: 'E-Commerce', status: 'compliant', obligations: [], assessmentDate: new Date('2024-01-05'), assessmentResult: null, }, ] // ============================================================================= // COMPONENTS // ============================================================================= function RiskPyramid({ systems }: { systems: AISystem[] }) { const counts = { prohibited: systems.filter(s => s.classification === 'prohibited').length, 'high-risk': systems.filter(s => s.classification === 'high-risk').length, 'limited-risk': systems.filter(s => s.classification === 'limited-risk').length, 'minimal-risk': systems.filter(s => s.classification === 'minimal-risk').length, } return (

AI Act Risikopyramide

Verboten ({counts.prohibited})
Hochrisiko ({counts['high-risk']})
Begrenztes Risiko ({counts['limited-risk']})
Minimales Risiko ({counts['minimal-risk']})
{systems.filter(s => s.classification === 'unclassified').length} System(e) noch nicht klassifiziert
) } function AddSystemForm({ onSubmit, onCancel, }: { onSubmit: (system: Omit) => void onCancel: () => void }) { const [formData, setFormData] = useState({ name: '', description: '', purpose: '', sector: '', classification: 'unclassified' as AISystem['classification'], status: 'draft' as AISystem['status'], obligations: [] as string[], }) return (

Neues KI-System registrieren

setFormData({ ...formData, name: e.target.value })} placeholder="z.B. Dokumenten-Scanner" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent" />