'use client' /** * OCR Labeling Admin Page * * Labeling interface for handwriting training data collection. * DSGVO-konform: Alle Verarbeitung lokal auf Mac Mini (Ollama). * * Teil der KI-Daten-Pipeline: * OCR-Labeling → RAG Pipeline → Daten & RAG */ import { useState } from 'react' import { PagePurpose } from '@/components/common/PagePurpose' import { AIModuleSidebarResponsive } from '@/components/ai/AIModuleSidebar' import { tabs, type TabId } from './constants' import { useOcrLabeling } from './useOcrLabeling' import { LabelingTab } from './_components/LabelingTab' import { SessionsTab } from './_components/SessionsTab' import { UploadTab } from './_components/UploadTab' import { StatsTab } from './_components/StatsTab' import { ExportTab } from './_components/ExportTab' export default function OCRLabelingPage() { const [activeTab, setActiveTab] = useState('labeling') const hook = useOcrLabeling() return (
{/* Header */}

OCR-Labeling

Handschrift-Training & Ground Truth Erfassung

{/* Page Purpose with Related Pages */} {/* AI Module Sidebar - Desktop: Fixed, Mobile: FAB + Drawer */} {/* Error Toast */} {hook.error && (
{hook.error}
)} {/* Tabs */}
{/* Tab Content */} {hook.loading ? (
) : ( <> {activeTab === 'labeling' && ( )} {activeTab === 'sessions' && ( )} {activeTab === 'upload' && ( )} {activeTab === 'stats' && ( )} {activeTab === 'export' && ( )} )}
) }