my_voice_assistant_v3_jamulix/app/providers
dschlueter 48a79da12f feat(llm): Härtung gegen tool-unfähiges Modell (no-tool-endpoints-404)
Waehlt jemand (Admin/Preset) ein Modell ohne Tool-faehigen Endpoint, lieferte
OpenRouter ein 404 "No endpoints found that support tool use" -> bisher 4x Retry
mit Backoff und danach stille, konfident-veraltete Fallback-Antwort.

- ToolCallingLLM erkennt das strukturelle 404 (_looks_tool_unsupported), merkt
  es fuer den Turn (_tools_unsupported), deaktiviert Tools und antwortet SOFORT
  plain (kein Haenger). Log-Warnung + Metrik tool_unsupported_total.
- Backstop-Inject jetzt als SYSTEM-Kontext statt synthetischem tool_call: das
  funktioniert mit tool-faehigen UND tool-unfaehigen Modellen (letztere lehnen
  tool-Messages mit 405 ab). Folge: heikle Kategorien bleiben auch auf einem
  tool-unfaehigen Modell korrekt; nur nicht-heikle Volatil-Fragen fallen plain.

Live verifiziert gegen mistral-2501 (tool-unfaehig): 3.7s statt Haenger,
Backstop liefert weiter "Merz"; gegen mistral-3.2 kein Regress (1 Suche).
Tests: 312 gruen. Doc §5.7/§5.8/§8.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 00:21:38 +02:00
..
llm feat(llm): Härtung gegen tool-unfähiges Modell (no-tool-endpoints-404) 2026-06-30 00:21:38 +02:00
stt feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache 2026-06-25 19:36:17 +02:00
tts fix: audioop-DeprecationWarning beim Resampling unterdrücken 2026-06-25 00:52:25 +02:00
__init__.py Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
fallback.py feat(llm): Web-Suche per Tool-Calling (Weg 2) — Sonar + ToolCallingLLM 2026-06-29 21:37:08 +02:00