dp-zp-agent/tools/answer_evaluation/README.md

90 lines
5.2 KiB
Markdown

# Generovanie odpovedí nad zmrazeným grafom
Aktuálne meranie **v6** je historická regresia 320 známych otázok vrátane
42 DEV otázok. [Výsledná správa](../graphrag/evaluation/results/final_v6_2026-10-25/REPORT.md)
uvádza samostatne prvý pokus, výsledok po jednom povolenom opravnom požiadavku,
odmietnuté odpovede a JSON chyby. Žiadna chyba sa nevynecháva z menovateľa.
Finálny strict výsledok je **316/320 (98,75 %)**: tri neplatné JSON/schema
výstupy a jedno prísne odmietnutie skloňovaného mena pri správnych claims.
Spoločný adaptér prenáša úplnosť, orezanie, dôvody aj verziu dát. Guard používa
iba skutočný kontext; kontroluje všetky citované URL, typy hodnôt, ich väzby
a upozornenie pri neúplnom výpise. Môže vyžiadať najviac jednu opravu spolu
pre formát alebo porušenie kontextu. Gold sa používa až pri hodnotení.
Oba evaluačné grafové vstupy používajú tento istý adaptér a guard.
`accepted_for_delivery=false` zakazuje považovať výstup za overenú odpoveď.
Integrácia tejto kontroly do budúceho natívneho OpenWebUI agenta je súčasťou
bodu 4; dnešné meranie grafu dodáva kontext cez lokálny klient.
Klasický RAG pred doručením používa `finalize_rag_answer()`: môže pridať iba
chýbajúce upozornenie na neúplnosť, bez zmeny faktov. Zachová pôvodný text
modelu a neobíde nepovolené URL ani tvrdenie o úplnom zozname.
[Podrobný postup a príkazy](../../docs/graphrag_v6_2026-10-25_worklog.md).
Skripty `check_context_scenarios`, `check_rag_runtime`, `check_deployment`
a `regrade_citations` oddeľujú syntetické funkčné kontroly, živý RAG smoke,
overenie nasadenia a prepočet historických citácií od hlavnej presnosti.
## Historická v5.1
Meranie **v5.1** je historická regresia. Výsledky sú v
[spoločnej správe](../graphrag/evaluation/results/final_v5_1_2026-10-25/REPORT.md).
Používa 39 vopred vybraných DEV otázok (20 pôvodných a 19 historických zlyhaní)
a 320 finálnych regresných otázok vrátane týchto 39. Nejde o nezávislý holdout.
Generovanie overí odtlačky kódu/promptu/dát voči kompletnému DEV. Parser prijíma
platný typovaný JSON alebo jeden úplný JSON blok. Pri chybe formátu je povolený
najviac jeden opravný požiadavok bez gold; pôvodné aj opravné odpovede sa ukladajú.
Vecné zlyhanie hodnotenia neopakuje požiadavok. Report uvádza prvotnú aj konečnú
úspešnosť a počet opráv. Natívny výber OpenWebUI nástrojov zostáva bodom 4.
Reprodukcia potrebuje zodpovedajúci release checkout a graf, načítanú konfiguráciu
a nové výstupné adresáre. Najprv spustite `--split dev` s
`--dev-ids tools/graphrag/evaluation/results/v5_1_preparation/generation_dev_ids.json`,
`--audit tools/graphrag/evaluation/results/v5_1_preparation/source_audit.json`
a `--freeze-manifest tools/graphrag/evaluation/frozen_v5_1.json`.
Finálny beh používa rovnaké parametre, `--split regression` a povinné
`--dev-results` smerujúce na tento dokončený DEV. Historické výsledky sa neprepisujú.
## Historický protokol v4
Nasledujúci text a pôvodný TEST 300 otázok opisujú v4; jej reprodukcia vyžaduje
pôvodný kód aj graf. Týchto 300 otázok je pri ďalšom ladení historickou regresiou.
Tento experiment meria OpenWebUI chat API po dodaní skutočného grafového
kontextu lokálnym skriptom. Neoveruje prehliadač ani automatický výber
nainštalovaných nástrojov hlavným agentom. Klasický RAG sa nemení.
Pôvodná diagnostika použila 20 otázok. Všetkých 20 sa stalo DEV; zostávajúcich
300 otázok zo zmrazeného grafového benchmarku tvorí nový TEST generovania.
Predchádzajúce interné grafové meranie neposkytlo výstupy jazykového modelu.
Žiadne očakávania, zdrojový oracle ani výsledky evaluatora sa modelu neposielajú.
`graph_answer_prompt.txt` určuje výstup. Kontext obsahuje iba skutočné relevantné
fakty a zdroje, bez mien profilov vydávaných za názov akademickej práce či typu
osoby zamieňaného za taxonomickú kategóriu. Štruktúrované tvrdenia musia spájať
správne fakty pri tej istej osobe/práci/dokumente. Kontrolujú sa aj zdrojové
odkazy, množiny, počty a povinné hodnoty v prirodzenom texte. Nepovinné `null`
znamená neprítomnosť tvrdenia. Označenie diplomovej práce za dizertačnú sa odmieta.
Ide o prísne, ale stále pravidlové hodnotenie. Nejde o úplnú sémantickú kontrolu
každej možnej vety. Zdrojový oracle je nezávislý od grafového buildera, nie od
človeka, ktorý by nezávisle anotoval celý test. Osoby, korpus a šablóny sú známe.
Každý nový výstupný adresár obsahuje deklaráciu pred meraním, SHA kódu/promptu,
presné DEV/TEST ID a výsledky všetkých otázok. Odpovede sa ukladajú priebežne;
chyba ani prerušený beh sa nesmie zatajiť či premenovať na nezávislý nový TEST.
Po odhalení TEST výsledkov patria tieto otázky pri ladení do DEV.
```bash
set -a
source .env
set +a
# Reprodukcia používa vždy nový adresár; nejde o nový nezávislý TEST.
python -m tools.answer_evaluation.evaluate_graph_answers \
--split test --output-dir /tmp/graphrag-answers-reproduction
```
Model je `model120-fast`; presný názov modelu vrátený serverom, tokeny a pôvodné
odpovede sú uložené vo výsledkoch. Prístupový kľúč zostáva iba v prostredí.