feat(pitch-deck): overhaul AI Pipeline slide with real data
- Hero stats: 75+ sources, 70k+ controls, 47k+ obligations - RAG tab: source categories with investor-friendly explanations (why court rulings matter, why frameworks define state of art) - Remove inflated numbers (was 110+ regulations, now accurate 75+) - Quality tab: continuous expansion, cross-regulation mapping - Remove NiBiS/education references (irrelevant for compliance) - All numbers verified against production database Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,10 @@ import {
|
|||||||
Gauge,
|
Gauge,
|
||||||
Network,
|
Network,
|
||||||
Sparkles,
|
Sparkles,
|
||||||
|
Scale,
|
||||||
|
BookOpen,
|
||||||
|
Gavel,
|
||||||
|
Globe,
|
||||||
} from 'lucide-react'
|
} from 'lucide-react'
|
||||||
|
|
||||||
interface AIPipelineSlideProps {
|
interface AIPipelineSlideProps {
|
||||||
@@ -37,10 +41,10 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) {
|
|||||||
const [activeTab, setActiveTab] = useState<PipelineTab>('rag')
|
const [activeTab, setActiveTab] = useState<PipelineTab>('rag')
|
||||||
|
|
||||||
const heroStats = [
|
const heroStats = [
|
||||||
{ value: '38+', label: de ? 'Indexierte Verordnungen' : 'Indexed Regulations', sub: 'DSGVO · AI Act · NIS2 · CRA · BDSG · DSA · ...', color: 'text-indigo-400' },
|
{ value: '75+', label: de ? 'Rechtsquellen' : 'Legal Sources', sub: de ? 'EU-Verordnungen · DACH-Gesetze · Frameworks' : 'EU regulations · DACH laws · Frameworks', color: 'text-indigo-400' },
|
||||||
{ value: '6.259', label: de ? 'Extrahierte Controls' : 'Extracted Controls', sub: de ? '79% Source-Match · 9 Verordnungen' : '79% source match · 9 regulations', color: 'text-purple-400' },
|
{ value: '70k+', label: de ? 'Unique Controls' : 'Unique Controls', sub: de ? 'Prüfbare Compliance-Anforderungen' : 'Auditable compliance requirements', color: 'text-purple-400' },
|
||||||
{ value: '6', label: de ? 'Qdrant Collections' : 'Qdrant Collections', sub: de ? 'Legal Corpus · DSFA · Recht · Templates · ...' : 'Legal Corpus · DSFA · Law · Templates · ...', color: 'text-emerald-400' },
|
{ value: '47k+', label: de ? 'Extrahierte Pflichten' : 'Extracted Obligations', sub: de ? 'Aus Gesetzestexten abgeleitet' : 'Derived from legal texts', color: 'text-emerald-400' },
|
||||||
{ value: '325+', label: de ? 'Abgeleitete Pflichten' : 'Derived Obligations', sub: de ? 'NIS2 · DSGVO · AI Act · CRA · ...' : 'NIS2 · GDPR · AI Act · CRA · ...', color: 'text-amber-400' },
|
{ value: '6', label: de ? 'Pipeline-Versionen' : 'Pipeline Versions', sub: de ? 'Kontinuierliche Verbesserung' : 'Continuous improvement', color: 'text-amber-400' },
|
||||||
]
|
]
|
||||||
|
|
||||||
const tabs: { id: PipelineTab; label: string; icon: typeof Brain }[] = [
|
const tabs: { id: PipelineTab; label: string; icon: typeof Brain }[] = [
|
||||||
@@ -49,59 +53,105 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) {
|
|||||||
{ id: 'quality', label: de ? 'QA & Infrastruktur' : 'QA & Infrastructure', icon: Gauge },
|
{ id: 'quality', label: de ? 'QA & Infrastruktur' : 'QA & Infrastructure', icon: Gauge },
|
||||||
]
|
]
|
||||||
|
|
||||||
// RAG Pipeline content
|
// Source categories for investors
|
||||||
|
const sourceCategories = [
|
||||||
|
{
|
||||||
|
icon: Globe,
|
||||||
|
color: 'text-blue-400',
|
||||||
|
bg: 'bg-blue-500/10 border-blue-500/20',
|
||||||
|
title: de ? 'EU-Verordnungen (~15)' : 'EU Regulations (~15)',
|
||||||
|
why: de
|
||||||
|
? 'Bindende Vorgaben fuer alle EU-Unternehmen — Verstoesse fuehren zu Bussgeldern bis 4% des Jahresumsatzes.'
|
||||||
|
: 'Binding requirements for all EU companies — violations lead to fines up to 4% of annual revenue.',
|
||||||
|
examples: 'DSGVO · AI Act · NIS2 · CRA · MiCA · DSA · Maschinenverordnung · Batterieverordnung',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Scale,
|
||||||
|
color: 'text-purple-400',
|
||||||
|
bg: 'bg-purple-500/10 border-purple-500/20',
|
||||||
|
title: de ? 'DACH-Gesetze (~20)' : 'DACH Laws (~20)',
|
||||||
|
why: de
|
||||||
|
? 'Nationale Umsetzungen und eigenstaendige Gesetze — oft strenger als EU-Mindeststandards.'
|
||||||
|
: 'National implementations and standalone laws — often stricter than EU minimum standards.',
|
||||||
|
examples: 'BDSG · TKG · GwG · HGB · BGB · UrhG · GewO · KRITIS-DachG · AT ABGB · AT KSchG',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: BookOpen,
|
||||||
|
color: 'text-emerald-400',
|
||||||
|
bg: 'bg-emerald-500/10 border-emerald-500/20',
|
||||||
|
title: de ? 'Frameworks & Standards (~15)' : 'Frameworks & Standards (~15)',
|
||||||
|
why: de
|
||||||
|
? 'Branchenstandards definieren den Stand der Technik — Aufsichtsbehoerden erwarten deren Einhaltung.'
|
||||||
|
: 'Industry standards define state of the art — regulators expect compliance with them.',
|
||||||
|
examples: 'NIST 800-53 · OWASP ASVS · OWASP SAMM · ENISA ICS · NIST Zero Trust · CISA Secure by Design',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Gavel,
|
||||||
|
color: 'text-amber-400',
|
||||||
|
bg: 'bg-amber-500/10 border-amber-500/20',
|
||||||
|
title: de ? 'DSFA-Leitlinien & Urteile' : 'DPIA Guidelines & Rulings',
|
||||||
|
why: de
|
||||||
|
? 'Urteile zeigen wie Gerichte Gesetze auslegen — entscheidend fuer praezise Compliance-Beratung statt generischer Antworten.'
|
||||||
|
: 'Court rulings show how laws are interpreted — critical for precise compliance advice instead of generic answers.',
|
||||||
|
examples: de
|
||||||
|
? '16 Bundeslaender DSFA-Leitlinien · BAG-Urteile · Datenschutzkonferenz-Beschluesse'
|
||||||
|
: '16 federal state DPIA guidelines · Labor court rulings · Data protection conference decisions',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
// RAG Pipeline steps
|
||||||
const ragPipelineSteps = [
|
const ragPipelineSteps = [
|
||||||
{
|
{
|
||||||
icon: FileText,
|
icon: FileText,
|
||||||
color: 'text-blue-400',
|
color: 'text-blue-400',
|
||||||
bg: 'bg-blue-500/10 border-blue-500/20',
|
bg: 'bg-blue-500/10 border-blue-500/20',
|
||||||
title: de ? '1. Ingestion & QA' : '1. Ingestion & QA',
|
title: de ? '1. Dokument-Ingestion' : '1. Document Ingestion',
|
||||||
items: de
|
items: de
|
||||||
? ['110+ Verordnungen und Gesetze (EU + DACH)', 'Strukturelles Chunking an Artikel/Absatz-Grenzen', '25.000+ extrahierte Prüfaspekte', 'Deduplizierung + Cross-Regulation Harmonisierung']
|
? ['75+ Rechtsquellen aus EU, Deutschland und Oesterreich', 'Strukturelles Chunking an Artikel- und Absatz-Grenzen', 'Automatische Lizenz-Klassifikation (frei / Zitat / geschuetzt)', 'Geschuetzte Normen (ISO, BSI) werden vollstaendig reformuliert']
|
||||||
: ['110+ laws and regulations (EU + DACH)', 'Structural chunking at article/paragraph boundaries', '25,000+ extracted audit aspects', 'Deduplication + cross-regulation harmonization'],
|
: ['75+ legal sources from EU, Germany and Austria', 'Structural chunking at article and paragraph boundaries', 'Automatic license classification (free / citation / restricted)', 'Protected standards (ISO, BSI) are fully reformulated'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Cpu,
|
icon: Cpu,
|
||||||
color: 'text-purple-400',
|
color: 'text-purple-400',
|
||||||
bg: 'bg-purple-500/10 border-purple-500/20',
|
bg: 'bg-purple-500/10 border-purple-500/20',
|
||||||
title: de ? '2. Embedding & LLM' : '2. Embedding & LLM',
|
title: de ? '2. Control-Extraktion' : '2. Control Extraction',
|
||||||
items: de
|
items: de
|
||||||
? ['BGE-M3 Multilingual (1024-dim, lokal)', '120B LLM auf OVH (via LiteLLM, OpenAI-kompatibel)', '1000B LLM auf SysEleven (BSI-zertifiziert)', 'CrossEncoder Re-Ranking + HyDE']
|
? ['LLM extrahiert Pflichten und Anforderungen aus jedem Textabschnitt', '6 Pipeline-Versionen mit kontinuierlicher Qualitaetsverbesserung', 'Obligation Extraction: 47.000+ einzelne Pflichten identifiziert', 'Atomic Control Composition: Pflichten werden zu pruefbaren Controls']
|
||||||
: ['BGE-M3 multilingual (1024-dim, local)', '120B LLM on OVH (via LiteLLM, OpenAI-compatible)', '1000B LLM on SysEleven (BSI-certified)', 'CrossEncoder re-ranking + HyDE'],
|
: ['LLM extracts obligations and requirements from each text section', '6 pipeline versions with continuous quality improvement', 'Obligation extraction: 47,000+ individual duties identified', 'Atomic control composition: duties become auditable controls'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Database,
|
icon: Database,
|
||||||
color: 'text-emerald-400',
|
color: 'text-emerald-400',
|
||||||
bg: 'bg-emerald-500/10 border-emerald-500/20',
|
bg: 'bg-emerald-500/10 border-emerald-500/20',
|
||||||
title: de ? '3. Vektorspeicher' : '3. Vector Store',
|
title: de ? '3. Deduplizierung & Speicherung' : '3. Deduplication & Storage',
|
||||||
items: de
|
items: de
|
||||||
? ['Qdrant Vector DB (Hetzner, API-Key gesichert)', '6 Collections: CE, Recht, Gesetze, Datenschutz, DSFA, Templates', 'MinIO Object Storage (Hetzner, S3-kompatibel, TLS)', '25.000+ Prüfaspekte · 110 Gesetze & Regularien · abgeleitete Pflichten']
|
? ['97.000 generierte Controls → 70.000+ nach Deduplizierung', 'Embedding-basierte Aehnlichkeitserkennung (Cosine Similarity)', 'Cross-Regulation Harmonisierung: gleiche Pflicht aus verschiedenen Gesetzen wird zusammengefuehrt', 'Ziel: 25.000–50.000 atomare Master Controls']
|
||||||
: ['Qdrant Vector DB (Hetzner, API-key secured)', '6 Collections: CE, Law, Statutes, Privacy, DSFA, Templates', 'MinIO object storage (Hetzner, S3-compatible, TLS)', '25,000+ audit aspects · 110 laws & regulations · derived obligations'],
|
: ['97,000 generated controls → 70,000+ after deduplication', 'Embedding-based similarity detection (cosine similarity)', 'Cross-regulation harmonization: same obligation from different laws is merged', 'Target: 25,000–50,000 atomic master controls'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Search,
|
icon: Search,
|
||||||
color: 'text-indigo-400',
|
color: 'text-indigo-400',
|
||||||
bg: 'bg-indigo-500/10 border-indigo-500/20',
|
bg: 'bg-indigo-500/10 border-indigo-500/20',
|
||||||
title: de ? '4. Hybrid Search' : '4. Hybrid Search',
|
title: de ? '4. Hybrid Search & Beratung' : '4. Hybrid Search & Advisory',
|
||||||
items: de
|
items: de
|
||||||
? ['Multi-Collection-Suche mit Whitelist-Validierung', 'Deutsche Komposita-Zerlegung', 'Cross-Encoder Re-Ranking der Top-K Ergebnisse', 'Quellen-Attribution mit Artikel/Absatz-Referenz']
|
? ['Vektorsuche + Keyword-Suche ueber alle Rechtsquellen gleichzeitig', 'Cross-Encoder Re-Ranking fuer praezise Relevanz-Sortierung', 'Quellen-Attribution: Jede Antwort verweist auf Artikel und Absatz', 'Der Compliance-Agent antwortet mit Rechtsgrundlage — nicht mit Vermutungen']
|
||||||
: ['Multi-collection search with whitelist validation', 'German compound word decomposition', 'Cross-encoder re-ranking of top-K results', 'Source attribution with article/paragraph reference'],
|
: ['Vector search + keyword search across all legal sources simultaneously', 'Cross-encoder re-ranking for precise relevance sorting', 'Source attribution: Every answer references article and paragraph', 'The compliance agent answers with legal basis — not guesswork'],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
// Multi-Agent System content — UCCA + Policy Engine
|
// Multi-Agent System content — UCCA + Policy Engine
|
||||||
const agents = [
|
const agents = [
|
||||||
{ name: 'UCCA', soul: de ? 'Use-Case Compliance' : 'Use-Case Compliance', desc: de ? 'Policy Engine (45 Regeln) + Eskalation E0–E3' : 'Policy engine (45 rules) + escalation E0–E3', color: 'text-indigo-400' },
|
{ name: 'UCCA', soul: de ? 'Use-Case Compliance' : 'Use-Case Compliance', desc: de ? 'Policy Engine (45 Regeln) + Eskalation E0–E3' : 'Policy engine (45 rules) + escalation E0–E3', color: 'text-indigo-400' },
|
||||||
{ name: de ? 'Pflichten-Engine' : 'Obligations Engine', soul: de ? 'abgeleitete Pflichten' : 'derived obligations', desc: de ? 'Multi-Regulation: NIS2, DSGVO, AI Act, CRA, ...' : 'Multi-regulation: NIS2, GDPR, AI Act, CRA, ...', color: 'text-emerald-400' },
|
{ name: de ? 'Pflichten-Engine' : 'Obligations Engine', soul: de ? '47.000+ Pflichten' : '47,000+ obligations', desc: de ? 'Multi-Regulation: NIS2, DSGVO, AI Act, CRA, ...' : 'Multi-regulation: NIS2, GDPR, AI Act, CRA, ...', color: 'text-emerald-400' },
|
||||||
{ name: de ? 'Compliance-Berater' : 'Compliance Advisor', soul: de ? 'Legal RAG + LLM' : 'Legal RAG + LLM', desc: de ? 'Wizard-basierter Chatbot mit Qdrant-Kontext' : 'Wizard-based chatbot with Qdrant context', color: 'text-purple-400' },
|
{ name: de ? 'Compliance-Berater' : 'Compliance Advisor', soul: de ? 'Legal RAG + LLM' : 'Legal RAG + LLM', desc: de ? 'Chatbot mit 75+ Rechtsquellen als Wissenbasis' : 'Chatbot with 75+ legal sources as knowledge base', color: 'text-purple-400' },
|
||||||
{ name: de ? 'Dokument-Generator' : 'Document Generator', soul: de ? '20 Templates' : '20 templates', desc: de ? 'AGB, DSE, AV-Vertrag, Widerruf + 16 weitere' : 'T&C, Privacy Policy, DPA, Withdrawal + 16 more', color: 'text-amber-400' },
|
{ name: de ? 'Dokument-Generator' : 'Document Generator', soul: de ? '7+ Templates' : '7+ templates', desc: de ? 'AGB, DSE, AV-Vertrag, DSFA, FRIA, BV + weitere' : 'T&C, Privacy Policy, DPA, DPIA, FRIA, Works Agreement + more', color: 'text-amber-400' },
|
||||||
{ name: de ? 'DSFA-Agent' : 'DSFA Agent', soul: de ? 'Art. 35 DSGVO' : 'Art. 35 GDPR', desc: de ? 'Risikobewertung mit Legal Context Injection' : 'Risk assessment with legal context injection', color: 'text-red-400' },
|
{ name: de ? 'DSFA-Agent' : 'DPIA Agent', soul: de ? 'Art. 35 DSGVO' : 'Art. 35 GDPR', desc: de ? 'Risikobewertung mit 16 Bundeslaender-Leitlinien' : 'Risk assessment with 16 federal state guidelines', color: 'text-red-400' },
|
||||||
{ name: de ? 'Schulungs-Engine' : 'Training Engine', soul: de ? 'Academy + TTS' : 'Academy + TTS', desc: de ? '28 Module · Piper TTS · Automatische Videos' : '28 modules · Piper TTS · Automatic videos', color: 'text-blue-400' },
|
{ name: de ? 'Control-Pipeline' : 'Control Pipeline', soul: de ? '70.000+ Controls' : '70,000+ controls', desc: de ? 'Automatische Extraktion aus neuen Rechtsquellen' : 'Automatic extraction from new legal sources', color: 'text-blue-400' },
|
||||||
]
|
]
|
||||||
|
|
||||||
const agentInfra = [
|
const agentInfra = [
|
||||||
{ icon: Shield, label: de ? 'Policy Engine' : 'Policy Engine', desc: de ? 'Deterministisch · LLM ist NICHT Wahrheitsquelle' : 'Deterministic · LLM is NOT source of truth' },
|
{ icon: Shield, label: de ? 'Policy Engine' : 'Policy Engine', desc: de ? 'Deterministisch · LLM ist NICHT Wahrheitsquelle' : 'Deterministic · LLM is NOT source of truth' },
|
||||||
{ icon: Brain, label: de ? 'LLM-Schicht' : 'LLM Layer', desc: de ? '120B (OVH) + 1000B (SysEleven BSI) · EU-only' : '120B (OVH) + 1000B (SysEleven BSI) · EU-only' },
|
{ icon: Brain, label: de ? 'LLM-Schicht' : 'LLM Layer', desc: de ? 'Claude + lokale Modelle · EU-only Hosting' : 'Claude + local models · EU-only hosting' },
|
||||||
{ icon: Network, label: 'LiteLLM Gateway', desc: de ? 'OpenAI-kompatibel · Multi-Provider Routing' : 'OpenAI-compatible · Multi-provider routing' },
|
{ icon: Network, label: 'LiteLLM Gateway', desc: de ? 'OpenAI-kompatibel · Multi-Provider Routing' : 'OpenAI-compatible · Multi-provider routing' },
|
||||||
{ icon: Activity, label: de ? 'Eskalation E0–E3' : 'Escalation E0–E3', desc: de ? 'Auto-Approve → Team-Lead → DSB → DSB+Legal' : 'Auto-approve → Team lead → DPO → DPO+Legal' },
|
{ icon: Activity, label: de ? 'Eskalation E0–E3' : 'Escalation E0–E3', desc: de ? 'Auto-Approve → Team-Lead → DSB → DSB+Legal' : 'Auto-approve → Team lead → DPO → DPO+Legal' },
|
||||||
]
|
]
|
||||||
@@ -113,32 +163,32 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) {
|
|||||||
color: 'text-emerald-400',
|
color: 'text-emerald-400',
|
||||||
title: de ? 'Control Quality Pipeline' : 'Control Quality Pipeline',
|
title: de ? 'Control Quality Pipeline' : 'Control Quality Pipeline',
|
||||||
items: de
|
items: de
|
||||||
? ['6.259 Controls extrahiert (79% Source-Match)', '3.301 Duplikate entfernt (Phase 5 Normalisierung)', '90+ QA-Skripte: Deduplizierung, Match-Validierung', 'Canonical Controls JSON-Schema-Validierung in CI']
|
? ['97.000 Controls generiert, 70.000+ nach Deduplizierung', '6 Pipeline-Versionen mit steigender Extraktionsqualitaet', 'Automatische Lizenz-Pruefung: geschuetzte Normen werden reformuliert', 'Jeder Control hat Quellen-Referenz auf Artikel und Absatz']
|
||||||
: ['6,259 controls extracted (79% source match)', '3,301 duplicates removed (Phase 5 normalization)', '90+ QA scripts: deduplication, match validation', 'Canonical Controls JSON schema validation in CI'],
|
: ['97,000 controls generated, 70,000+ after deduplication', '6 pipeline versions with increasing extraction quality', 'Automatic license check: protected standards are reformulated', 'Every control has source reference to article and paragraph'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Eye,
|
icon: Eye,
|
||||||
color: 'text-indigo-400',
|
color: 'text-indigo-400',
|
||||||
title: de ? 'RAG Quality & Monitoring' : 'RAG Quality & Monitoring',
|
title: de ? 'Kontinuierliche Erweiterung' : 'Continuous Expansion',
|
||||||
items: de
|
items: de
|
||||||
? ['PDF-QA-Pipeline: 86% Artikel-Extraktion', 'Multi-Collection-Whitelist-Validierung', 'Qdrant-Deduplizierung: 8-Stufen-Bereinigung', 'Fallback-Handling: RAG-Fehler brechen nie Hauptfunktion']
|
? ['Neue Gesetze werden automatisch ingestiert und verarbeitet', 'Pipeline erkennt Ueberschneidungen mit bestehenden Controls', 'Cross-Regulation Mapping: gleiche Pflicht aus DSGVO und BDSG wird verknuepft', 'Wachsender Wissensvorsprung gegenueber manueller Compliance-Beratung']
|
||||||
: ['PDF QA pipeline: 86% article extraction', 'Multi-collection whitelist validation', 'Qdrant deduplication: 8-step cleanup', 'Fallback handling: RAG failures never break main function'],
|
: ['New laws are automatically ingested and processed', 'Pipeline detects overlaps with existing controls', 'Cross-regulation mapping: same obligation from GDPR and BDSG is linked', 'Growing knowledge advantage over manual compliance consulting'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Sparkles,
|
icon: Sparkles,
|
||||||
color: 'text-purple-400',
|
color: 'text-purple-400',
|
||||||
title: de ? 'CI/CD & Testing' : 'CI/CD & Testing',
|
title: de ? 'CI/CD & Testing' : 'CI/CD & Testing',
|
||||||
items: de
|
items: de
|
||||||
? ['Gitea Actions: Lint → Tests → Validierung bei jedem Push', 'Go-Tests (AI SDK) + Python-Tests (Backend + Crawler + Gateway)', 'Coolify Auto-Deploy mit Health-Check-Monitoring', 'arm64 → amd64 Cross-Build fuer Hetzner Production']
|
? ['Gitea Actions: Lint → Tests → Validierung bei jedem Push', 'Go-Tests (AI SDK) + Python-Tests (Backend + Pipeline)', 'Coolify Auto-Deploy mit Health-Check-Monitoring', 'arm64 → amd64 Cross-Build fuer Hetzner Production']
|
||||||
: ['Gitea Actions: Lint → Tests → Validation on every push', 'Go tests (AI SDK) + Python tests (Backend + Crawler + Gateway)', 'Coolify auto-deploy with health check monitoring', 'arm64 → amd64 cross-build for Hetzner production'],
|
: ['Gitea Actions: Lint → Tests → Validation on every push', 'Go tests (AI SDK) + Python tests (Backend + Pipeline)', 'Coolify auto-deploy with health check monitoring', 'arm64 → amd64 cross-build for Hetzner production'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Zap,
|
icon: Zap,
|
||||||
color: 'text-amber-400',
|
color: 'text-amber-400',
|
||||||
title: de ? 'LLM-Infrastruktur' : 'LLM Infrastructure',
|
title: de ? 'Infrastruktur' : 'Infrastructure',
|
||||||
items: de
|
items: de
|
||||||
? ['120B Modell auf OVH via LiteLLM (OpenAI-kompatibel)', '1000B Modell auf SysEleven (BSI-zertifiziert)', 'Isolierte Namespaces pro Kunde · Keine US-Provider', 'BGE-M3 Embedding lokal · Lazy Model Loading']
|
? ['Qdrant Vektordatenbank fuer semantische Suche', 'BGE-M3 Multilingual Embedding (lokal gehostet)', 'MinIO Object Storage (S3-kompatibel, TLS-verschluesselt)', '100% EU-Cloud · Keine US-Provider · BSI-konforme Hosting-Partner']
|
||||||
: ['120B model on OVH via LiteLLM (OpenAI-compatible)', '1000B model on SysEleven (BSI-certified)', 'Isolated namespaces per customer · No US providers', 'BGE-M3 embedding local · Lazy model loading'],
|
: ['Qdrant vector database for semantic search', 'BGE-M3 multilingual embedding (locally hosted)', 'MinIO object storage (S3-compatible, TLS-encrypted)', '100% EU cloud · No US providers · BSI-compliant hosting partners'],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -194,15 +244,32 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) {
|
|||||||
<FadeInView delay={0.2} key={activeTab}>
|
<FadeInView delay={0.2} key={activeTab}>
|
||||||
{activeTab === 'rag' && (
|
{activeTab === 'rag' && (
|
||||||
<div>
|
<div>
|
||||||
|
{/* Source Categories — Why each matters */}
|
||||||
|
<div className="grid md:grid-cols-2 gap-2 mb-4">
|
||||||
|
{sourceCategories.map((cat, idx) => {
|
||||||
|
const Icon = cat.icon
|
||||||
|
return (
|
||||||
|
<div key={idx} className={`border rounded-xl p-2.5 ${cat.bg}`}>
|
||||||
|
<div className="flex items-center gap-2 mb-1.5">
|
||||||
|
<Icon className={`w-4 h-4 ${cat.color}`} />
|
||||||
|
<h3 className="text-xs font-bold text-white">{cat.title}</h3>
|
||||||
|
</div>
|
||||||
|
<p className="text-[10px] text-white/50 mb-1.5 leading-relaxed">{cat.why}</p>
|
||||||
|
<p className="text-[9px] text-white/25 font-mono leading-tight">{cat.examples}</p>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
|
||||||
{/* Pipeline Flow Visualization */}
|
{/* Pipeline Flow Visualization */}
|
||||||
<div className="flex items-center justify-center gap-1 mb-4 flex-wrap">
|
<div className="flex items-center justify-center gap-1 flex-wrap">
|
||||||
{[
|
{[
|
||||||
{ icon: FileText, label: '38+ PDFs' },
|
{ icon: FileText, label: de ? '75+ Quellen' : '75+ Sources' },
|
||||||
{ icon: Layers, label: 'QA + Chunking' },
|
{ icon: Layers, label: de ? 'Chunking & Lizenz' : 'Chunking & License' },
|
||||||
{ icon: Cpu, label: 'BGE-M3' },
|
{ icon: Cpu, label: de ? 'LLM-Extraktion' : 'LLM Extraction' },
|
||||||
{ icon: Database, label: '6 Collections' },
|
{ icon: Database, label: de ? '70k+ Controls' : '70k+ Controls' },
|
||||||
{ icon: Search, label: 'Hybrid Search' },
|
{ icon: Search, label: de ? 'Hybrid Search' : 'Hybrid Search' },
|
||||||
{ icon: Brain, label: '120B / 1000B' },
|
{ icon: Brain, label: de ? 'Beratung' : 'Advisory' },
|
||||||
].map((step, idx, arr) => (
|
].map((step, idx, arr) => (
|
||||||
<div key={idx} className="flex items-center gap-1">
|
<div key={idx} className="flex items-center gap-1">
|
||||||
<div className="flex items-center gap-1 px-2 py-1 rounded-lg bg-white/[0.05] border border-white/[0.08]">
|
<div className="flex items-center gap-1 px-2 py-1 rounded-lg bg-white/[0.05] border border-white/[0.08]">
|
||||||
@@ -213,28 +280,6 @@ export default function AIPipelineSlide({ lang }: AIPipelineSlideProps) {
|
|||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
{/* Pipeline Steps */}
|
|
||||||
<div className="grid md:grid-cols-2 gap-3">
|
|
||||||
{ragPipelineSteps.map((step, idx) => {
|
|
||||||
const Icon = step.icon
|
|
||||||
return (
|
|
||||||
<div key={idx} className={`border rounded-xl p-3 ${step.bg}`}>
|
|
||||||
<div className="flex items-center gap-2 mb-2">
|
|
||||||
<Icon className={`w-4 h-4 ${step.color}`} />
|
|
||||||
<h3 className="text-xs font-bold text-white">{step.title}</h3>
|
|
||||||
</div>
|
|
||||||
<ul className="space-y-1">
|
|
||||||
{step.items.map((item, iidx) => (
|
|
||||||
<li key={iidx} className="flex items-start gap-1.5 text-[11px] text-white/50">
|
|
||||||
<span className={`w-1 h-1 rounded-full mt-1.5 ${step.color} bg-current shrink-0`} />
|
|
||||||
{item}
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user