LLM 评测需额外配置模型或 LLM-as-a-judge 相关依赖;本地 UI 默认监听 8000 端口,需访问 localhost:8000;保存的 HTML 报告需从目标文件夹打开

evidently
evidentlyaiApache-2.0活跃维护开源的 ML 与 LLM 可观测性框架,用 100+ 指标评估、测试并监控表格数据到生成式 AI 的数据管道与模型表现。
Evidently is an open-source ML and LLM observability framework. Evaluate, test, and monitor any AI-powered system or data pipeline. From tabular data to Gen AI. 100+ metrics.
pip install evidently
evidently ui --demo-projects allREADME 未说明
开源 ML 与 LLM 可观测性框架,评估、测试并监控从表格数据到生成式 AI 的系统
开源的 ML 与 LLM 可观测性框架,用 100+ 指标评估、测试并监控表格数据到生成式 AI 的数据管道与模型表现。
核心能力
- 内置 100+ 指标,覆盖数据漂移、分类回归与 LLM 评测
- 用 Report 汇总评估结果,可导出 JSON、字典或 HTML
- 给 Report 加通过/失败条件即变 Test Suite,适合 CI/CD 回归检查
- 支持自托管 Monitoring UI 查看指标随时间变化
- 提供 Python 接口编写自定义指标,支持表格与文本数据
容易踩的坑
- v0.7.23最新正式版2026-09-11 · 2026-09-11 09:01 UTC
What's Changed
- Update version of pypa/gh-action-pypi-publish to 1.14.2 by @Liraim in https://github.com/evidentlyai/evidently/pull/1925
Full Changelog: https://github.com/evidentlyai/evidently/compare/v0.7.22...v0.7.23
- v0.7.212026-03-10 · 2026-03-10 14:15 UTC
查看更新说明
What's Changed
- feat: enable logo display in API documentation generation by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1793
- fix: Add pagination to reports table to fix UI performance by @jasperbruin in https://github.com/evidentlyai/evidently/pull/1797
- UI: snapshots pagination bit changes by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1804
- Pandas 3 support by @Liraim in https://github.com/evidentlyai/evidently/pull/1807
- CI: deploy artifacts better by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1812
- fix: correct output prefix syntax in GitHub Actions workflow by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1814
- ci: prevent deployment on cancelled workflow runs in GitHub Actions by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1815
- fix: correct HTML report path in GitHub Actions workflow by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1817
- CI: explicit download artifacts by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1822
- Drop python 3.9 support by @mike0sv in https://github.com/evidentlyai/evidently/pull/1811
- CI: remove redundant test by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1821
- Enhance README with API Reference and documentation update by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1819
- Update API reference documentation in README.md for clarity and structure by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1823
- Implement Embeddings drift metric in new API by @Liraim in https://github.com/evidentlyai/evidently/pull/1828
- Support nbinsx for ValueDrift metric. by @Liraim in https://github.com/evidentlyai/evidently/pull/1826
- Fail early on empty input data in Report.run by @Si-ra-kri in https://github.com/evidentlyai/evidently/pull/1820
- Add methods to handle near-zero values for MAPE metric. by @Liraim in https://github.com/evidentlyai/evidently/pull/1835
- Fix MAPE warnings by @Liraim in https://github.com/evidentlyai/evidently/pull/1837
- Examples Cleanup by @emeli-dral in https://github.com/evidentlyai/evidently/pull/1836
- Fix CategoryCount with multiple labels if some labels are missing by @Liraim in https://github.com/evidentlyai/evidently/pull/1838
New Contributors
- @Si-ra-kri made their first contribution in https://github.com/evidentlyai/evidently/pull/1820
Full Changelog: https://github.com/evidentlyai/evidently/compare/v0.7.20...v0.7.21
- v0.7.202026-01-09 · 2026-01-09 11:54 UTC
查看更新说明
What's Changed
- fix docker build by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1790
- Example of openinference instrumentations for traces. by @Liraim in https://github.com/evidentlyai/evidently/pull/1786
- Lock version of pathspec to <1 for dvc. by @Liraim in https://github.com/evidentlyai/evidently/pull/1791
Full Changelog: https://github.com/evidentlyai/evidently/compare/v0.7.19...v0.7.20
- v0.7.192026-01-05 · 2026-01-05 20:08 UTC
查看更新说明
What's Changed
- CI: fix API reference generation by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1778
- Fix: protect write API routers with guard for
artifactandpromptroutes by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1779 - move to UV by @mike0sv in https://github.com/evidentlyai/evidently/pull/1759
- Feature/more api ref by @mike0sv in https://github.com/evidentlyai/evidently/pull/1780
- feat:
fetch-depth: 0for checking outgh-pagesby @DimaAmega in https://github.com/evidentlyai/evidently/pull/1782 - UI: (EvidentlyUIRunner) add
Go to pagelink inshow_serviceby @DimaAmega in https://github.com/evidentlyai/evidently/pull/1787 - Fix: protect tracing api with guard by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1788
- all other docstrings by @mike0sv in https://github.com/evidentlyai/evidently/pull/1783
- API for human feedback in tracing by @Liraim in https://github.com/evidentlyai/evidently/pull/1784
- feat: api-reference works for forks by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1789
Full Changelog: https://github.com/evidentlyai/evidently/compare/v0.7.18...v0.7.19
- v0.7.182025-12-22 · 2025-12-22 12:20 UTC
查看更新说明
What's Changed
- Versioned artefacts (unified prompts and configs) by @mike0sv in https://github.com/evidentlyai/evidently/pull/1750
- Update litestar dependency to version 2.18.0 and add sniffio for now by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1753
- Support reload snapshot points for dashboards in local version. by @Liraim in https://github.com/evidentlyai/evidently/pull/1752
- UI: loading state in create new prompt form by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1754
- fix none labels for points by @mike0sv in https://github.com/evidentlyai/evidently/pull/1755
- Add sklearn datasets cache for min tests. by @Liraim in https://github.com/evidentlyai/evidently/pull/1757
- Fix download lfw dataset for tests by @Liraim in https://github.com/evidentlyai/evidently/pull/1758
- Feature: run
evidently uiin background viaEvidentlyUIRunnerinterface by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1756 - UI: add
evidently-ai-logo.pngby @DimaAmega in https://github.com/evidentlyai/evidently/pull/1761 - Feature:
api-referencegeneration by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1760 - Feature: Add local development script for API reference documentation by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1762
- bump litestar to
2.19.0by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1770 - Database Authentication Failures Due to Password Masking in Migration by @jasperbruin in https://github.com/evidentlyai/evidently/pull/1767
- Support for openinference data in traces. by @Liraim in https://github.com/evidentlyai/evidently/pull/1768
- Update API Reference by @mike0sv in https://github.com/evidentlyai/evidently/pull/1769
- refactor around
api-referenceby @DimaAmega in https://github.com/evidentlyai/evidently/pull/1774 - Fix datasets download for tests by @Liraim in https://github.com/evidentlyai/evidently/pull/1772
- Fix reload_projects test for Application. by @Liraim in https://github.com/evidentlyai/evidently/pull/1775
- fix: correct typos and improve readability in README by @Pro-phet123 in https://github.com/evidentlyai/evidently/pull/1735
- New notebook
tracing_with_service.ipynbby @DimaAmega in https://github.com/evidentlyai/evidently/pull/1763 - CI: fix release build step by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1777
- CI: api reference for release by @DimaAmega in https://github.com/evidentlyai/evidently/pull/1776
New Contributors
- @jasperbruin made their first contribution in https://github.com/evidentlyai/evidently/pull/1767
- @Pro-phet123 made their first contribution in https://github.com/evidentlyai/evidently/pull/1735
Full Changelog: https://github.com/evidentlyai/evidently/compare/v0.7.17...v0.7.18
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

:bar_chart: What is Evidently?
Evidently is an open-source Python library to evaluate, test, and monitor ML and LLM systems—from experiments to production.
- 🔡 Works with tabular and text data.
- ✨ Supports evals for predictive and generative tasks, from classification to RAG.
- 📚 100+ built-in metrics from data drift detection to LLM judges.
- 🛠️ Python interface for custom metrics.
- 🚦 Both offline evals and live monitoring.
- 💻 Open architecture: easily export data and integrate with existing tools.
Evidently is very modular. You can start with one-off evaluations or host a full monitoring service.
1. Reports and Test Suites
Reports compute and summarize various data, ML and LLM quality evals.
- Start with Presets and built-in metrics or customize.
- Best for experiments, exploratory analysis and debugging.
- View interactive Reports in Python or export as JSON, Python dictionary, HTML, or view in monitoring UI.
Turn any Report into a Test Suite by adding pass/fail conditions.
- Best for regression testing, CI/CD checks, or data validation.
- Zero setup option: auto-generate test conditions from the reference dataset.
- Simple syntax to set test conditions as
gt(greater than),lt(less than), etc.
| Reports |
|---|
![]() |
2. Monitoring Dashboard
Monitoring UI service helps visualize metrics and test results over time.
You can choose:
- Self-host the open-source version. Live demo.
- Sign up for Evidently Cloud (Recommended).
Evidently Cloud offers a generous free tier and extra features like dataset and user management, alerting, and no-code evals. Compare OSS vs Cloud.
| Dashboard |
|---|
![]() |
:woman_technologist: Install Evidently
To install from PyPI:
pip install evidently
To install Evidently using the Conda installer, run:
conda install -c conda-forge evidently
:arrow_forward: Getting started
Reports
LLM evals
This is a simple Hello World. Check the Tutorials for more: LLM evaluation.
Import the necessary components:
import pandas as pd
from evidently import Report
from evidently import Dataset, DataDefinition
from evidently.descriptors import Sentiment, TextLength, Contains
from evidently.presets import TextEvals
Create a toy dataset with questions and answers.
eval_df = pd.DataFrame([
["What is the capital of Japan?", "The capital of Japan is Tokyo."],
["Who painted the Mona Lisa?", "Leonardo da Vinci."],
["Can you write an essay?", "I'm sorry, but I can't assist with homework."]],
columns=["question", "answer"])
Create an Evidently Dataset object and add descriptors: row-level evaluators. We'll check for sentiment of each response, its length and whether it contains words indicative of denial.
eval_dataset = Dataset.from_pandas(pd.DataFrame(eval_df),
data_definition=DataDefinition(),
descriptors=[
Sentiment("answer", alias="Sentiment"),
TextLength("answer", alias="Length"),
Contains("answer", items=['sorry', 'apologize'], mode="any", alias="Denials")
])
You can view the dataframe with added scores:
eval_dataset.as_dataframe()
To get a summary Report to see the distribution of scores:
report = Report([
TextEvals()
])
my_eval = report.run(eval_dataset)
my_eval
# my_eval.json()
# my_eval.dict()
You can also choose other evaluators, including LLM-as-a-judge and configure pass/fail conditions.
Data and ML evals
This is a simple Hello World. Check the Tutorials for more: Tabular data.
Import the Report, evaluation Preset and toy tabular dataset.
import pandas as pd
from sklearn import datasets
from evidently import Report
from evidently.presets import DataDriftPreset
iris_data = datasets.load_iris(as_frame=True)
iris_frame = iris_data.frame
Run the Data Drift evaluation preset that will test for shift in column distributions. Take the first 60 rows of the dataframe as "current" data and the following as reference. Get the output in Jupyter notebook:
report = Report([
DataDriftPreset(method="psi")
],
include_tests="True")
my_eval = report.run(iris_frame.iloc[:60], iris_frame.iloc[60:])
my_eval
You can also save an HTML file. You'll need to open it from the destination folder.
my_eval.save_html("file.html")
To get the output as JSON or Python dictionary:
my_eval.json()
# my_eval.dict()
You can choose other Presets, create Reports from individual Metrics and configure pass/fail conditions.
Monitoring dashboard
This launches a demo project in the locally hosted Evidently UI. Sign up for Evidently Cloud to instantly get a managed version with additional features.
if you have uv you can run Evidently UI with a single command.
uv run --with evidently evidently ui --demo-projects all
If you haven’t installed uv, create a virtual environment using the standard approach.
pip install virtualenv
virtualenv venv
source venv/bin/activate
After installing Evidently (pip install evidently), run the Evidently UI with the demo projects:
evidently ui --demo-projects all
Visit localhost:8000 to access the UI.
🚦 What can you evaluate?
Evidently has 100+ built-in evals. You can also add custom ones.
Here are examples of things you can check:
| 🔡 Text descriptors | 📝 LLM outputs |
| Length, sentiment, toxicity, language, special symbols, regular expression matches, etc. | Semantic similarity, retrieval relevance, summarization quality, etc. with model- and LLM-based evals. |
| 🛢 Data quality | 📊 Data distribution drift |
| Missing values, duplicates, min-max ranges, new categorical values, correlations, etc. | 20+ statistical tests and distance metrics to compare shifts in data distribution. |
| 🎯 Classification | 📈 Regression |
| Accuracy, precision, recall, ROC AUC, confusion matrix, bias, etc. | MAE, ME, RMSE, error distribution, error normality, error bias, etc. |
| 🗂 Ranking (inc. RAG) | 🛒 Recommendations |
| NDCG, MAP, MRR, Hit Rate, etc. | Serendipity, novelty, diversity, popularity bias, etc. |
:computer: Contributions
We welcome contributions! Read the Guide to learn more.
:books: Documentation
For more examples, refer to the complete Documentation.
Browse the API Reference for detailed API documentation.
:white_check_mark: Discord Community
If you want to chat and connect, join our Discord community!

