feat(llama_server): heartbeat embed — garde chaud le slot nomic :1238 (#28)

Le grounding RAG du STT ratait par intermittence (docs=0 → réponses génériques)
parce que l'instance d'embedding :1238 partait à froid après une pause : la 1ʳᵉ
requête mettait 5-8 s et dépassait le timeout 4 s du STT-server (recall + RAG doc).

llama-embed-heartbeat : service systemd local sur gpu-01 qui envoie un petit embed
à :1238 toutes les 20 s → le slot reste résident/chaud → la 1ʳᵉ vraie requête est
rapide → docs>0 fiable. Pendant du llm-heartbeat (slot chat :1234), pour le slot embed.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-19 22:17:23 +02:00 committed by GitHub
parent 11693e2abf
commit 1b85d4ee65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 140 additions and 0 deletions

View file

@ -12,6 +12,20 @@ Compile llama.cpp (backend HIP/ROCm) et déploie le service **llama-server GPU**
`llama-embed` servant un modèle d'embedding spécialisé (ex. `nomic-embed-text`) sur
`:1238`, GPU. Télécharge le GGUF depuis `llama_embed_model_url` si absent. Partage le
binaire et le GPU avec `:1234` (modèle ~300 Mo VRAM).
- **Heartbeat embed** (optionnel, `llama_embed_heartbeat_enabled`, défaut `true`) : service
systemd `llama-embed-heartbeat` qui envoie un petit embed à `:1238` toutes les
`llama_embed_heartbeat_interval` s → garde le **slot d'embedding chaud**. Sans ça, la 1ʳᵉ
requête après une pause part à froid (5-8 s) et dépasse le timeout du STT-server (4 s) →
recall mémoire vide **et** RAG documentaire raté (`docs=0`, cf. `admin/ia/stt.md`). Pendant
du `llm-heartbeat` (rôle `litellm`) côté chat. Logs : `journalctl -u llama-embed-heartbeat`.
## Heartbeat embed — variables
| Variable | Défaut |
|---|---|
| `llama_embed_heartbeat_enabled` | `true` (si `llama_embed_enabled`) |
| `llama_embed_heartbeat_interval` | `20` (s entre deux pings) |
| `llama_embed_heartbeat_timeout` | `15` (s max par ping) |
- **Watchdog** (optionnel, `llama_watchdog_enabled`, défaut `true`) : service systemd
`llama-watchdog` qui sonde une **vraie génération** sur `:1234` toutes les
`llama_watchdog_interval` s. Sur `llama_watchdog_failures` échecs consécutifs →