| .. | ||
| __init__.py | ||
| answer_format.py | ||
| check_context_scenarios.py | ||
| check_deployment.py | ||
| check_rag_runtime.py | ||
| checked_generation.py | ||
| context_policy.py | ||
| evaluate_graph_answers.py | ||
| graph_answer_prompt.txt | ||
| rag_delivery.py | ||
| README.md | ||
| regrade_citations.py | ||
| render_answer.py | ||
Generovanie odpovedí nad zmrazeným grafom
Aktuálne meranie v7 používa 46 známych DEV otázok, nový query-group TEST
80 otázok a oddelenú historickú regresiu 320 otázok.
Model vracia štruktúrované tvrdenia, answer je prázdne. Aplikácia overí
fakty, väzby, počty a citácie a vykreslí prirodzený text deterministicky.
Voľná próza modelu sa ako finálna odpoveď nedoručuje. Pôvodné HTTP odpovede,
parsované aj vykreslené odpovede a každý opravný pokus sú uložené.
Nový TEST má prvý pokus 77/80 (96,25 %) a finálny výsledok 80/80; jednu opravu potrebovali tri otázky. Historická regresia má 319/320, s jedným odmietnutým nepodloženým akademickým názvom. Nejde o meranie voľnej jazykovej formulácie ani neznámeho korpusu. Modelový DEV má 46/46. Správa v7.
Všetky evaluačné vstupy treba zvoliť explicitne. Nový TEST používa
--split test; známa regresia --split regression --regression-ids ....
Oba potrebujú dokončený --dev-results s rovnakými hashmi a modelom.
Príkazy sú v pracovnom zázname v7.
Budúci OpenWebUI agent musí dodržať accepted_for_delivery a odovzdať
overený text; nekontrolované prepísanie rendererovej odpovede by tieto
záruky obišlo. Natívny výber nástrojov ostáva ďalším blokom.
Historická v6
Meranie v6 je historická regresia 320 známych otázok vrátane 42 DEV otázok. Výsledná správa 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.
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. 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.
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í.