3.1 KiB
3.1 KiB
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": "<text>", "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
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
noulist nicht zuverlaessig fuer kritische Entscheidungen allein — immer mitchoicekombinieren- 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