feat(tts): Emojis/Markdown beim Vorlesen entfernen + Autostart/GPU-Doku

- spoken_response_adapter: Emoji-/Symbol-Strip (Emoticons, Symbole, Flaggen,
  Pfeile, Dingbats, ZWJ/Variationsselektoren). Markdown wurde bereits entfernt.
- Geräte-TTS (app.js v28) liest das bereinigte "spoken"-Feld statt des Rohtexts
  (automatisch + beim Replay); Anzeige bleibt Originaltext.
- deploy/ollama-keepalive.conf: Drop-in OLLAMA_KEEP_ALIVE=5m -> GPU im Leerlauf frei.
- Doku §4.10: Dauerbetrieb als Dienst + warum der Gateway die GPU nicht blockiert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-20 18:25:45 +02:00
commit bd20a308de
5 changed files with 85 additions and 5 deletions

View file

@ -715,6 +715,41 @@ systemctl --user restart voice-assistant # systemd-Betrieb
---
### 4.10 Dauerbetrieb als Dienst + GPU automatisch frei
Damit der Gateway beim Booten automatisch startet und nicht im Vordergrund hängt,
läuft er als **systemd-User-Dienst** (Unit: `deploy/voice-assistant.user.service`).
```bash
cp deploy/voice-assistant.user.service ~/.config/systemd/user/voice-assistant.service
loginctl enable-linger "$USER" # sudo -> Dienst läuft auch ohne Login / nach Reboot
systemctl --user daemon-reload
systemctl --user enable --now voice-assistant
```
**Wichtig — der Gateway blockiert die GPU NICHT.** Der Gateway-Prozess läuft auf der
CPU. Die GPU 1 wird allein vom **LLM-Backend** belegt:
- **llama.cpp** (Docker-Container) ist *immer resident* → belegt die GPU dauerhaft, solange er läuft. Daher **nicht** automatisch mitstarten; nur bei Bedarf (`make llm-llamacpp`).
- **Ollama** lädt das Modell erst beim ersten Request in die GPU und gibt sie nach
Leerlauf wieder frei — **wenn** `OLLAMA_KEEP_ALIVE` ein Timeout ist (Default `-1` = nie).
→ Für „GPU im Leerlauf frei" das Drop-in `deploy/ollama-keepalive.conf` installieren
(setzt `OLLAMA_KEEP_ALIVE=5m`):
```bash
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo cp deploy/ollama-keepalive.conf /etc/systemd/system/ollama.service.d/keepalive.conf
sudo systemctl daemon-reload && sudo systemctl restart ollama
```
So ist GPU 1 standardmäßig frei: Der Gateway läuft (Boot), Ollama hält die GPU nur
während aktiver Nutzung. Du musst nichts mehr manuell stoppen.
> **Hinweis:** Erst im Dienst-Betrieb funktioniert der **Log-Tab** des Admin-Panels
> (er streamt das Journal der Unit). Im Vordergrund-Betrieb (`make run`) landen die
> Logs nur im Terminal.
---
## 5. Das System benutzen
> 👤 Endnutzer