'use client' import { useState } from 'react' import { DATASHEET_EXAMPLES } from './readiness-presets' interface Followup { key: string; label: string; question: string } interface ExtractResult { limits: Record provenance: Record detected: { interfaces: string[]; units: string[] } filled: string[] missing: string[] followup: Followup[] } const FIELD_LABEL: Record = { machine_designation: 'Maschinenbezeichnung', machine_type: 'Maschinentyp', manufacturer: 'Hersteller', year_of_construction: 'Baujahr', general_description: 'Allgemeine Beschreibung', intended_purpose: 'Verwendungszweck', area_of_use: 'Einsatzbereich', operating_modes: 'Betriebsarten', variants: 'Varianten', foreseeable_misuses: 'Vorhersehbare Fehlanwendungen', spatial_limits: 'Räumliche Grenzen', temporal_limits: 'Zeitliche Grenzen', operating_conditions: 'Betriebsbedingungen', energy_supply: 'Energieversorgung', mechanical_interfaces: 'Mechanische Schnittstellen', electrical_interfaces: 'Elektrische Schnittstellen', software_interfaces: 'Software-Schnittstellen', pneumatic_hydraulic_interfaces: 'Pneumatik/Hydraulik', person_groups: 'Personengruppen', qualification_requirements: 'Qualifikationsanforderungen', } export function DatasheetExtract() { const [text, setText] = useState('') const [res, setRes] = useState(null) const [loading, setLoading] = useState(false) const [answers, setAnswers] = useState>({}) const run = async () => { setLoading(true) try { const r = await fetch('/api/v1/cra/extract-datasheet', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ text }), }) setRes(r.ok ? await r.json() : null) setAnswers({}) } finally { setLoading(false) } } return (

Datenblatt-Analyse → Maschinengrenzen

Datenblatt einfügen — wir füllen die ISO-12100-Grenzen automatisch (lokales KI-Modell, Datenhoheit) und fragen gezielt nach, was nicht im Datenblatt steht. Jeder übernommene Wert trägt seine Quelle.

Beispiel laden: {DATASHEET_EXAMPLES.map((d) => ( ))}