'use client' import type { MagicSettings } from '../types' import { DEFAULT_SETTINGS } from '../types' interface TabSettingsProps { settings: MagicSettings settingsSaved: boolean onUpdateSettings: (settings: MagicSettings) => void onSave: () => void } export function TabSettings({ settings, settingsSaved, onUpdateSettings, onSave }: TabSettingsProps) { const update = (partial: Partial) => { onUpdateSettings({ ...settings, ...partial }) } return (
{/* OCR Settings */}

OCR Einstellungen

update({ autoDetectLines: v })} /> update({ livePreview: v })} /> update({ soundFeedback: v })} />
update({ confidenceThreshold: parseFloat(e.target.value) })} className="w-full" />
0% {(settings.confidenceThreshold * 100).toFixed(0)}% 100%
update({ maxImageSize: parseInt(e.target.value) })} className="w-full bg-slate-50 border border-slate-300 rounded-lg px-3 py-2 text-slate-900" />
Groessere Bilder werden skaliert
update({ enableCache: v })} />
{/* Training Settings */}

Training Einstellungen

update({ loraAlpha: parseInt(e.target.value) })} className="w-full bg-slate-50 border border-slate-300 rounded-lg px-3 py-2 text-slate-900" />
Empfohlen: 4 x LoRA Rank
update({ epochs: parseInt(e.target.value) })} className="w-full bg-slate-50 border border-slate-300 rounded-lg px-3 py-2 text-slate-900" />
{/* Save Button */}
{/* Technical Info */}

Technische Informationen

API Endpoint: /api/klausur/trocr
Model Path: ~/.cache/huggingface
LoRA Path: ./models/lora
Training Data: ./data/training
) } /* ------------------------------------------------------------------ */ function CheckboxSetting({ label, description, checked, onChange, }: { label: string description: string checked: boolean onChange: (value: boolean) => void }) { return (
) }