Commit graph

155 commits

Author SHA1 Message Date
Cursor
eac6492fa0 fix(llm): Local-Override Routing — Homelab-Fragen immer lokal, auch mit Kosten-Keywords
_LOCAL_OVERRIDES pruefen vor _WEB_TRIGGERS: api kosten, guthaben, container,
feed, backup, etc. gehen immer ans lokale Modell.
2026-03-21 12:17:32 +01:00
Cursor
785aa36a35 feat(bot): API-Kosten Tool — OpenRouter Guthaben/Verbrauch per Chat abfragen 2026-03-21 12:13:58 +01:00
Cursor
36d708bee1 refactor(llm): Local-First Routing mit Sonar-Websuche
- Basis: 981118f9 (lokales Qwen3 30B) wiederhergestellt
- Drei Pfade: lokal (qwen3:30b-a3b), Vision (qwen3-vl:32b), Sonar (perplexity/sonar)
- _route_model() fuer sauberes Routing (Web-Keywords -> Sonar, Rest -> lokal)
- /no_think fuer Ollama, Timeout-Fallback auf qwen2.5:14b
- Passthrough-Tools fuer Grafana-Daten
- deep_research TOOLS wieder aktiviert
- Preis-Spaghetti-Logik entfernt
2026-03-21 12:06:00 +01:00
Homelab Cursor
81f7bbff90 bot: Passthrough fuer vorformatierte Tool-Ergebnisse
Temperaturen/Energie/Heizung-Ausgaben werden direkt an den User
weitergeleitet, ohne nochmal durch die LLM zu gehen.
Behebt Umlaut-Verlust und Formatierungs-Aenderungen durch LLM.
2026-03-21 02:13:38 +01:00
Homelab Cursor
91dc5d8261 bot: Text-Modell auf OpenRouter gpt-4o-mini umgestellt
- MODEL = openai/gpt-4o-mini (schnell, zuverlaessig, perfektes Deutsch)
- Vision bleibt lokal auf qwen3-vl:32b (Ollama)
- FALLBACK_MODEL = qwen3:30b-a3b (lokaler Fallback fuer Vision-Timeout)
- SYSTEM_PROMPT: Tool-Ergebnisse 1:1 weitergeben Regel ergaenzt
- Behebt Umlaut-Probleme und Timeout-Instabilitaet
2026-03-21 02:09:00 +01:00
Homelab Cursor
4d38c5302c fix(grafana): Umlaute, °C, saubere Formatierung fuer Temperaturen/Energie/Heizung
- SENSOR_MAP Labels mit echten Umlauten (Außen, Küche, Ölkessel)
- Gradzeichen °C statt nur C
- Listenformat mit Bindestrich statt Einrueckung
- Abschnitte Räume & Außen / Heizung & Puffer
- Energie-Tool mit passenden Einheiten (W, kWh, %)
- SYSTEM_PROMPT_EXTRA: LLM soll Tool-Output 1:1 weitergeben
2026-03-21 02:02:29 +01:00
Homelab Cursor
db61aaedae fix(llm): Text-Routing auf qwen3:30b-a3b, Timeout-Fallback auf qwen2.5:14b
Vorher lief normaler Text ueber das grosse Vision-Modell qwen3-vl:32b,
was bei Tool-Calls (z.B. get_temperaturen) regelmaessig in Read-Timeouts
nach 120s resultierte.

Aenderungen:
- Text-Modell: qwen3:30b-a3b (MoE, schneller fuer reinen Text)
- Vision-Modell: bleibt qwen3-vl:32b (nur fuer Fotos/Dokumente)
- Fallback bei Timeout: qwen2.5:14b (einmaliger Retry)
- Ollama-Timeout modellabhaengig (180s Text, 240s Vision, 90s Fallback)
- Alle lokalen Modelle werden korrekt als Ollama erkannt
2026-03-21 02:00:36 +01:00
Auto-Sync
20a8cabec0 Auto-Sync: 2026-03-21 01:45 2026-03-21 01:45:09 +01:00
Cursor
9133ca4e05 perf(bot): Thinking-Modus abschalten (/no_think) — drastisch schnellere Antworten 2026-03-21 00:49:27 +01:00
Cursor
11ecc8fa24 upgrade(bot): qwen3-vl:30b (3B aktiv) -> qwen3-vl:32b (32B dense) — 10x mehr Parameter 2026-03-21 00:42:42 +01:00
Cursor
3f4af61389 fix(bot): Einheiten-Falle loesen — min 5 Ergebnisse bei Preisfragen, Gramm/Unze Warnung in Prompt und Suchergebnissen 2026-03-21 00:29:32 +01:00
Cursor
fdd3083628 fix(bot): Preis-Erkennung bei Bildern: Session-History pruefen, mehr Keywords, Einheiten-Warnung, Fallback-Hinweis 2026-03-21 00:25:42 +01:00
Cursor
2697e7f283 fix(web_search): kurze Keyword-Queries statt Saetze, language=de, bessere Prompt-Anweisungen 2026-03-21 00:21:17 +01:00
Cursor
59de3e3a49 fix(bot): bei Bild+Preisfrage erzwinge web_search statt Bild-Extraktion, max_tokens 4000 2026-03-21 00:16:41 +01:00
Cursor
83d3e2c4d7 fix(bot): bei Preisfragen immer web_search nutzen, auch wenn Bild mitgeschickt wird 2026-03-21 00:13:23 +01:00
Cursor
3d0b3084ad fix(bot): Reasoning/Thinking NIEMALS an User zeigen 2026-03-21 00:03:56 +01:00
Cursor
b6d5b982bd feat(bot): Qwen3-VL 30B als einziges Modell (Text+Vision+Tools lokal) 2026-03-20 23:57:15 +01:00
Auto-Sync
9b4e5f0b03 Auto-Sync: 2026-03-20 23:45 2026-03-20 23:45:09 +01:00
Cursor
f6e9e29ae4 fix(web_search): interne SearXNG-URL nicht als Quelle anzeigen 2026-03-20 23:44:48 +01:00
Cursor
981118f940 feat(bot): Qwen3 30B-A3B lokal (Ollama/RTX3090), web_search bevorzugt, Date-Injection, Thinking-Mode Fix 2026-03-20 23:40:58 +01:00
Auto-Sync
d761ec083c Auto-Sync: 2026-03-20 23:00 2026-03-20 23:00:11 +01:00
Homelab Cursor
d189f8adac feat: sichtbarer Fortschritt + echter Abbruch fuer lange Suchen
- Alle 30s Statusmeldung waehrend laufender Suche
- Textbefehl "abbruch"/"stop" cancelt den laufenden Such-Task
- Aufraeumen via Task-Registry pro Chat
- Sauberes Cancel-Handling ohne Tracebacks
2026-03-20 22:35:49 +01:00
Homelab Cursor
e0afaff058 feat: harte Qualitaetspruefung fuer Preisrecherche
Bei Preisfragen validiert deep_research jetzt die Antwort auf:
- konkrete Preise mit Waehrung
- Delta in Prozent
- Preisvergleich damals/heute
- mindestens 3 konkrete Quellen-Links

Wenn die Qualitaet zu schwach ist:
1) automatischer Retry mit strikter Anfrage
2) falls weiter unzureichend: klare Fehlermeldung "keine belastbaren Preisdaten gefunden"
2026-03-20 22:17:50 +01:00
Homelab Cursor
6e4d43f01d feat: Preisanfragen mit Zahlen-Format erzwingen
Der Bot reagiert bei Preisfragen jetzt strenger:
- nutzt verpflichtend web_search/deep_research statt Allgemeintext
- liefert Zeitraum, Preisvergleich, Delta und Quellen
- kennzeichnet fehlende belastbare Preisdaten explizit
2026-03-20 22:12:32 +01:00
Homelab Cursor
3847d6246b fix: blockierende LLM-Aufrufe in Hintergrund-Thread auslagern
Der Telegram Event-Loop wurde bei langen deep_research Calls blockiert,
weshalb der systemd Watchdog den Bot nach ~2 Minuten killte.
LLM-Aufrufe laufen jetzt via asyncio.to_thread, damit Watchdog und
Polling-Loop weiterlaufen waehrend langer Recherche.
2026-03-20 22:05:16 +01:00
Homelab Cursor
6ef208c289 feat: web_search Tool via SearXNG ergaenzen
Issue #35 vervollstaendigt mit schneller Web-Suche (3-10s):
- neues Tool web_search in tools/web_search.py
- SearXNG Endpoint CT121 (intern + Tailscale Fallback)
- strukturierte Treffer mit Snippets + Quellenlinks
- Prompt-Hinweis fuer Routing: web_search vs deep_research
2026-03-20 21:59:33 +01:00
Homelab Cursor
f54833c150 feat: sichtbare Rueckmeldung bei Deep-Research Start
Der Bot sendet jetzt sofort eine zusaetzliche Meldung, wenn eine
Nachricht nach einer Deep-Recherche aussieht, damit der Nutzer weiss,
dass der laengere Recherchelauf gestartet wurde.
2026-03-20 21:50:35 +01:00
Homelab Cursor
7a3327eb90 fix: deep_research Tool — Logging + allow_clarification=False
- Ausfuehrliches Logging fuer Debugging
- allow_clarification deaktiviert (verhindert Rueckfrage-Deadlock)
- Ergebnis-Schwelle auf 100 Zeichen gesenkt
2026-03-20 21:47:33 +01:00
Homelab Cursor
63fea58471 docs: CT 121 deep-research in homelab.conf und Doku
- homelab.conf: CT_121_HZ Eintrag
- CT 999 index.md: CT 121 in Tabelle
- CT 999 container/ct-121-deep-research.md: Neue Doku
2026-03-20 21:32:37 +01:00
Homelab Cursor
3f245ffea9 feat: deep_research Tool fuer Hausmeister-Bot
Open Deep Research (CT 121) als neues LLM-Tool.
- LangGraph API auf 10.10.10.121:2024
- SearXNG + OpenRouter als Backend
- Polling-basiert (2-10 Min pro Recherche)
- Report wird fuer Telegram gekuerzt
2026-03-20 21:30:53 +01:00
Homelab Cursor
4c51dbcae7 feat: Download-Fortschritt live anzeigen mit Progressbar 2026-03-20 20:27:22 +01:00
Homelab Cursor
084c88fe39 perf: Film-Info Batch-Request statt einzeln - viel schneller 2026-03-20 19:48:03 +01:00
Homelab Cursor
b52c53fab0 feat: Dashboard komplett neu - weisse Schrift, grosse Font, Nav-Links, Film-Info
- Hintergrund: #1a1a2e (dunkles Blau statt fast-schwarz)
- Text: #ffffff (weiss statt grau)
- Muted: #b8b8d0 (hell genug zum Lesen)
- Minimum Font: 14px, Body: 17px, Titel: 19px
- Nav-Links: Downloads + Status im Header
- Film-Info: Jahr/Land/Genre per Wikidata (lazy load)
- Kein Monospace mehr, system-ui Sans-Serif
- ACHTUNG: Extra-Routes Import-Block NICHT LOESCHEN
2026-03-20 19:44:26 +01:00
Homelab Cursor
8cda46ab54 fix: Minimum font-size 14px, keine winzige Schrift mehr 2026-03-20 19:41:40 +01:00
Homelab Cursor
fc02d37afe fix: Extra-Routes Import + Dashboard Lesbarkeit (NICHT LOESCHEN)
ACHTUNG: Der Import-Block vor if __name__ MUSS bleiben!
Ohne ihn funktionieren /downloads, /status, /health nicht.
2026-03-20 19:40:41 +01:00
Homelab Cursor
99d7ab7387 fix: Dashboard Lesbarkeit - groessere Schrift, besserer Kontrast
- Body 13px Monospace -> 16px System Sans-Serif
- Filmtitel 14px -> 17px, Meta 11px -> 14px
- Muted-Farbe #6b6b8a -> #9999b0 (viel besser lesbar)
- Alle Buttons, Badges, Filter groesser
- Hintergrund minimal heller fuer weniger Augen-Stress
2026-03-20 19:38:54 +01:00
root
833ee6e449 Save.TV Web-UI: Archiv-Browser mit Download-Auswahl auf Port 8765 2026-03-17 15:54:35 +07:00
root
ff11575d4c Save.TV: Film-Download auf pve-hetzner Festplatte (HD, werbefrei, /mnt/savetv Bind-Mount) 2026-03-17 15:49:26 +07:00
root
dc52448e49 Monitor: WordPress Health-Check wp-cron.php -> robots.txt (wp-cron hängt bei Cron-Jobs) 2026-03-17 15:35:15 +07:00
root
63d2a64533 Save.TV: Kino-Highlights Erkennung statt Score-basiert, 62 echte Kinofilme identifiziert 2026-03-17 15:14:28 +07:00
root
2fae7af346 Save.TV: LLM sieht jetzt ALLE Archiv-Filme + Prompt nutze-dein-Filmwissen 2026-03-17 15:08:56 +07:00
root
7ac401c3a5 Save.TV: Archiv-Bewertung Tool + _get_archive POST-Fix 2026-03-17 15:05:46 +07:00
root
ec5ea0b266 fix: WordPress Health-Check prüft wp-cron.php direkt statt Redirect über Cloudflare 2026-03-17 10:27:52 +07:00
root
f4b48aae69 fix: PDF-Crash bei Nicht-Flugtickets — _check_flight_plausibility gab leeren String statt Tuple 2026-03-17 10:22:17 +07:00
root
e511e08463 fix: Primetime-Bonus entfernt — Sendezeit hat keinen Einfluss mehr auf Score 2026-03-16 22:33:49 +07:00
root
985caeab38 fix: Nacht-Strafe entfernt + Auto-Record ab Score 80 — gute Filme egal wann 2026-03-16 22:31:30 +07:00
root
847b120172 feat: Auto-Aufnahme fuer Top-Filme (Score>=95), Vorschlaege mit Buttons fuer den Rest 2026-03-16 22:23:35 +07:00
root
0dcb0fd35a feat: EPG-Scanner erweitert — 4 Wochen voraus + Seen-Cache fuer nur neue Filme 2026-03-16 22:17:34 +07:00
root
973eb4653e fix: JobQueue optional — asyncio Fallback für Filmtipp-Cronjob 2026-03-16 22:06:38 +07:00
root
1d92679c14 fix: Import InlineKeyboardButton, CallbackQueryHandler 2026-03-16 22:05:23 +07:00