What happened?
Here is a summary of changes to the Evidently Python library.Change | Date | Description |
---|---|---|
New API. Version 0.6 | January 2025 | Evidently 0.6 brought an updated core API with a new Report object. You can learn more in the blog.
|
Transition period. Versions 0.6 to 0.6.7 | - | During the transition period, both APIs co-existed in the library. For version between 0.6 and 0.6.7, you can choose either option:
|
Breaking change. Version 0.7. | April 2025 | Evidently 0.7 release makes the new API the default.
|
If you still need the old API, pin your Evidently version to
0.6.7
or earlier.What changed?
These updates bring various improvements and changes to the core library. You can also learn more in the release blog.Data Definition
We replacedcolumn_mapping
with data_definition
. Now, you also need to explicitly create an Evidently Dataset
object instead of just passing a dataframe when running a Report. Each Dataset
object has an associated DataDefinition
.
While similar to column mapping, this new structure lets you cleanly map input columns based on their type (e.g., categorical, numerical, datetime, text) and role (e.g., target, prediction, timestamp). A column can have both a type and role.
You can also now map multiple targets and predictions inside the same table: e.g., if you deal with multiple regression or have several classification results in one table.
Automated column type/role mapping is still available. Additionally, new mappings for LLM use cases, like RAG, will be supported.
Data Definition
Docs on mapping the input data.
Descriptors
Descriptors provide row-level text evaluations, ranging from basic checks (e.g., text length) to LLM-based evals (e.g., checking for contradictions). With the increasing focus on LLM-related metrics, we’ve updated the text descriptors API to make it more logical and easier to use. Descriptor computation is now split into two steps: 1. Compute Descriptors. Add them to the source table containing inputs and outputs. You can do this together with data definition. For example:Descriptors
Docs on adding descriptors.
New Reports API
As you may have noticed in the example above, we made the changes to the core Report API. Here is how generating a Report with data summary preset for a single dataset works now:- The Report object now defines the configuration (e.g., metrics to include).
- Running a Report returns a separate result object.
Reports
How to generate Reports.
Test Suites joined with Reports
Most importantly, Reports and Tests are now unified. Previously, these were separate:- Reports provided an overview of metrics (e.g., distribution summaries, statistics).
- Tests verify pass/fail conditions (e.g., check for missing data or LLM quality thresholds).
Tests
How to add Tests with conditions.
Metric redesign
The Metric object has been simplified:- Metrics now produce a single computation result with a fixed structure.
- Some visualization types can be specified directly as parameters to the Metric.
Metrics
All available Metrics.
Simplified Dashboard API
With the redesigned Metrics, the Dashboard API is now much, much simpler. You can create new panels and point to specific Metric results with a strictly fixed set of options.Dashboard
How to add Dashboard panels.