feat: Resilienz (Fallback-Ketten) und Metriken (#5)
- Fallback-Provider (app/providers/fallback.py) fuer STT/LLM/TTS: Provider-Kette der Reihe nach; Config *_FALLBACK; build_orchestrator baut Ketten (dedupliziert) - LLM-Stream-Fallback nur solange kein Token gesendet wurde - Metriken (app/metrics.py): In-Memory Counter/Timer, keine externe Dependency - HTTP-Middleware (Requests/Latenz/Status je Pfad); Pipeline-Stufen-Timing stt/llm/tts; Fallback-/Fehlerzaehler; GET /api/metrics (JSON + Prometheus) - Tests: 58 gruen (+6); Doku aktualisiert (README, BEDIENUNGSANLEITUNG, Architektur, .env.example) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
093da817d8
commit
6422444017
13 changed files with 452 additions and 23 deletions
|
|
@ -292,7 +292,30 @@ senden — die laufende Antwort wird abgebrochen (`interrupted`-Event).
|
|||
|
||||
---
|
||||
|
||||
## 11. Fehlerbehebung
|
||||
## 11. Resilienz & Metriken (Betrieb)
|
||||
|
||||
**Fallback bei Provider-Ausfall:** Pro Modul eine Ersatzliste setzen (in `.env`).
|
||||
Fällt der primäre Provider aus, übernimmt der nächste automatisch:
|
||||
|
||||
```
|
||||
LLM_FALLBACK=local-openai-compatible
|
||||
STT_FALLBACK=faster-whisper
|
||||
TTS_FALLBACK=piper
|
||||
```
|
||||
|
||||
**Metriken ansehen:**
|
||||
|
||||
```bash
|
||||
curl http://localhost:8080/api/metrics # JSON
|
||||
curl http://localhost:8080/api/metrics?format=prometheus
|
||||
```
|
||||
|
||||
Enthält Request-Zahlen/-Laufzeiten, Pipeline-Stufen (`stt`/`llm`/`tts`) und
|
||||
Fallback-/Fehlerzähler. Die Werte gelten pro laufendem Prozess.
|
||||
|
||||
---
|
||||
|
||||
## 12. Fehlerbehebung
|
||||
|
||||
| Symptom | Ursache | Lösung |
|
||||
|---|---|---|
|
||||
|
|
@ -313,7 +336,7 @@ Logs erscheinen im Terminal, in dem `make run` läuft. Für mehr Details
|
|||
|
||||
---
|
||||
|
||||
## 12. Tests ausführen
|
||||
## 13. Tests ausführen
|
||||
|
||||
```bash
|
||||
make test
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue