Commit graph

47 commits

Author SHA1 Message Date
Homelab Cursor
3b6ee14b37 fix(rag): timeout 45s, RRF rank-map bug fix 2026-03-28 16:54:20 +01:00
Homelab Cursor
a3735bf265 fix(rag): RRF fusion, 512-char snippets, 15 candidates — speed+quality 2026-03-28 16:51:06 +01:00
Homelab Cursor
da0d1cd16c feat(rag): Cross-Encoder Reranking via CT123 bge-reranker-v2-m3 2026-03-28 16:37:56 +01:00
Homelab Cursor
8b78cf0854 rag: docnm_search (Boost 5.0) — Dateinamen als Volltext durchsuchbar (#52)
ES-Index: neues Feld docnm_search (custom analyzer mit path_splitter,
__ und _ werden zu Leerzeichen). docnm_kwd bleibt als Keyword.
Hybrid-Suche nutzt jetzt docnm_search mit Boost 5.0 —
Arakawa/Wohnung/Kambodscha etc. finden direkt ueber den Dateinamen
ohne handverdrahtete Subqueries.

Closes #52
2026-03-27 10:41:00 +01:00
Homelab Cursor
70469cfbc5 rag: Fix toter Code — Immobilien-Wide-Check war nach return unreachbar 2026-03-26 19:04:23 +01:00
Homelab Cursor
0a76bee464 rag: Breitensuche fuer Wohnungen/Immobilien/Kambodscha
- _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)
2026-03-26 19:00:28 +01:00
Homelab Cursor
00283a6268 llm+rag: RAG-Pflicht fuer Wohnung/Immobilie/Kambodscha; generische Forced-Prompts
- _DOC_KW: wohnung, immobilie, condo, kambodscha, takeo, phnom, haus, ...
- Bei Geo/Wohnung: RAG-Query mit Zusatz-Keywords
- Forced-RAG: Finanz-Fokus vs. allgemeine Unterlagen (Gedaechtnis nicht Prioritaet)
- rag.py: Tool-Prompt Wohnungen/Ausland explizit
2026-03-26 18:53:06 +01:00
Homelab Cursor
40d6badfc7 fix(rag+llm): Kfz-Kosten mit Quelle; kein nackter EUR-Betrag
- Forciertes RAG: Prompt verbietet Ein-Zahl-Antwort; Dateiname Pflicht.
- User-Nachtrag [Quelle: ...] bei forced RAG.
- rag: kostet/wie viel in wide recall; Subqueries Ford Transit / Kfz jährlich.
2026-03-26 17:18:32 +01:00
Homelab Cursor
ae6a50d182 fix(rag+llm): 60 wide treffer, Pfad-Dedup, 100k tool payload
(Nachtrag: vorheriger Commit enthielt nur telegram_bot.)
2026-03-26 17:15:48 +01:00
Homelab Cursor
dcf70b087b fix(rag): breite Mehrfachsuche + mehr Treffer fuer Uebersichten
- 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.
2026-03-26 17:12:13 +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
59e53a2750 rag: 19/20 E2E-Tests bestanden — Dedup + Anti-Halluzination + Pflicht-Prompt
- Dedup auf Dateinamen-Ebene (Extension + Kopie-Marker ignorieren)
- docnm_kwd boost 1.5→3.0 fuer bessere Ordner-Treffer
- SYSTEM_PROMPT_EXTRA verschaerft: IMMER rag_search bei Dokument-Fragen
- Expliziter Ende-Marker gegen LLM-Halluzination
- MIN_TOP_K=5, Default top_k=8
- Content-Snippet 400→600 Zeichen
Ref: Issue #51
2026-03-26 15:25:52 +01:00
Homelab Cursor
a43c0b913b rag: bessere Treffer + Anti-Halluzination
- top_k min=5, default=8 (LLM kann nicht mehr top_k=3 setzen)
- docnm_kwd boost 1.5→3.0 (Ordner/Dateinamen staerker gewichten)
- Ordnerpfad als Kategorie-Info in Ausgabe
- Content-Snippet 400→600 Zeichen
- SYSTEM_PROMPT_EXTRA: LLM darf keine Details erfinden
- es_size erhoehen fuer breitere Suche
Ref: Issue #51
2026-03-26 15:07:31 +01:00
Homelab Cursor
f9b69ad283 rag: Elasticsearch direkt (Hybrid kNN + deutsch) statt RAGFlow API
- ES 100.109.101.12:1200, Filter kb_id, knn auf q_768_vec
- Query-Embedding via Ollama nomic-embed-text
- Text: content_de, content_ltks, docnm_kwd
- OCR-Heuristik, Deduplizierung nach docnm_kwd
- Ref: Issue #51
2026-03-26 14:34:40 +01:00
Auto-Sync
9d79af7481 Auto-Sync: 2026-03-26 12:30 2026-03-26 12:30:10 +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
2e61530055 fix: _delete_telecast() in savetv.py implementiert
Funktion fehlte komplett - Auto-Delete nach Download hat nie funktioniert.
Nutzt GET /STV/M/obj/cRecordOrder/croDelete.cfm?TelecastID=...
2026-03-21 19:12:37 +01:00
Homelab Cursor
47bd67eb97 fix: predict.py ohne interne LLM-Analyse, strukturierter Daten-Report
- Tool gibt strukturierten Report zurueck (kein verschachtelter LLM-Aufruf mehr)
- Klare Hervorhebung: KRITISCH (>=100 Fehler), Erhoeht (>=20), Disk-Trend
- Proxmox: korrekte Passwort/Token-Ermittlung, nur echte pve-Hosts im Fehler-Log
- daily_forecast: LLM analysiert den Report bevor er gesendet wird
2026-03-21 13:44:35 +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
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
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
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
2697e7f283 fix(web_search): kurze Keyword-Queries statt Saetze, language=de, bessere Prompt-Anweisungen 2026-03-21 00:21:17 +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
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
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
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
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
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
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
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
eeec98303d feat: Save.TV Integration — EPG-Scanner, Filmtipps, Aufnahme per Inline-Button + täglicher Cronjob 14:00 2026-03-16 22:04:29 +07:00
root
983d93a67b Mail-Tool: Zeitraum-Abfrage + bessere Tool-Beschreibungen fuer LLM 2026-03-16 21:19:10 +07:00
root
156cb92e26 Grafana-Tool: Temperaturen, Energie, Heizung live aus InfluxDB 2026-03-16 16:31:07 +07:00
root
b32cbf353e Grafana-Tool: URL korrigiert auf CT 143 (pve-mu-3) statt CT 110 2026-03-16 16:28:54 +07:00
root
1a88c782d6 Neue Tools: tailscale.py (Netzwerk-Status) + grafana.py (Dashboard-Status) 2026-03-16 16:08:26 +07:00
root
04363fa033 Domains: rss-manager.orbitalo.net + redax.orbitalo.net ins Service-Verzeichnis 2026-03-16 15:59:55 +07:00
root
62630e3253 services.py: Cloudflare URLs vs Tailscale-only klar getrennt 2026-03-16 15:57:21 +07:00
root
def09fa2e5 Neues Tool: services.py — Dienst-Verzeichnis mit URLs + Zugangsdaten 2026-03-16 15:52:12 +07:00
root
4e07dbec77 Plugin-System: tools/*.py auto-discovery, eine Datei pro Tool 2026-03-16 14:25:22 +07:00