dp-zp-agent/docs/graphrag_v4_2026-10-25_worklog.md

72 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dokončenie širšej GraphRAG evaluácie v4
Zdrojové meranie a obmedzenia: [správa v4](../tools/graphrag/evaluation/results/final_v4_2026-10-25/REPORT.md).
## Rozsah a záloha
Pracovalo sa na grafovej vrstve a jej evaluácii. Stabilný klasický RAG, indexové JSON, baseline aj historické merania v1–v3 ostali zachované. Aktuálny default `jp170na/zpwiki:master` bol porovnaný s lokálnym checkoutom. Archív projektu a samostatný snapshot spravovaného Neo4j grafu sú v `/tmp/zp-agent-graphrag-v4-backup-20261025T013116Z/`. Konfiguračné kľúče sa do výsledkov ani Gitu nekopírujú.
## Zmeny
1. `benchmark_v4.py`: 320 nových zdrojových TEST otázok v 10 kategóriách; 722 DEV otázok zvlášť. Kvóty a seed sú určené bez výsledkov vyhľadávania. Žiadna otázka sa nevyraďuje podľa neúspechu.
2. Normalizované logické skupiny bránia tomu, aby sa parafráza rovnakého zadania tvárila ako nezávislý TEST. Freeze deklaruje, že 72 známych profilov sa prekrýva; nezamieňa to za profilovo nezávislé v2/v3 meranie.
3. Zdrojový oracle a grafový builder rozlišujú názvy, návrhy názvov, témy, organizačné poznámky, súvisiace práce a odkazy. Explicitný názov má prednosť. Linkovaný názov tímového projektu sa extrahuje ako názov, nie URL. Vyhľadávanie na názov nevracia bezmenný akademický záznam ako pozitívnu odpoveď.
4. Explicitný akademický rozsah `2022/23` sa nesmie prepísať nesúvisiacou kategóriou `vp2021`. Graf bol bezpečne znovu zostavený z rovnakých JSON vstupov.
5. Audit overuje všetky očakávania oproti raw Markdownu. Priama kontrola má 616 dôkazových záznamov, bez chyby. Doplnené sú zdrojové adjudikácie, mapovanie ID a vzorka kontroly pôvodných riadkov.
6. Osobitný `tools/answer_evaluation/` hodnotí skutočné odpovede školského modelu cez OpenWebUI API po dodaní grafového kontextu. Nejde o prehliadač ani nainštalovaný nástroj. Prvých 20 externých otázok je DEV; zostávajúcich 300 je TEST generovania. Kód a prompt majú vlastné odtlačky a presné ID. Pôvodný slabší diagnostický výsledok zostal uložený.
7. Nové regresné testy cielia neplatné zdrojové názvy, rok, únik logických skupín, chybné tvrdenia, null hodnoty a zámenu diplomovej/dizertačnej práce. Kompletná sada: 448 passed, 4 skipped.
## Použité príkazy
```bash
# Kontrola stavu a aktuálneho zdroja:
git status --short
git -C ../zpwiki ls-remote --symref origin HEAD
# Benchmark sa vytvára len do nových ciest:
.venv/bin/python -m tools.graphrag.evaluation.benchmark_v4
# Po načítaní .env, bez vypísania jeho hodnôt:
.venv/bin/python -m tools.graphrag.build_graphrag
RUN_NEO4J_TESTS=1 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 \
.venv/bin/python -m pytest -q -p no:cacheprovider
.venv/bin/python -m tools.graphrag.evaluation.evaluate_graphrag \
--split dev --audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
--output-dir tools/graphrag/evaluation/results/final_v4_2026-10-25
.venv/bin/python -m tools.graphrag.evaluation.freeze_graphrag \
--dev-results tools/graphrag/evaluation/results/final_v4_2026-10-25/graphrag_dev.json \
--audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
--output tools/graphrag/evaluation/frozen_v4.json
.venv/bin/python -m tools.graphrag.evaluation.evaluate_graphrag \
--split test --audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
--freeze-manifest tools/graphrag/evaluation/frozen_v4.json \
--output-dir tools/graphrag/evaluation/results/final_v4_2026-10-25
# Pôvodná diagnostika, potom nový prompt na DEV a nový TEST generovania:
.venv/bin/python -m tools.graphrag.evaluation.check_openwebui \
--freeze-manifest tools/graphrag/evaluation/frozen_v4.json \
--audit tools/graphrag/evaluation/results/v4_preparation/source_audit.json \
--output tools/graphrag/evaluation/results/final_v4_2026-10-25/openwebui_sample.json
.venv/bin/python -m tools.answer_evaluation.evaluate_graph_answers \
--split dev --output-dir tools/graphrag/evaluation/results/answers_v4_dev_2026-10-25
.venv/bin/python -m tools.answer_evaluation.evaluate_graph_answers \
--split test --output-dir tools/graphrag/evaluation/results/answers_v4_test_2026-10-25
```
Medzi DEV behmi sa opravovali zdrojové anotácie a kód. Po finálnom grafovom TESTe sa grafový kód ani dataset nemenili. Po spustení 300-otázkového LLM TESTu sa nemenil prompt, kontextový adaptér ani hodnotenie. Reprodukcia vyžaduje nové výstupné adresáre a pôvodné odtlačky; nie je novým nezávislým meraním.
## Finálny výsledok
Grafový strict TEST 320/320 (100 %); zdrojový audit všetkých kontextových faktov 319/320 (99,69 %). Externý TEST odpovedí 281/300 (93,67 %), vrátane 19 zlyhaní, z toho 7 chýb spracovania JSON. Cieľ ≥92 % splnený v prvom finálnom behu oboch experimentov. Úplné JSON/CSV, zdrojové audity, súhrn a rozpis chýb sú uložené. Natívny výber nástrojov hlavným agentom zostáva bodom 4.
Docker obraz bol znovu zostavený a existujúci API kontajner obnovený bez reštartu Neo4j. Obsahové odtlačky grafového kódu, otázok, JSON vstupov a raw wiki v kontajneri zodpovedajú frozen_v4. Overený bol grafový dotaz aj `/health`.
```bash
docker compose build zp-agent-api
docker compose up -d --no-deps zp-agent-api
git diff --check
git commit -m "Dokončenie GraphRAG evaluácie"
git push --atomic origin graphrag-v1 graphrag-v4-frozen
```