lab03-gnn-graphrag / scripts /evaluate.py
dangvanky's picture
Upload folder using huggingface_hub
11d79f9 verified
from __future__ import annotations
import json
import sys
from pathlib import Path
if __package__ in {None, ""}:
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from lab03.config import BuildConfig
from lab03.dataset_utils import MedicalRecord
from lab03.evaluation import evaluate_retriever, save_evaluation_report
from lab03.retriever import load_runtime_retriever
def load_records(records_path) -> list[MedicalRecord]:
records: list[MedicalRecord] = []
with open(records_path, "r", encoding="utf-8") as handle:
for line in handle:
payload = json.loads(line)
records.append(MedicalRecord(**payload))
return records
def main() -> None:
config = BuildConfig()
config.ensure_dirs()
retriever = load_runtime_retriever(config)
records = load_records(config.artifacts_dir / "records.jsonl")
report = evaluate_retriever(retriever, records, limit=config.eval_limit)
save_evaluation_report(report, config.evaluation_dir / "retrieval_metrics.json")
print(report)
if __name__ == "__main__":
main()