- _is_wide_recall_query: erkennt jetzt Wohnung+welche/alle, Kambodscha+Wohnung
- _WIDE_SUBQUERIES_IMMOBILIEN: Arakawa-Wohnungen, Mietvertraege, Kaufvertrag, Hard Title etc.
- handle_rag_search waehlt Subquery-Pool je nach Thema (Immo vs. Versicherung)
Die API setzt _host je nach homelab.conf (z.B. pve-hetzner); (115,pve-ka-1)
griff dann nicht. Erwartete stopped-VMIDs jetzt host-unabhängig bei status stopped.
- rag: wide bis 60 Treffer, ES 200, 22 Subqueries, Merge mit Dedup
pro vollem docnm_kwd (Ordner+Datei getrennt).
- llm: forciertes RAG top_k 60, Tool bis 100k Zeichen.
- telegram: lange Antworten in mehrere Nachrichten (RAG-Listen sichtbar).
- wide_recall: bis 16 ES-Runden mit Sparten-/Gesellschafts-Queries, Merge
nach Dedup-Key, bis 25 distinct Treffer, groessere Snippets.
- Normale Suche: top_k bis 15, ES bis 150.
- Forciertes RAG: top_k 25, Tool-Payload 32k Zeichen.
- Hinweis: 100% Vollstaendigkeit haengt von Index/OCR ab.
- 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.
- 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.
- 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.
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.
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.