Restructure memory layers: USER.md/MEMORY.md cleanup, 4 new system pages, memory-layer-architecture concept
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# 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
|
||||
|
||||
```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`
|
||||
Reference in New Issue
Block a user