Dieter Schlüter
855fc71a1e
feat(safety): zweistufige Notfall-Erkennung mit LLM-Klassifikation
- app/safety/llm_classifier.py: LLM klassifiziert Aeusserungen (medical/self_harm/
help/none) mit Konfidenz-Schwelle, eigener JSON-Prompt, Reasoning aus, temp 0
- emergency.py: Eskalation in _escalate() gebuendelt (Log/Metrik/Webhook, source-Label);
schedule_llm_emergency_check() faehrt Stufe 2 als Hintergrund-Task NUR wenn die
Stichwort-Heuristik nichts fand -> faengt verpasste Formulierungen ohne Mehrlatenz
- /ws/voice schickt bei LLM-Treffer ein nachgelagertes emergency-Event (source=llm)
- Konfig: EMERGENCY_LLM_ENABLED/_PROVIDER/_MIN_CONFIDENCE
- Tests: Parsing, Konfidenz-Schwelle, Skip-bei-Keyword-Treffer, Eskalation+Callback,
disabled, kaputtes JSON
- Doku: README + Architektur-Roadmap (Punkt 6)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 03:24:25 +02:00 |
| .. |
|
conftest.py
|
feat: Audio-Streaming als Default (Admin abschaltbar via AUDIO_STREAM_DEFAULT)
|
2026-06-17 18:07:36 +02:00 |
|
test_audio_router.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
test_auth.py
|
feat(tts): echtes lokales TTS via piper (kein Stub mehr)
|
2026-06-17 22:11:20 +02:00 |
|
test_basic_layout.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
test_config_profiles.py
|
Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament
|
2026-06-17 01:48:56 +02:00 |
|
test_emergency_llm.py
|
feat(safety): zweistufige Notfall-Erkennung mit LLM-Klassifikation
|
2026-06-18 03:24:25 +02:00 |
|
test_endpoints_e2e.py
|
feat(tts): echtes lokales TTS via piper (kein Stub mehr)
|
2026-06-17 22:11:20 +02:00 |
|
test_memory.py
|
feat: Langzeit-Erinnerungen (#3b) und WebSocket-Streaming-Chat (#4, erster Increment)
|
2026-06-17 04:26:55 +02:00 |
|
test_memory_extraction.py
|
feat(memory): automatische Erinnerungs-Extraktion aus Gespraechen
|
2026-06-18 03:15:08 +02:00 |
|
test_openrouter_tts.py
|
fix(tts): OpenRouter-TTS bei transient leerer/5xx-Antwort wiederholen
|
2026-06-18 00:06:47 +02:00 |
|
test_piper_tts.py
|
feat(tts): echtes lokales TTS via piper (kein Stub mehr)
|
2026-06-17 22:11:20 +02:00 |
|
test_quota_safety.py
|
feat: Tageskontingent und Notfall-Eskalation (#6)
|
2026-06-17 05:29:30 +02:00 |
|
test_realtime.py
|
feat: Barge-in/Turn-Manager und VAD-Aeusserungserkennung (#4 Ausbau)
|
2026-06-17 05:06:58 +02:00 |
|
test_resilience.py
|
feat: Resilienz (Fallback-Ketten) und Metriken (#5)
|
2026-06-17 05:19:07 +02:00 |
|
test_routing.py
|
feat: Cloud-Fundament - Auth, Persistenz und Mandanten-Trennung
|
2026-06-17 02:14:25 +02:00 |
|
test_streaming.py
|
feat(tts): Aussprache-Normalisierung vor Piper (Ordinalia/Einheiten/Abk./Lexikon)
|
2026-06-17 23:01:41 +02:00 |
|
test_tts_normalizer.py
|
feat(tts): Aussprache-Lexikon befüllt (verifizierte Vokallängen-Fixes) + case-insensitiv
|
2026-06-17 23:19:17 +02:00 |
|
test_ws.py
|
feat: Audio-Streaming als Default (Admin abschaltbar via AUDIO_STREAM_DEFAULT)
|
2026-06-17 18:07:36 +02:00 |