mirror of
https://github.com/Jeuners/astra-vision.git
synced 2026-09-09 15:02:35 +02:00
feat: deterministic keyword trigger for read_news, bypassing the LLM
Reale Nutzung zeigte das gemessene Problem live: "Gerne! Ich lese dir
die aktuellen Nachrichten aus Hilden vor." — dann nichts, weil das
Modell den Tool-Call nur ankündigte statt ihn auszuführen (erwartbar
bei ~15-20% Trefferquote mit drei konkurrierenden Tools).
astra/triggers.py prüft den transkribierten Nutzertext direkt auf
"nachrichten"/"news" + optional einen Themen-Alias und ruft bei Treffer
den bereits registrierten read_news-Handler direkt auf — Wiederverwendung
desselben Handlers (gleiche UI: activity/tool_start/tool_result), nur
ohne die LLM-Entscheidung dazwischen. Das Ergebnis wird als Tool-
Roundtrip in den Kontext injiziert, damit die reguläre LLM-Antwort davon
weiß.
Live verifiziert mit der exakten Nutzerphrase ("Gib mir bitte an der
Liste der aktuellen News Hilden.") über echte synthetisierte Sprache:
2/2 Durchläufe zeigten zuverlässig vier echte, klickbare Hilden-
Schlagzeilen, auch als die STT "News" und "Hilden" einmal zu einem Wort
zusammenzog (Teilstring-Matching fängt das ab). generate_image und
read_article bleiben reine LLM-Tools, da ihnen eine feste Trigger-Phrase
fehlt.
NICHT gepusht — weiterhin nur lokal, wie angewiesen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVgSHNHdRx3UNTBodFmhRA
This commit is contained in:
parent
b0282900d2
commit
6a391e943f
4 changed files with 162 additions and 0 deletions
12
README.md
12
README.md
|
|
@ -80,6 +80,18 @@ mehrdeutig ist). Bildgenerierung bleibt bei ~100 % zuverlässig. Bekannte
|
|||
Grenze eines kleinen lokalen Modells bei Tool-Konkurrenz, kein Bug — die
|
||||
saubere Trennung war eine bewusste Architekturentscheidung.
|
||||
|
||||
**`astra/triggers.py`** umgeht diese Grenze gezielt für `read_news`: ein
|
||||
einfacher Keyword-Check (`nachrichten`/`news` + optional ein Themen-Alias
|
||||
wie `hilden`/`technik`/`wirtschaft`) im transkribierten Nutzertext ruft
|
||||
den `read_news`-Handler direkt auf — derselbe Handler, dieselbe UI,
|
||||
nur ohne die unzuverlässige LLM-Entscheidung dazwischen. Das Ergebnis
|
||||
landet als Tool-Roundtrip im Kontext, damit die nächste LLM-Antwort es
|
||||
kennt. Live getestet: 2/2 zuverlässig, wo die reine LLM-Entscheidung nur
|
||||
~15–20 % erreichte. `generate_image` und `read_article` bleiben bewusst
|
||||
reine LLM-Tools, weil sie keine feste Trigger-Phrase haben (Bildwunsch
|
||||
und "erzähl mehr" sind zu variabel für ein Keyword-Muster) und
|
||||
`generate_image` ohnehin zuverlässig funktioniert.
|
||||
|
||||
## Starten
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue