Skip to content

Plan Lokale KI

MadGapun edited this page Jun 2, 2026 · 2 revisions

Plan F — Lokale KI & Elwosa

Issue-Level-Detail zu Cluster F aus dem Master-Plan. Stand: 2026-06-02 (beta.90).

Ergaenzungen seit beta.74

Nr Funktion Issue Beta Code
F16 Wiedergaenger-Erkenner: KI-freier DB-Check (Ebene 0, Firma+Titel-Domaene vs. abgelehnte Stellen) + Kontext in fit_analyse (Ebene 2) #671 86 services/wiedergaenger.py, tools/jobs.py
F17 Elwosa KI-freies Safety-Net: Validierungs-Retry (_pick_valid_line) + garantiertes Tageslebenszeichen (ensure_daily_lifesign) #669 88 services/elwosa.py

Noch offen: F15 — Elwosa Ollama-Live-Generierung + Claude-Eskalation (Ebene 1) bleibt ⬜. Die KI-freien Ebenen 0/2 (F16) und das Safety-Net (F17) sind live; die Ollama-gestuetzte Ebene 1 ist bewusst zurueckgestellt.

F1 — LLM-Service-Routing

Sub Funktion Issue Code Status
F1.1 LLMService-Klasse mit Routing-Tabelle #512 services/llm_service.py
F1.2 TaskKind-Enum (alle Task-Typen) #512 dito
F1.3 Backend-Enum (LOCAL / CLAUDE / MANUAL) #512 dito
F1.4 ROUTING_TABLE-Dict mit Fallback-Reihenfolge pro Task #512 dito
F1.5 select_backend() waehlt bestes verfuegbares Backend #512 dito
F1.6 TaskResult-Dataclass (backend, success, payload, fallback_message, metrics) #512 dito
F1.7 Singleton-Pattern via get_llm_service() #512 dito
F1.8 Mock-Modus via PBP_LLM_MOCK=1 fuer Tests #512 dito

F2 — Ollama-Integration

Sub Funktion Issue Code Status
F2.1 _check_ollama() HTTP-Request gegen /api/tags #591 services/llm_service.py
F2.2 Status-Caching (30s TTL) #591 dito
F2.3 LLMStatus-Dataclass mit ollama_available, available_models, selected_model, user_state #591 dito
F2.4 User-State Persistierung (llm_local_state: off/paused/active) #591 dito

F3 — Ollama-Modell-Selection

Sub Funktion Issue Code Status
F3.1 models_detail mit Name + Size + Family + Parameter-Size #592 services/llm_service.py
F3.2 Auto-Select wenn nur 1 Modell installiert #592 dito
F3.3 list_models() MCP-Endpoint #592 dito
F3.4 UI-Modell-Picker im Settings-Tab #592 Frontend

F4 — Ollama Cold-Start-Fix

Sub Funktion Issue Code Status
F4.1 keep_alive=60m in jedem /api/generate-Request #638 services/llm_service.py
F4.2 warmup() Methode (Dummy-Request mit num_predict=1) #638 dito
F4.3 Idempotent: warmes Modell kostet Millisekunden, kaltes max 90s #638 dito
F4.4 Pre-Warmup vor Bulk-Operationen (stellen_auto_aussortieren) #638 tools/jobs.py

F5 — Ollama als permanente KI-Backbone

Sub Funktion Issue Code Status
F5.1 Konzept: Ollama wird nicht mehr On-Demand geladen #638
F5.2 Auto-Klassifikation eingehender Mails (_run_auto_classify_emails) #638 dashboard.py
F5.3 Auto-Klassifikation Dokumente (_run_auto_classify_documents) #638 dito
F5.4 Auto-Extract Kontakte (_run_extract_contacts) #606 dito
F5.5 Pattern-Analyse User-Aktivitaet (_run_analyze_user_patterns) #594 dito
F5.6 Auto-Aussortieren in Hintergrund #638 ⬜ (manuell triggerbar, kein Cron)
F5.7 Bei Stop: pbp_diagnose zeigt Ollama-Status als Warning, nicht silent #637

F6 — Token-Klassen-Anzeige (Stufe 1) + Pre-Flight (Stufe 2)

Sub Funktion Issue Code Status
F6.1 Token-Klassen-Anzeige pro MCP-Tool ("XS/S/M/L/XL") #632 tools/... (metadata)
F6.2 Pre-Flight-Schaetzung vor Tool-Ausfuehrung #632
F6.3 Per-Call-Token-Tracking #632

F7 — Ollama-Genauigkeits-Statistik

Sub Funktion Issue Code Status
F7.1 Tracking: auto-aussortiert vs. spaeter reaktiviert/beworben #638 database.py
F7.2 genauigkeit_prozent-Berechnung in pbp_mcp_diagnose #638 tools/analyse.py
F7.3 datenbasis_ausreichend-Flag (mind. N Samples noetig) #638 dito
F7.4 UI-Anzeige als Ollama-Leistung-Card in Settings #638 Frontend

F8 — Few-Shot-Beispiele aus User-History

Sub Funktion Issue Code Status
F8.1 get_recent_user_dismissals(limit=10) DB-Helper #638 database.py
F8.2 Anreicherung des Prompts mit konkreten User-Entscheidungen #638 services/llm_service.py
F8.3 LLM kann eigene Anti-Muster erkennen (statt Heuristik-Raterei) #638 dito

F9 — validate_job_quality TaskKind (beta.73)

Sub Funktion Issue Code Tests Status
F9.1 Neuer TaskKind VALIDATE_JOB_QUALITY #645 services/llm_service.py tests/test_v17_qualitaet_pruefen_645.py
F9.2 Prompt-Builder fuer Vollstaendigkeits-Check (Aufgaben/Anforderungen/Gehalt/...) #645 dito dito
F9.3 Response-Parser robust gegen Markdown-Codefence + Vor-/Nachspann #645 dito dito
F9.4 Structured Output: vollstaendig + score 0-10 + vorhanden[] + fehlt[] + claude_action #645 dito dito
F9.5 claude_action-Enum: nachladen / manuell_ergaenzen / keine #645 dito dito
F9.6 Integration in stellen_qualitaet_pruefen(mit_ollama_validierung=True) #645 tools/jobs.py dito

Hinweis: beta.73 ausgespielt, beta.72 (was bei Markus laeuft) hat es noch nicht.

F10 — Ollama aus PBP heraus starten

Sub Funktion Issue Code Status
F10.1 UI-Button "Ollama starten" wenn nicht erreichbar #637 Frontend
F10.2 Backend-Endpoint /api/ollama/start (Subprozess) #637 dashboard.py
F10.3 Health-Check nach Start (max 30s warten) #637 dito

F11 — Elwosa Live-Statusanzeige

Sub Funktion Issue Code Status
F11.1 Sidebar-Komponente mit Persoenlichkeit (geschlechtsfrei, britisch ironisch) #599 Frontend
F11.2 elwosa.speak() Trigger-Engine #599 services/elwosa.py
F11.3 Tonfall-Waechter-Validator (keine Ausrufezeichen, keine Emojis, kein "Ihre/Ihnen") #599 dito
F11.4 6 MCP-Tools als Bridge fuer Claude (elwosa_lesen, _schreiben, _pause, _tonfall, _linie_vorschlagen, _status) #599 tools/elwosa.py
F11.5 5 Bridge-Prompts in prompts.py #599 prompts.py
F11.6 ~140 kuratierte Linien im Pool #599 services/elwosa_lines.py
F11.7 Sprach-DNA-Validator-Test (test_all_pool_lines_pass_validator) #599 tests/

F12 — Elwosa Tonfall-Modi

Sub Funktion Issue Code Status
F12.1 4 Modi: aus / sachlich / minimal / humorvoll #612 services/elwosa.py
F12.2 can_post_class()-Logik (aus blockt alles, sachlich blockt idle/welt/tip/easter, minimal Hard-Cap 1/Tag) #612 dito
F12.3 SETTINGS_REFLECTION_LINES Pool fuer Tonfall-Aenderungen #612 services/elwosa_lines.py
F12.4 Frontend feuert Hook auf jede Settings-Aenderung #612 Frontend

F13 — Elwosa Varianz-Pools

Sub Funktion Issue Code Status
F13.1 Welt-Trigger-Pools auf 4-8 Linien ausgebaut (vorher 1-3) #614 services/elwosa_lines.py
F13.2 Same-Day-Anti-Repeat (2 Filter-Schichten: not-7-days, dann not-today) #614 services/elwosa.py
F13.3 Markup-Support **bold** und `[link:pause:N label]` #614 dito
F13.4 Repeat erst wenn Pool fuer den Tag durch #614 dito

F14 — Elwosa Wiki-Snippets

Sub Funktion Issue Code Status
F14.1 Pro Page-Wechsel kontextuelles Wiki-Snippet #594 services/wiki_snippets.py
F14.2 Snippet-Bibliothek mit ~30 kuratierten Eintraegen #594 dito

F15 — Lern-System: Pattern-Analyse

Sub Funktion Issue Code Status
F15.1 user_activity_events-Tabelle #594 database.py
F15.2 learning_insights-Tabelle mit LLM-Analyse-Ergebnissen #594 dito
F15.3 _run_analyze_user_patterns-Auto-Engine-Step #594 dashboard.py
F15.4 AdaptiveHintBanner pro Page (UI) #594 Frontend
F15.5 Opt-in Telemetrie-Sharing (wochenweise) #594
F15.6 Korrektur-Loop (User korrigiert LLM-Vorschlag → wird gelernt) #594 dito

Akzeptanzkriterium

Pro Sub-Position gilt:

  1. Code im Repo (Pfad in Tabelle).
  2. Tests gruen (Test-Datei in Tabelle wo relevant).
  3. Wiki-Eintrag in Lokale-KI, Elwosa, Lern-System oder Stellen-Qualitaet.

Clone this wiki locally