YOKPilot3 / tools /run_case_analysis_checks.py
mfirat007's picture
Upload 98 files
eff511c
Raw
History Blame Contribute Delete
1.52 kB
from __future__ import annotations
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from answering import evaluate_query
from clause_retrieval import init_clause_retrieval, load_ontology
from config import CORPUS_MCKF_ONTOLOGY_PATH
QUESTION = (
"Dönem başında kayıt yaptırırken tez dersi ve uzmanlık dersi seçmeyen öğrenci bir dönem "
"boyunca dersine devam etmiş ve tezini tamamlamış ancak son aşamada enstitü ders "
"seçmediğiniz için mezun olamıyorsunuz diyor. Burada kimler sorumluluklarını yapmamıştır "
"kanun maddelerine göre?"
)
def main() -> None:
init_clause_retrieval(load_ontology(CORPUS_MCKF_ONTOLOGY_PATH))
result = evaluate_query(QUESTION)
answer = result.get("answer", "")
expected_sources = {"Madde 19", "Madde 22", "Madde 44"}
actual_sources = set(result.get("source_ids", []))
required_phrases = (
"Aktör bazlı sorumluluk testi",
"Öğrenci - koşullu sorumluluk",
"Danışman - olası rehberlik/süreç sorumluluğu",
"sorumluluğun kesin dağılımı yapılamaz",
)
assert result.get("error", "") == "", result
assert expected_sources <= actual_sources, actual_sources
assert all(phrase in answer for phrase in required_phrases), answer
print("Normative case analysis: PASS")
print("Sources:", ", ".join(sorted(actual_sources)))
if __name__ == "__main__":
main()