'use client' import { useState, useEffect } from 'react' import { useSDK } from '@/lib/sdk' import { useQualityData } from './_hooks/useQualityData' import { MetricCard, type QualityMetric } from './_components/MetricCard' import { TestRow } from './_components/TestRow' import { MetricModal } from './_components/MetricModal' import { TestModal } from './_components/TestModal' export default function QualityPage() { const { state } = useSDK() const { metrics, tests, apiStats, loading, loadAll, handleCreateMetric, handleUpdateMetric, handleCreateTest, handleDeleteTest, } = useQualityData() const [showMetricModal, setShowMetricModal] = useState(false) const [showTestModal, setShowTestModal] = useState(false) const [editMetric, setEditMetric] = useState(undefined) useEffect(() => { loadAll() }, [loadAll]) const avgScore = apiStats ? apiStats.avg_score : (metrics.length > 0 ? Math.round(metrics.reduce((s, m) => s + m.score, 0) / metrics.length) : 0) const metricsAboveThreshold = apiStats ? apiStats.metrics_above_threshold : metrics.filter(m => m.score >= m.threshold).length const passedTests = apiStats ? apiStats.passed : tests.filter(t => t.status === 'passed').length const failedTests = apiStats ? apiStats.failed : tests.filter(t => t.status === 'failed').length const failingMetrics = metrics.filter(m => m.score < m.threshold) return (

AI Quality Dashboard

Ueberwachen Sie die Qualitaet und Fairness Ihrer KI-Systeme

Durchschnittlicher Score
{avgScore}%
Metriken ueber Schwellenwert
{metricsAboveThreshold}/{metrics.length}
Tests bestanden
{passedTests}
Tests fehlgeschlagen
{failedTests}
{failingMetrics.length > 0 && (

{failingMetrics.length} Metrik(en) unter Schwellenwert

Ueberpruefen Sie die betroffenen KI-Systeme und ergreifen Sie Korrekturmassnahmen.

)}

Qualitaetsmetriken

{loading ? (
Lade Metriken...
) : metrics.length === 0 ? (
Noch keine Metriken erfasst. Klicken Sie auf "Messung hinzufuegen".
) : (
{metrics.map(metric => ( { setEditMetric(m); setShowMetricModal(true) }} /> ))}
)}

Testergebnisse

{tests.length === 0 ? ( ) : tests.map(test => ( ))}
Test Status Letzter Lauf Dauer Details Aktion
Noch keine Tests erfasst.
{showMetricModal && ( { setShowMetricModal(false); setEditMetric(undefined) }} onSave={editMetric ? (form: any) => { handleUpdateMetric(editMetric, form); setShowMetricModal(false); setEditMetric(undefined) } : (form: any) => { handleCreateMetric(form); setShowMetricModal(false) } } /> )} {showTestModal && ( setShowTestModal(false)} onSave={(form: any) => { handleCreateTest(form); setShowTestModal(false) }} /> )}
) }