Add internal chat testing with memory diagnostics and cancellation

This commit is contained in:
Mikei386
2026-09-28 20:43:40 +02:00
parent ff5d36252a
commit 7ada7f6f20
15 changed files with 265 additions and 24 deletions
+25
View File
@@ -129,3 +129,28 @@ Listener gestoppt und Modell entladen. Keine vorhandenen Nutzerprompts oder
Anwendungslogs gelesen. Testprofile und Testzugang gehören nicht zur normalen
Deck-Konfiguration. Der Test weist keine vollständige OpenAI-Kompatibilität oder
Langzeitstabilität nach.
## Sprachmodelle → Testen
Der interne Testchat verwendet denselben Scheduler und llama.cpp-Worker wie der
API-Endpunkt, braucht aber keine Veröffentlichung des Profils und keinen
API-Token im Browser. Profilauswahl, fortlaufender Textchat, Antwortlimit (bis
4096 Token), Abbrechen und explizites Entladen stehen bereit. Der Modellprozess
bleibt nach einer Antwort geladen; andere Profile/Bildaufträge wechseln regulär.
Entladen wird bei aktiven Anfragen abgewiesen. Abbrechen schließt nur die eigene
Chatverbindung; während des eigenen Modellstarts bricht es diesen Start ab.
Der Verlauf liegt nur im Browser-Arbeitsspeicher. Beim Wechsel der Ansicht oder
des Profils beginnt ein neuer Verlauf. Der Server hält nur den aktuellen Testjob
mit gestreamter Antwort vorübergehend im RAM; weder Prompt noch Antwort werden
als Chatdatei oder Log gespeichert. Reguläre Admin-Sitzung/CSRF-Schutz gelten für
GET `/api/v1/chat-tests` und POST `/api/v1/chat-tests/start`, `/cancel`, `/unload`.
Start: `profile_id`, Textnachrichten `messages`, `max_tokens`. Kein Bearer-Zugriff.
Diagnose zeigt Ladephase, Wartezeit/Reservierungen, reale GPU-Belegung und die
Speicherprognose mit Reserve je GPU, RAM-Budget und GPU-Layerlimit. Eine Prognose
ist kein Nachweis für fehlerfreien Betrieb. Bestätigte Cgroup-OOM-Kills werden
als RAM-OOM gemeldet; ein GPU-OOM wird ohne eindeutigen Nachweis nicht behauptet.
Ein nicht eindeutig diagnostizierter Prozessabbruch nennt Speicher, Modell/Build
oder Zeitlimit als mögliche Ursachen. Bestehende Anwendungslogs werden nicht gelesen.