Homelab Cursor
44d80d2a9e
feat(bot): Schalter Betriebsart Unterlagen (RAG zuerst)
...
- Neue Tastaturzeile: Unterlagen AUS/AN zeigt Modus und schaltet um.
- document_mode in ask_with_tools: erzwingt lokales Modell und RAG-Pflicht
wie bei Doc-Keywords (Session wird bei Suche wie bisher bereinigt).
- Optional: doku:/rag: Prefix fuer einmalige Suche ohne Modus.
- Sprache und Hilfetext ergaenzt.
2026-03-26 17:05:06 +01:00
Homelab Cursor
d771a330c7
fix(routing): yearly costs to local RAG, not Sonar
...
- Remove standalone "kosten" from WEB_TRIGGERS (matched "jährlichen kosten" and sent Perplexity without tools).
- Add LOCAL_OVERRIDES for jahreskosten/jaehrlich/beitragsrechnung phrases.
- Extend forced-RAG keywords and enrich ES query with Beitrag/Beitragsrechnung for cost questions.
- System hint: extract amounts and periods per hit when possible.
2026-03-26 17:01:43 +01:00
Homelab Cursor
03f70fdda3
fix(rag): larger forced tool payload (12k) + list all insurance Sparten
...
- Forced rag_search used top_k=10 and tool content up to 12k chars (was 3k, cut off most hits).
- System instruction: enumerate each Sparte/doc type for same insurer, not only first hit.
- rag.py SYSTEM_PROMPT_EXTRA: same rule for multi-hit answers.
2026-03-26 16:56:29 +01:00
Homelab Cursor
7b6543be90
fix(rag): strip session history when forced RAG fires
...
Poisoned session history (4x wrong answers) overrode RAG results.
Now: when doc keywords trigger forced rag_search, rebuild messages
from scratch with ONLY system prompt + RAG results + question.
No session history = no poisoning.
2026-03-26 16:51:29 +01:00
Homelab Cursor
e5327cd65e
fix(rag): force rag_search in code, do not rely on LLM tool-calling
...
The LLM ignores system injections when session history already
contains insurance answers. Now: when doc keywords detected, call
rag_search directly in Python, inject results as fake tool-call
into messages. LLM only needs to format the answer.
2026-03-26 16:48:21 +01:00
Homelab Cursor
98d0698db0
fix(rag): inject PFLICHT-reminder for doc-keywords to prevent LLM skipping rag_search
...
When session history already contained insurance/document answers,
the LLM would skip rag_search and hallucinate from memory.
Now: if doc keywords detected, inject system-message reminder AFTER
session history but BEFORE user question, forcing rag_search call.
Fixes #51 follow-up: LVM query returned wrong answer.
2026-03-26 16:38:29 +01:00
Homelab Cursor
0e1c7a6ebb
llm: Routing-Fix — Dokument-Keywords in LOCAL_OVERRIDES
...
Versicherung/Vertrag/Steuer/Rente/Dokument etc. routen jetzt lokal
statt zu Sonar, damit rag_search per Tool-Calling aufgerufen wird.
Vorher: aktuell in Frage -> Sonar -> kein Tool-Calling -> kein RAG.
Ref: Issue #51
2026-03-26 14:43:56 +01:00
Homelab Cursor
d2a6391f52
feat(llm): Ollama warmup bei Start - Modelle permanent im VRAM
...
- warmup_ollama() laedt qwen3:30b-a3b + nomic-embed-text mit keep_alive=-1
- Wird beim Bot-Start in post_init() aufgerufen (via asyncio.to_thread)
- keep_alive=-1 nur ueber native Ollama API (/api/generate) moeglich
- GPU haelt 22.6/24 GB permanent: Text + Embeddings ohne Swap
2026-03-25 20:59:30 +01:00
Homelab Cursor
a0724ba6f1
refactor(llm): GPU-Architektur - Text lokal, Vision Cloud
...
- MODEL_VISION von qwen3-vl:32b (Ollama) auf openai/gpt-4o-mini (OpenRouter)
- Vision-Modell aus OLLAMA_MODELS entfernt (kein GPU-Swap mehr)
- keep_alive=-1 fuer Ollama: Textmodell bleibt permanent im VRAM
- RTX 3090 wird dedizierter Text+Embedding-Server
- Neue Dienste koennen Ollama mitnutzen ohne Konkurrenz
2026-03-25 20:56:55 +01:00
Homelab Cursor
92898a33e3
fix(llm): kein Fallback auf Textmodell bei Vision-Anfragen
...
Wenn qwen3-vl:32b timeout hat, wurde bisher auf qwen2.5:14b
(Textmodell) zurueckgefallen. Das kann keine Bilder sehen und
halluziniert stattdessen. Jetzt: allow_fallback=False fuer Vision
und klare Fehlermeldung bei Timeout.
2026-03-25 19:46:35 +01:00
Homelab Cursor
dbf2497cd6
Hausmeister Kumpel-Modus: OpenMemory (CT 122) angebunden
...
- openmemory_client.py: REST-API Client für search/add/list
- tools/openmemory.py: openmemory_add, openmemory_search, Kumpel SYSTEM_PROMPT_EXTRA
- llm.py: OpenMemory-Block in Prompt (Text + Bild)
- homelab.conf: OPENMEMORY Optionen dokumentiert
2026-03-24 14:03:19 +01:00
Homelab Cursor
c4553b46d7
feat: KI-Systemvorhersage (tools/predict.py) + taegl. 08:00 Job
...
- tools/predict.py: sammelt Disk-Trends (Prometheus), Fehler-Logs (Loki),
Container-Status (Proxmox) und laesst lokales LLM eine Prognose erstellen
- telegram_bot.py: daily_forecast Job taegl. 08:00 Uhr, sendet Prognose via Telegram
- llm.py: Forecast-Trigger (vorhersage, prognose, was bahnt sich an etc.) -> lokal
2026-03-21 13:18:20 +01:00
Cursor
ebe6d21c18
feat(llm): Tiefensuche auf Perplexity Sonar Deep Research umgestellt
...
Open Deep Research (CT 121 LangGraph) deaktiviert — lieferte schlechte
Qualitaet. Sonar Deep Research ist schneller, zuverlaessiger, mit Quellen.
2026-03-21 12:58:16 +01:00
Cursor
ca770cfa44
feat(llm): Deep Research Trigger-Synonyme erweitert (tiefensuche, detailrecherche, etc.)
2026-03-21 12:42:25 +01:00
Cursor
204fe8fe36
fix(llm): _LOCAL_OVERRIDES Check fehlte in _route_model — jetzt korrekt eingefuegt
2026-03-21 12:22:16 +01:00
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
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
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
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
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
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
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
root
b69650c89c
System-Prompt: Passwort-Regel praezisiert — get_service_directory statt abblocken
2026-03-16 15:54:13 +07:00
root
4e07dbec77
Plugin-System: tools/*.py auto-discovery, eine Datei pro Tool
2026-03-16 14:25:22 +07:00
root
1a3f1f9a40
Hausmeister-Bot: Wochentags-Muster nur bei ausreichend Daten, WordPress/Matomo Tool-Beschreibungen geschaerft
2026-03-16 13:18:54 +07:00
root
ae7bbebede
Hausmeister-Bot: Qualifizierte Matomo-Auswertung — WoW-Vergleich, Trend, Ausreisser, Bounce/Engagement-Bewertung, Wochentags-Muster, Traffic-Quellen-Analyse, Prognose
2026-03-16 13:05:26 +07:00
root
402c2eac42
Hausmeister-Bot: Matomo Analytics Integration — Besucherzahlen, Trend, Top-Seiten, Traffic-Quellen per Chat abfragbar
2026-03-16 12:57:44 +07:00
root
783e043353
Plausibilitaet: Anschlussflug-Datumscheck — verdaechtige Tagesspruenge als medium-confidence flaggen
2026-03-16 09:45:39 +07:00
root
04b218044e
Dokumentenextraktion: konservativ, feldweise Confidence, kein Raten, Rohtext/Interpretation getrennt
2026-03-16 09:43:44 +07:00
root
b9d781d678
Vision: Datumserkennung verschaerft — Zeichen-genaues Lesen + Plausibilitaetspruefung bei Anschlussfluegen
2026-03-16 09:39:02 +07:00
root
345d3e45ab
Vision: gpt-4o statt gpt-4o-mini fuer Bilderkennung, detail=high, 1200 Tokens
2026-03-16 09:24:04 +07:00
root
c9f1985266
Vision: Zeitlogik-Prompt bereinigt — falsches Beispiel entfernt, Zeitzonen-Erklaerung verbessert
2026-03-16 09:21:13 +07:00
root
78ba9ffd63
Vision: Zeitberechnung verschaerft — immer selbst nachrechnen, nie aus History kopieren
2026-03-16 09:16:51 +07:00
root
26f819f949
Vision: Zeit/Datumslogik-Pruefung fuer Flugdaten im Prompt
2026-03-16 09:15:28 +07:00
root
aed9e6d28a
Vision: intelligente Bilderkennung + PDF-Support + Dokument-Handler
2026-03-16 09:11:29 +07:00
root
89f2c03fa0
Fotoerkennung: handle_photo + ask_with_image fuer Hausmeister-Bot
2026-03-16 09:06:01 +07:00
root
21d004f3c9
Supersede-Fix: Threshold 0.82→0.72, Prompt verhindert war-Umformulierungen
2026-03-15 19:20:47 +07:00
root
7ae6ac0e4c
RAG v2: Klassifizierung (6 Typen, 3 Confidence), source_type, Auto-Supersede, /memory erweitert
2026-03-15 17:34:16 +07:00
root
a2c0279f99
RAG: Vektor-Suche statt All-Items-Prompt, Kandidaten-System entfernt, Bot speichert direkt
2026-03-15 16:16:25 +07:00
root
90722418c2
LLM: System-Prompt um Gedaechtnis-Lese-Anweisung ergaenzt
2026-03-15 15:40:40 +07:00
root
00e0bede99
Memory: LLM IMMER memory_suggest aufrufen auch bei Wiederholungen
2026-03-15 13:22:56 +07:00
root
d834d12520
Memory: temporaer/permanent Trennung, 3 Inline-Buttons, Zeitnormalisierung, expires_at
2026-03-15 13:07:57 +07:00