# Laya Decision Model > 421M param ModernBERT-large Classifier (Apache 2.0) auf CT152, CPU-only. > Nutze in normalen Sessions fuer schnelle Klassifizierung, Binaerentscheidungen und Pre-Filter. ## Zugang - **Endpoint:** `POST http://10.0.30.152:8000/predict` - **Payload:** `{"state": "", "questions": {...}}` - **Health:** `GET http://10.0.30.152:8000/health` - **Presets:** `GET http://10.0.30.152:8000/presets/{router|guard|moderation|triage}` ## Entscheidungstypen (Primitives) | Typ |用途 | Return Fields | |-----|------|---------------| | `choice` | Klassifizierung in N Labels | `choice`, `answer_confidence`, `probabilities` | | `noul` | Ja/Nein mit Wahrscheinlichkeit | `noul` (0..1), `answer_confidence` | | `score` | Ordinale Bewertung | `score`, `answer_confidence` | ## Verwendung in Sessions **Praeferieren fuer:** - Pre-Filter vor teuren LLM-Calls (z.B. "ist diese Email eine Rechnung?" → nur bei "ja" LLM aufrufen) - Binaerentscheidungen: alert/skip, escalate/ignore, move/keep - Multi-Kategorie-Klassifizierung mit Confidence - Gatekeeping: Notification-Suppression, Alert-Filtering **NICHT geeignet fuer:** - Textgenerierung / Zusammenfassungen (dafür LLM verwenden) - Komplexe Reasoning-Tasks - Embeddings / Semantische Suche (dafür Harrier/Hindsight) ## Example Call ```python import json, urllib.request payload = json.dumps({ "state": "Von: amazon.de\nBetreff: Bestellbestätigung #12345", "questions": { "kategorie": { "type": "choice", "instructions": "Welche Kategorie?", "criteria": { "rechnung": "Rechnung, Invoice", "bestellung": "Bestellbestätigung, Order", "werbung": "Newsletter, Marketing" } }, "ignorieren": { "type": "noul", "instructions": "Soll ignoriert werden?" } } }).encode() req = urllib.request.Request( "http://10.0.30.152:8000/predict", data=payload, headers={"Content-Type": "application/json"} ) result = json.loads(urllib.request.urlopen(req, timeout=30).read()) # result["answers"]["kategorie"]["choice"] → "bestellung" # result["answers"]["kategorie"]["answer_confidence"] → 0.99 ``` ## Performance - Latenz: ~1.5-1.7s warm cache (CPU) - Load time: ~18s (cold start) - systemd service: `laya.service` (enabled, onboot) ## Einsatzgebiete (aktiv) - **Rechnungen-Organizer** (Cron `f773f8c23230`): 12-Kategorie Email-Klassifizierung, 3-Schichten-Safety - Weitere Kandidaten: Beleg-Sammler, SRE Network Recon, Backup Digest, Frigate Event Gate ## Constraints - 421M Modell → niedrige Confidence bei ambiguous Inputs (Feature, nicht Bug!) - Batch funktioniert nicht — ein Request pro Input-Instanz - `noul` ist nicht zuverlaessig fuer kritische Entscheidungen allein — immer mit `choice` kombinieren - Confidence-Threshold empfohlen (≥0.6 fuer Moves, ≥0.5 fuer Ignores) ## Related - [[concepts/email-organization]] — Rechnungs-Organizer Architecture - [[entities/infrastructure]] — CT152 auf proxmox6 - Solution Doc: `docs/solutions/architecture/2026-09-27-laya-email-organizer-migration.md`