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:
+38
-34
@@ -5,46 +5,50 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md`
|
||||
|
||||
## Current focus
|
||||
|
||||
M1 (Index + Retrieval) und M2 (Ollama-Generierung + Grounding + API) sind
|
||||
implementiert. Ausstehend: Host-Validierung mit Ollama (Dense-Index,
|
||||
Antwortmodus-Eval) und Modell-Bake-off (M3). Odoo-Integration (M4) ist
|
||||
separat zu planen.
|
||||
M1 und M2 sind **fertig und gegen den echten Ollama validiert**.
|
||||
Offen: Modell-Bake-off (M3) mit den bereits installierten Kandidaten
|
||||
und Prompt-Tuning der Fehlverweigerungen. Odoo-Integration (M4) separat
|
||||
zu planen.
|
||||
|
||||
## Completed (2026-09-14)
|
||||
|
||||
- **Planung** (`planung.md`): Architektur, Grounding-Regeln, Modellfeld
|
||||
(Bake-off: qwen3.8:27b primär, qwen3:32b, gemma3:27b, mistral-small3.2:24b,
|
||||
qwen3:14b als Latenz-Untergrenze), Meilensteine M1–M4.
|
||||
- **Skill** `.agents/skills/pv-rag-agent/SKILL.md`: verbindliche Regeln für
|
||||
die Implementierung (Grounding, Architektur-Entscheidungen, Gates,
|
||||
Modellwechsel-Protokoll).
|
||||
- **Commits**: `25eb285` (Wissensbasis-Import 601 Layer-2-Einträge +
|
||||
.gitignore), `bf8191b` (Planung + Skills). Noch nicht gepusht — Remote
|
||||
`http://localhost:3003/fegger/pv-agent.git` ist aus der Zed-Sandbox nicht
|
||||
erreichbar; User muss vom Host pushen.
|
||||
- **Implementierung M1+M2** (`agent/`-Paket): kb.py (Parsing + kb.json-Gate),
|
||||
ingest.py (3005 Chunks aus 601 Einträgen, FTS5 + Vektoren-Cache),
|
||||
retrieve.py (Hybrid BM25+Dense/RRF, Stand-Boost, cross_ref-Erweiterung),
|
||||
generate.py (Systemprompt, Post-Validierung, 1× Regenerierung, dann
|
||||
Verweigerung), ollama_client.py (embed/chat, think-Flag-Fallback),
|
||||
api.py (/ask /health /reindex), cli.py, eval/ (Goldset 31 Fragen,
|
||||
evaluate.py), web/index.html, 41 offline Tests (grün).
|
||||
- **Baseline BM25-only**: Hit-Rate 0,871 · Recall@8 0,855 · MRR 0,476
|
||||
(31 Fragen). 4 Fehltreffer: Komposita/Stamm-Schwächen (aliquotiert↔
|
||||
Aliquotierung, Mindestlohngesetz) — Dense-Suche soll diese beheben.
|
||||
- **Planung** (`planung.md`): Architektur, Grounding-Regeln, Modellfeld,
|
||||
Meilensteine M1–M4; **Skill** `.agents/skills/pv-rag-agent/SKILL.md`.
|
||||
- **Commits**: `25eb285` (Wissensbasis-Import), `bf8191b` (Planung +
|
||||
Skills), `2cba72a` (M1+M2-Implementierung, 41 Tests).
|
||||
- **Implementierung M1+M2** (`agent/`): kb/ingest/retrieve/generate/
|
||||
ollama_client/api/cli/eval, Goldset 31 Fragen, Test-Chat.
|
||||
- **Ollama-Anbindung verifiziert** (Ziel-Instanz `http://100.103.83.12:11435`,
|
||||
Ollama 0.32.13): `bge-m3` per API gepullt; `qwen3.8:27b` war bereits
|
||||
installiert. Hybrid-Index: 3.005 Chunks, alle eingebettet (144 s).
|
||||
- **M1-Akzeptanz erreicht**: Retrieval Hybrid Hit-Rate 0,968 ·
|
||||
Recall@8 **0,952** (>0,9 ✓) · MRR 0,690 (BM25-only: 0,871/0,855/0,476).
|
||||
- **M2-Antwortmodus-Eval** (qwen3.8:27b, Thinking aus): Zitier-Präzision
|
||||
**100 %** (4 Regenerierungen, alle geheilt) · Verweigerung korrekt
|
||||
94,3 % · erwartete Quelle zitiert 80,6 % · Latenz mean 32 s / p95 53 s.
|
||||
Report: `data/eval-qwen38.json`.
|
||||
- Der ATZ-Konfliktfall (28,5 vs. 27,5 %) wird korrekt mit ⚠ und beiden
|
||||
IDs beantwortet; harte Verweigerung (UStVA, Retrieval nicht leer)
|
||||
funktioniert.
|
||||
|
||||
## Open issues / blockers
|
||||
|
||||
- **Ollama aus Zed-Sandbox nicht erreichbar** (100.183.83.12:11435 und
|
||||
localhost:3003 beide geblockt): Dense-Index, Antwortmodus-Eval und
|
||||
Bake-off müssen auf dem Host laufen. Kommandos: `agent/README.md`
|
||||
Abschnitt „Deployment auf dem Host".
|
||||
- **Modelle noch nicht gepullt**: auf dem Host `ollama pull qwen3.8:27b`,
|
||||
`ollama pull bge-m3` (plus Bake-off-Kandidaten).
|
||||
- **Reranker** (bge-reranker-v2-m3): API-Unterstützung der installierten
|
||||
Ollama-Version prüfen — Design funktioniert ohne.
|
||||
- **qwen3.8-Think-Parameter**: `think: false` wird im Request gesendet
|
||||
(Auto-Fallback ohne Flag bei 400/404); exaktes Verhalten am Host testen.
|
||||
- **Push**: Remote localhost:3003 aus der Sandbox nicht erreichbar — User
|
||||
pusht vom Host.
|
||||
- **Fehlverweigerungen**: q-008 (Abfertigung/Verfügungsmöglichkeiten),
|
||||
q-031 (Mindestlohngesetz) — breite Fragen, Retrieval erfolgreich, Modell
|
||||
verweigert. M3-Tuning: Regel-4-Formulierung lockern („behandle den
|
||||
behandelten Teil“) oder Kontextblöcke erhöhen. Vorher Prompt einfrieren
|
||||
für den Bake-off-Vergleich.
|
||||
- **Latenz**: mean 32 s/ Antwort ist hoch (Dense 27B + große Prompts).
|
||||
Hebel: weniger Kontextblöcke (aktuell 8+6), schnellere Kandidaten.
|
||||
- **Cloud-Modelle** (`*:cloud` auf der Ollama-Instanz) sind für Antworten
|
||||
tabu (Anforderung: lokal). Nicht versehentlich konfigurieren.
|
||||
- **Bake-off M3**: Kandidaten sind bereits installiert — `qwen3.8:27B`,
|
||||
`qwen3.6:27B`, `gemma4:26b`, `mistral-small3.1:24b`, `gemma4:12B`
|
||||
(Latenz-Untergrenze). Achtung: Plan nennt mistral-small3.**2**:24b —
|
||||
installiert ist 3.1; 3.2 ggf. noch pullen oder 3.1 als Proxy.
|
||||
Pro Kandidat: `PV_ANSWER_MODEL=<tag> python -m agent.cli eval --answers`.
|
||||
- **M4 Odoo**: native LLM-Module des konkreten Odoo-19-Stands verifizieren
|
||||
(keine API-Annahmen); Option A (dünnes Custom-Modul + Service-API) ist
|
||||
Default.
|
||||
|
||||
Reference in New Issue
Block a user