import Link from 'next/link'; import { Bot, FileText, Brain, ExternalLink } from 'lucide-react'; import { RegistryDrivenForm } from '@/components/admin/shared/registry-driven-form'; import { PageHeader } from '@/components/shared/page-header'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { OcrSettingsForm } from '@/components/admin/ocr-settings-form'; interface FeatureLink { href: string; icon: typeof Bot; title: string; description: string; } const FEATURE_LINKS: FeatureLink[] = [ { href: '../berth-pdf-parser', icon: FileText, title: 'Berth PDF parser', description: 'Three-tier AcroForm → OCR → AI pipeline. The AI pass costs tokens; reps invoke it manually when OCR confidence is low.', }, { href: '../recommender', icon: Brain, title: 'Berth recommender', description: 'Rule-based today; future versions will optionally use embeddings for soft preference matching. AI use is gated by the master switch above.', }, ]; export default function AiAdminPage() { return (
Receipt OCR Provider, model, and confidence thresholds for the receipt scanner. AI fallback only runs when the on-device parser is uncertain. Per-feature settings Feature-specific tuning lives on each feature's admin page. They all read the master switch + provider credentials configured above. {FEATURE_LINKS.map((f) => (
{f.title}

{f.description}

))}
); }