'use client' import React, { useState } from 'react' import { useSDK } from '@/lib/sdk' // ============================================================================= // TYPES // ============================================================================= interface QualityMetric { id: string name: string category: 'accuracy' | 'fairness' | 'robustness' | 'explainability' | 'performance' score: number threshold: number trend: 'up' | 'down' | 'stable' lastMeasured: Date aiSystem: string } interface QualityTest { id: string name: string status: 'passed' | 'failed' | 'warning' | 'pending' lastRun: Date duration: string aiSystem: string details: string } // ============================================================================= // MOCK DATA // ============================================================================= const mockMetrics: QualityMetric[] = [ { id: 'm-1', name: 'Accuracy Score', category: 'accuracy', score: 94.5, threshold: 90, trend: 'up', lastMeasured: new Date('2024-01-22'), aiSystem: 'Bewerber-Screening', }, { id: 'm-2', name: 'Fairness Index (Gender)', category: 'fairness', score: 87.2, threshold: 85, trend: 'stable', lastMeasured: new Date('2024-01-22'), aiSystem: 'Bewerber-Screening', }, { id: 'm-3', name: 'Fairness Index (Age)', category: 'fairness', score: 78.5, threshold: 85, trend: 'down', lastMeasured: new Date('2024-01-22'), aiSystem: 'Bewerber-Screening', }, { id: 'm-4', name: 'Robustness Score', category: 'robustness', score: 91.0, threshold: 85, trend: 'up', lastMeasured: new Date('2024-01-21'), aiSystem: 'Kundenservice Chatbot', }, { id: 'm-5', name: 'Explainability Index', category: 'explainability', score: 72.3, threshold: 75, trend: 'up', lastMeasured: new Date('2024-01-22'), aiSystem: 'Empfehlungsalgorithmus', }, { id: 'm-6', name: 'Response Time (P95)', category: 'performance', score: 95.0, threshold: 90, trend: 'stable', lastMeasured: new Date('2024-01-22'), aiSystem: 'Kundenservice Chatbot', }, ] const mockTests: QualityTest[] = [ { id: 't-1', name: 'Bias Detection Test', status: 'warning', lastRun: new Date('2024-01-22T10:30:00'), duration: '45min', aiSystem: 'Bewerber-Screening', details: 'Leichte Verzerrung bei Altersgruppe 50+ erkannt', }, { id: 't-2', name: 'Accuracy Benchmark', status: 'passed', lastRun: new Date('2024-01-22T08:00:00'), duration: '2h 15min', aiSystem: 'Bewerber-Screening', details: 'Alle Schwellenwerte eingehalten', }, { id: 't-3', name: 'Adversarial Testing', status: 'passed', lastRun: new Date('2024-01-21T14:00:00'), duration: '1h 30min', aiSystem: 'Kundenservice Chatbot', details: 'System robust gegen Manipulation', }, { id: 't-4', name: 'Explainability Test', status: 'failed', lastRun: new Date('2024-01-22T09:00:00'), duration: '30min', aiSystem: 'Empfehlungsalgorithmus', details: 'SHAP-Werte unter Schwellenwert', }, { id: 't-5', name: 'Performance Load Test', status: 'passed', lastRun: new Date('2024-01-22T06:00:00'), duration: '3h', aiSystem: 'Kundenservice Chatbot', details: '10.000 gleichzeitige Anfragen verarbeitet', }, ] // ============================================================================= // COMPONENTS // ============================================================================= function MetricCard({ metric }: { metric: QualityMetric }) { const isAboveThreshold = metric.score >= metric.threshold const categoryColors = { accuracy: 'bg-blue-100 text-blue-700', fairness: 'bg-purple-100 text-purple-700', robustness: 'bg-green-100 text-green-700', explainability: 'bg-yellow-100 text-yellow-700', performance: 'bg-orange-100 text-orange-700', } const categoryLabels = { accuracy: 'Genauigkeit', fairness: 'Fairness', robustness: 'Robustheit', explainability: 'Erklaerbarkeit', performance: 'Performance', } return (
{metric.aiSystem}
Ueberwachen Sie die Qualitaet und Fairness Ihrer KI-Systeme
Ueberpruefen Sie die betroffenen KI-Systeme und ergreifen Sie Korrekturmassnahmen.
| Test | Status | Letzter Lauf | Dauer | Details | Aktion |
|---|