Hi — per CONTRIBUTING.md's guidance to open an issue before a PR, I wanted to check scope first.
I maintain EvalPort (Apache 2.0), an open JSON spec for portable LLM evaluation datasets — test cases, graders, suites, and results that can move between eval frameworks (Ragas, DeepEval, LangSmith, Inspect AI, MLflow, and others) without losing meaning.
I looked at notebooks/generative-ai/ (question-answering.ipynb, chatbot.ipynb) and the folder structure in notebooks/README.md before writing this. There's no dedicated evals folder yet, so the idea would be a self-contained notebook (per your "notebook should be self-contained" guidance) that:
- Runs a small Elasticsearch-backed RAG pipeline like
question-answering.ipynb already does.
- Wraps the queries/expected answers as an EvalPort test suite (plain JSON —
id, graders, test_cases).
- Grades the actual answers and exports a
ResultSet, validated against EvalPort's own schema.
Rough shape of the export step:
from openeval.validate import validate_suite, validate_result_set
suite = {
"version": "1.0.0",
"id": "es-rag-eval",
"graders": [{"id": "gr1", "type": "exact_match"}],
"test_cases": [
{"id": "tc1", "input": "What is...", "expected_output": "...", "graders": ["gr1"]}
],
}
assert validate_suite(suite).valid
# ... run the RAG pipeline, grade the outputs, build a ResultSet the same way ...
The value for readers would be: once the notebook's results are EvalPort JSON, they're directly comparable to a Ragas or LangSmith run of the same test cases, without hand-rolling a converter. This is a genuinely small addition — I'm not asking for a new top-level category, just checking whether a notebook like this would be a welcome addition to notebooks/generative-ai/ (or wherever you'd place it), and whether you'd rather see it target example-apps/ instead given it's a workflow rather than a pure how-to. Happy to follow the pre-commit/nbtest conventions if there's interest.
Spec: https://github.com/adhabnr-ux/evalport/blob/main/spec/SPEC.md
Hi — per CONTRIBUTING.md's guidance to open an issue before a PR, I wanted to check scope first.
I maintain EvalPort (Apache 2.0), an open JSON spec for portable LLM evaluation datasets — test cases, graders, suites, and results that can move between eval frameworks (Ragas, DeepEval, LangSmith, Inspect AI, MLflow, and others) without losing meaning.
I looked at
notebooks/generative-ai/(question-answering.ipynb,chatbot.ipynb) and the folder structure innotebooks/README.mdbefore writing this. There's no dedicated evals folder yet, so the idea would be a self-contained notebook (per your "notebook should be self-contained" guidance) that:question-answering.ipynbalready does.id,graders,test_cases).ResultSet, validated against EvalPort's own schema.Rough shape of the export step:
The value for readers would be: once the notebook's results are EvalPort JSON, they're directly comparable to a Ragas or LangSmith run of the same test cases, without hand-rolling a converter. This is a genuinely small addition — I'm not asking for a new top-level category, just checking whether a notebook like this would be a welcome addition to
notebooks/generative-ai/(or wherever you'd place it), and whether you'd rather see it targetexample-apps/instead given it's a workflow rather than a pure how-to. Happy to follow the pre-commit/nbtest conventions if there's interest.Spec: https://github.com/adhabnr-ux/evalport/blob/main/spec/SPEC.md