llm-evaluator / src /ingest.py
zaid646's picture
Initial commit: LLM-as-a-Judge evaluator
0b84707
Raw
History Blame Contribute Delete
794 Bytes
import json
from pathlib import Path
from src.models import EvalSample
def load_dataset(path: str | Path) -> list[EvalSample]:
path = Path(path)
if not path.exists():
raise FileNotFoundError(f"Dataset not found: {path}")
raw = json.loads(path.read_text(encoding="utf-8"))
if isinstance(raw, list):
items = raw
elif isinstance(raw, dict) and "samples" in raw:
items = raw["samples"]
else:
raise ValueError("Dataset must be a list or dict with 'samples' key")
samples = []
for i, item in enumerate(items):
sample = EvalSample(
id=str(item.get("id", i + 1)),
prompt=item["prompt"],
expected_answer=item["expected_answer"],
)
samples.append(sample)
return samples