'use client' import { motion } from 'framer-motion' import { Database, FileSearch, Layers, BarChart3, FileUp, ScanLine, Brain } from 'lucide-react' import { Language } from '@/lib/types' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' interface AnnexRAGSlideProps { lang: Language } export default function AnnexRAGSlide({ lang }: AnnexRAGSlideProps) { const pipelineSteps = [ { icon: FileUp, labelDE: 'Dokument Upload', labelEN: 'Document Upload' }, { icon: ScanLine, labelDE: 'OCR Verarbeitung', labelEN: 'OCR Processing' }, { icon: Layers, labelDE: 'Chunking', labelEN: 'Chunking' }, { icon: Brain, labelDE: 'Embedding', labelEN: 'Embedding' }, { icon: Database, labelDE: 'Vector Store', labelEN: 'Vector Store' } ] const features = [ { titleDE: 'Qdrant Vector DB', titleEN: 'Qdrant Vector DB', icon: Database, pointsDE: [ 'High-performance vector search', 'Hybrid search: semantisch + keyword', 'Filter nach Metadaten (Typ, Datum, Vorschrift)', '99.2% Retrieval-Genauigkeit' ], pointsEN: [ 'High-performance vector search', 'Hybrid search: semantic + keyword', 'Filters by metadata (document type, date, regulation)', '99.2% retrieval accuracy' ] }, { titleDE: 'Embedding Pipeline', titleEN: 'Embedding Pipeline', icon: FileSearch, pointsDE: [ 'PaddleOCR für Dokumentenscanning', 'Chunk-Größe: 512 Tokens, Overlap: 64', 'Sentence-Transformers für Embedding', 'Automatische Spracherkennung' ], pointsEN: [ 'PaddleOCR for document scanning', 'Chunk size: 512 tokens, overlap: 64', 'Sentence-Transformers for embedding', 'Automatic language detection' ] }, { titleDE: 'Hybrid Search', titleEN: 'Hybrid Search', icon: Layers, pointsDE: [ 'Kombiniert dense + sparse Vektoren', 'BM25 für Keyword-Matching', 'Cosine-Similarity für semantische Suche', 'Re-Ranking für optimale Ergebnisse' ], pointsEN: [ 'Combines dense + sparse vectors', 'BM25 for keyword matching', 'Cosine similarity for semantic search', 'Re-ranking for optimal results' ] }, { titleDE: 'Retrieval Metrics', titleEN: 'Retrieval Metrics', icon: BarChart3, pointsDE: [ 'Precision@5: 94.3%', 'Recall@10: 97.1%', 'MRR: 0.89', 'Avg. Latenz: 120ms' ], pointsEN: [ 'Precision@5: 94.3%', 'Recall@10: 97.1%', 'MRR: 0.89', 'Avg latency: 120ms' ] } ] return (
{/* Header */}

{lang === 'de' ? 'RAG Pipeline & Vektordatenbank' : 'RAG Pipeline & Vector Database'}

{lang === 'de' ? 'Präzise Antworten durch intelligentes Retrieval' : 'Precise answers through intelligent retrieval'}

{/* Pipeline Visualization */}
{pipelineSteps.map((step, index) => { const Icon = step.icon return (

{lang === 'de' ? step.labelDE : step.labelEN}

{index < pipelineSteps.length - 1 && (
)}
) })}
{/* Feature Grid */}
{features.map((feature, index) => { const Icon = feature.icon return (

{lang === 'de' ? feature.titleDE : feature.titleEN}

    {(lang === 'de' ? feature.pointsDE : feature.pointsEN).map((point, idx) => (
  • {point}
  • ))}
) })}
) }