Skip to content

feat: pytest, dataset_loader, --export to langsmith#15

Open
aniketwattamwar wants to merge 1 commit into
mainfrom
dev
Open

feat: pytest, dataset_loader, --export to langsmith#15
aniketwattamwar wants to merge 1 commit into
mainfrom
dev

Conversation

@aniketwattamwar

Copy link
Copy Markdown
Collaborator

Summary

This PR introduces three major features to make ECP evaluations more extensible, scalable, and integrated: Pytest Integration, Dataset Support, and LangSmith Exports. It also bumps the package version to 0.4.1 for release.

Key Features

1. Pytest Integration 🧪

Added a native Pytest plugin (ecp_runtime.pytest_plugin). ECP tests can now be discovered and run seamlessly as part of a standard Pytest suite, allowing developers to integrate agent evaluations directly into their existing unit/integration testing workflows.

2. Dataset-driven Scenarios 📊

You can now define scenarios using external datasets instead of hard-coding individual steps in the YAML manifest. This is ideal for running evaluations against large benchmarks.

  • Supports csv and jsonl file types.
  • Automatically maps input_column and output_column (defaults to "input" and "output").
  • Automatically generates an exact text_match grader for the expected output if it exists in the dataset.
  • Added validation in manifest.schema.json to require either steps or dataset per scenario.

Example usage in manifest:

scenarios:
  - name: "Bulk dataset evaluation"
    dataset:
      type: "csv"
      source: "./data/eval_set.csv"
      input_column: "query"
      output_column: "expected_response"

- Added support for data-driven evaluation by allowing scenarios to load `csv` or `jsonl` datasets directly in the manifest (`dataset` field), automatically mapping input/output columns to test steps.
- Updated `manifest.schema.json` to enforce requiring either `steps` or `dataset` in a scenario.
- Added `--export` flag to the `ecp run` CLI with support for exporting evaluation results to LangSmith as chain runs.
- Bumped version to 0.4.1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant