Ollama-URL korrigiert (100.103.83.12:11435) und M1/M2 gegen Echt-System validiert

Der Host betreibt zwei Ollama-Instanzen: 11434 (fast leer, 0.16.2) und
11435 (Ziel-Instanz, 0.32.13, Modell-Zoo) — Port nicht mehr auf 11434
'korrigieren' (Dokumentation + Skill + Config-Default angepasst).

Validierung gegen das echte System: bge-m3 per API gepullt, Hybrid-Index
(3005 Chunks, 100 % eingebettet, 144 s), M1-Akzeptanz erreicht (Recall@8
0,952 > 0,9; Hit-Rate 0,968). Antwortmodus-Eval mit qwen3.8:27b (Thinking
verifiziert aus): Zitier-Präzision 100 % (4 Regenerierungen), Verweigerung
korrekt 94,3 %, Latenz mean 32 s. ATZ-Konfliktfall korrekt beide Werte
mit Warnung. generate.py: sources enthaelt jetzt nur zitierte Quellen;
Systemprompt ohne redundante Quellenzeile.

Bake-off-Feld (M3) bereits installiert: qwen3.6:27B, gemma4:26b,
mistral-small3.1:24b, gemma4:12B.
This commit is contained in:
2026-09-14 22:09:09 +02:00
parent 2cba72aeb0
commit b6a6f5b788
6 changed files with 100 additions and 79 deletions
+26 -19
View File
@@ -33,9 +33,10 @@ in weiterer Folge soll der Agent in Odoo-Enterprise verwendet werden.
- **Layer-1-Volltexte:** `.lexis360/md/` (572 Dateien) lokal vorhanden,
lizenzbeschränkt + unversioniert. `.wiku/` fehlt in diesem Checkout —
für Phase A irrelevant (Retrieval läuft auf Layer 2).
- **Ollama-Server** `http://100.183.83.12:11435` (Custom-Port): aus der
Zed-Sandbox **nicht erreichbar** (Netzwerkrestriktion, Timeout) — ist
vom Host aus zu verifizieren (`curl http://100.183.83.12:11435/api/tags`).
- **Ollama-Server** `http://100.103.83.12:11435` (Ziel-Instanz mit Modell-Zoo,
Custom-Port; der Host betreibt zusätzlich eine fast leere Instanz auf 11434):
aus der Zed-Sandbox erreichbar (2026-09-14, nach URL-Korrektur) —
`bge-m3` wurde per API gepullt, `qwen3.8:27b` war bereits installiert.
- **GPU:** Radeon AI Pro R9700, 32 GB (Strix Halo / RDNA 5) — budgetiert
Modellwahl auf ~2628 GB nutzbar.
@@ -198,9 +199,10 @@ tests/ # pytest: Ingest-, Retrieval-, Grounding-Unit-Tests
## 10. Risiken & offene Punkte
1. **Ollama-Erreichbarkeit** aus der Zed-Sandbox nicht gegeben —
Verifikation vom Host: `curl http://100.183.83.12:11435/api/tags`;
Modelle ggf. erst pullen (`qwen3:32b`, `bge-m3`, …).
1. **Ollama-Erreichbarkeit** gegeben (Ziel-Instanz 11435; Sandbox kann
verbinden). Achtung Doppel-Instanz auf 11434 — URL nicht "korrigieren".
Cloud-Modelle (`*:cloud`) nicht für Antworten verwenden (Anforderung:
lokal).
2. **Ollama-Version:** `/api/embed` + allfällige Rerank-Unterstützung
prüfen; Fallback ohne Reranker ist unkritisch.
3. **Strix Halo (gfx-1151):** Ollama/ROCm muss die Karte unterstützen
@@ -233,16 +235,21 @@ tests/ # pytest: Ingest-, Retrieval-, Grounding-Unit-Tests
## 13. Umsetzungsstand (2026-09-14)
- **M1 erledigt (offline):** Ingest + Index (601 Einträge → 3.005 Chunks,
FTS5-BM25) + Hybrid-Retrieval (Dense-Code vorhanden, am Host zu messen).
Goldset 31 Fragen (IDs gegen kb.json verifiziert, inkl. ATZ-Konfliktfall
und 4 Verweigerungsfälle). Baseline BM25-only: Hit-Rate 0,871 ·
Recall@8 0,855 · MRR 0,476 — 4 Fehltreffer sind Komposita-/Stamm-
Muster, die die Dense-Suche abdecken soll. 41 Unit-Tests grün.
- **M2 implementiert:** Ollama-Client (embed/chat, think-Fallback),
Systemprompt mit Zitierpflicht, Post-Validierung (1× Regenerierung, dann
Verweigerung), `/ask`-API + CLI + Test-Chat. **Host-Validierung mit
echtem Ollama noch offen** (aus der Zed-Sandbox nicht erreichbar).
- **M3 offen:** Bake-off auf dem Host (qwen3.8:27b vs. qwen3:32b vs.
gemma3:27b vs. mistral-small3.2:24b; qwen3:14b als Latenz-Untergrenze).
- Betrieb/Host-Schritte: `agent/README.md`.
- **M1 erledigt und akzeptiert:** Hybrid-Index (601 Einträge → 3.005 Chunks,
FTS5-BM25 + bge-m3-Dense, Ollama :11435), Goldset 31 Fragen. **Recall@8
0,952 > 0,9** (Hit-Rate 0,968, MRR 0,690; BM25-only-Vergleich:
0,855 — die vier Komposita-Fehltreffer behebt die Dense-Suche alle).
41 Unit-Tests grün.
- **M2 erledigt und gegen das echte Modell validiert** (qwen3.8:27b,
Thinking aus): Zitier-Präzision **100 %** (4 Verletzungen → Post-
Validierung Regenerierung, alle geheilt), Verweigerung korrekt 94,3 %,
Latenz mean 32 s / p95 53 s. ATZ-Konfliktfall wird korrekt beidseitig
mit ⚠ beantwortet; harte Verweigerungsfälle (UStVA) funktionieren.
- **M3 teilweise:** qwen3.8:27b-Baseline gemessen (`data/eval-qwen38.json`).
Bake-off-Kandidaten sind bereits installiert: qwen3.6:27B, gemma4:26b,
mistral-small3.1:24b, gemma4:12B (Latenz-Untergrenze). Bekannte
Fehlverweigerungen (q-008, q-031) und Latenz sind Tuning-Kandidaten —
Prompt für den Bake-off vorher einfrieren.
- **M4 offen:** Odoo-Integration (separater Plan nach Verifikation der
Odoo-19-LLM-Module).
- Betrieb: `agent/README.md`.