Doramagic 项目包 · 项目说明书

evidently 项目

Evidently 是一个开源的机器学习与大语言模型可观测性框架,可用于评估、测试和监控任何 AI 系统或数据流水线,覆盖从表格数据到生成式 AI 的场景,提供 100 多项指标。

Project Overview and System Architecture

Evidently 是一个开源的 Python 框架,用于评估、测试与监控机器学习(ML)和大语言模型(LLM)驱动的系统,涵盖从实验到生产的全生命周期。仓库同时托管前端 UI 与配套示例,以支持"本地一次性评估"与"长期监控服务"两种部署模式。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 4.1 示例组织

继续阅读本节完整说明和来源证据。

章节 4.2 API 引用生成

继续阅读本节完整说明和来源证据。

章节 4.3 UI 追踪与提示词管理

继续阅读本节完整说明和来源证据。

1. 项目定位与核心能力

Evidently 是一个开源的 Python 框架,用于评估、测试与监控机器学习(ML)和大语言模型(LLM)驱动的系统,涵盖从实验到生产的全生命周期。仓库同时托管前端 UI 与配套示例,以支持"本地一次性评估"与"长期监控服务"两种部署模式。

资料来源:README.md:1-30

核心定位可概括为以下要点:

  • 数据形态兼容:同时支持结构化(表格)与非结构化(文本)数据。
  • 任务范围广泛:覆盖分类、回归、RAG 等预测与生成任务。
  • 指标库丰富:内置 100+ 指标,涵盖数据漂移检测、LLM 评判器等。
  • 可扩展接口:提供 Python 接口用于自定义指标。
  • 双模式运行:既可作为离线评估库,也可作为在线监控服务。

社区当前关切的兼容性议题包括 NumPy 2.x 支持(issue #1557)、Python 3.13 / Pydantic v2 兼容(issue #1612)以及 sentence-transformers > 5.3.0 时的 SemanticSimilarity 失败问题(issue #1888),这些都直接影响安装与运行基础。

2. 顶层架构与组件拓扑

仓库在物理结构上由 Python 库主体、UI 前端工作区、示例与教程目录、API 引用生成工具四个并列部分组成。ui/service/package.json 定义了前端服务的 Vite 构建脚本与运行时依赖(reactreact-domdayjs),并以 workspace 协议引用内部的 evidently-ui-lib 组件库。资料来源:ui/service/package.json:1-35

前端类型层通过 OpenAPI 自动生成,后端 schema 在 ui/packages/evidently-ui-lib/src/api/types/index.ts 中被导出为 pathscomponents['schemas'],并在此基础上衍生出 ProjectModelReportModelDashboardInfoModel 等领域模型。资料来源:ui/packages/evidently-ui-lib/src/api/types/index.ts:1-30

graph LR
  subgraph Python[Python 库主体]
    A[evidently.legacy] --> C[核心计算与指标]
    B[evidently.future] --> C
    C --> D[Report / Test Suite]
  end
  subgraph UI[UI 服务]
    E[evidently-ui-lib 组件] --> F[Vite 服务 vite]
    F --> G[Dashboard / Traces / Prompts]
  end
  D -- JSON 导出 --> G
  H[api-reference pdoc] --> I[API 文档站点]
  J[examples / tutorials] --> K[开发者教程]
  C -. 注册 .-> H

3. 评估与测试体系

评估对象分为 Report(汇总报告)与 Test Suite(带通过/失败条件的测试套件)。Report 适合实验性分析与调试,可导出为 JSON、字典、HTML,或在监控 UI 中查看;Test Suite 适合 CI/CD 回归校验与数据校验,并支持根据参考数据集自动生成阈值。资料来源:README.md:35-55

测试结果在前端通过 TestData 组件渲染,依据 TestStateunknown / success / warning / fail / error)映射为 MUI 的告警颜色,并通过折叠面板展示详情。资料来源:ui/packages/evidently-ui-lib/src/widgets/TestSuiteWidget/TestData.tsx:1-25

通用 Widget 容器则统一了标题、正文、告警块、洞察块与详情区域的渲染顺序,使报告与测试套件在同一网格中保持一致布局。资料来源:ui/packages/evidently-ui-lib/src/widgets/Widget.tsx:1-40

社区在指标层仍有遗留问题:TestRocAuc 在百万行规模下耗时较长(issue #508),LLMEval 描述符在测试上下文中的绘图尚未在 Descriptors 标签页填充(issue #1292),且历史指标到新 Report API 的迁移尚未完成(issue #1805)。

4. 示例、教程与 UI 子系统

4.1 示例组织

examples/ 目录被划分为四个子区域:cookbook(聚焦单功能的最小示例)、tutorials(端到端综合教程)、service(本地运行完整服务的样例)、grafana(与 Grafana 仪表盘集成的样例),并共享 datasets/ 中的样例数据。资料来源:examples/README.md:1-35

cookbook/README.md 进一步明确了何时选用 cookbook:用户希望"隔离试用某一特性"、"复制最小实现模式"或"在不走完整工作流的前提下理解单一评估任务"时,cookbook 是首选;端到端用例应进入 tutorials/。资料来源:examples/cookbook/README.md:1-30

4.2 API 引用生成

api-reference/generate.py 基于 pdoc 从本地源码或任意 Git 修订(分支、标签、提交)构建静态文档;默认覆盖 evidentlyevidently.core,可通过 --additional-modules 扩展。文档输出至 api-reference/dist/,本地开发模式支持文件变更监听与 http://localhost:8080 实时刷新。资料来源:api-reference/README.md:1-50

4.3 UI 追踪与提示词管理

前端还提供多轮 Trace 查看能力。DialogViewer 通过 FieldAutocomplete 让用户选择输入/输出字段名,从 root span 或按名称筛选的 span 中提取消息内容,并按 SessionCardContent 渲染"用户—助手"对话视图。资料来源:ui/packages/evidently-ui-lib/src/components/Traces/DialogViewer/index.tsx:1-30 ui/packages/evidently-ui-lib/src/components/Traces/DialogViewer/components/SessionCardContent.tsx:1-30

TraceTable 展示耗时、Token 用量、Guardrails 命中与删除/查看动作;UsageData 从 span 中聚合 token 与费用,并以 Tooltip 形式展示明细。资料来源:ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/TraceTable.tsx:1-30 ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/UsageData.tsx:1-20

提示词管理由 PromptInfoHeaderCreateFirstPromptVersionForm 协同完成:前者展示 Prompt ID、版本号并在查看/编辑模式间切换,后者允许在 text-messagesjudge 两种模板变体之间创建首个版本。资料来源:ui/packages/evidently-ui-lib/src/components/Prompts/PromptInfoHeader.tsx:1-30 ui/packages/evidently-ui-lib/src/components/Prompts/Versions/Forms/CreateFirstPromptVersionForm.tsx:1-30

4.4 已知风险与运维注意

社区已披露 UI 数据集物化端点存在未授权路径遍历漏洞(issue #1887),自托管用户必须及时升级;另外当项目目录不是 Git 仓库时,仪表盘需重启才能看到新报告(issue #1035),在 Docker 部署中尤为不便。Spark 集成诉求(issue #92)至今仍是开放性讨论。

See Also

  • Reports and Test Suites API surface(建议独立页面)
  • Descriptors and LLM-as-Judge(建议独立页面)
  • UI Service: Workspace, Traces and Prompts(建议独立页面)
  • Self-Hosting and Security Considerations(建议独立页面)

资料来源:README.md:1-30

Core Evaluation Engine: Reports, Metrics, Presets, Descriptors and Tests

Evidently 是一个用于评估、测试和监控 ML 与 LLM 系统的开源 Python 库。其核心评估引擎由 Reports、Metrics、Presets、Descriptors 与 Tests 五大组件构成,覆盖从离线实验到生产监控的完整工作流。引擎支持表格数据与文本数据两类输入,并兼容分类、RAG、回归等典型任务场景 [README.md:13-21]。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 2.1 Report —— 评估执行入口

继续阅读本节完整说明和来源证据。

章节 2.2 Metrics —— 原子计算单元

继续阅读本节完整说明和来源证据。

章节 2.3 Presets —— 预制组合

继续阅读本节完整说明和来源证据。

一、概述与定位

Evidently 是一个用于评估、测试和监控 ML 与 LLM 系统的开源 Python 库。其核心评估引擎由 Reports、Metrics、Presets、Descriptors 与 Tests 五大组件构成,覆盖从离线实验到生产监控的完整工作流。引擎支持表格数据与文本数据两类输入,并兼容分类、RAG、回归等典型任务场景 [README.md:13-21]。

核心设计理念为模块化与可组合:用户既可直接调用内置的 100+ 指标(metrics),也可通过 Python 接口定义自定义指标;既可使用 Preset 快速搭建报告,也可精细控制每个组件 [README.md:18-22]。

二、核心组件架构

2.1 Report —— 评估执行入口

Report 是用户与评估引擎交互的主要对象,负责将一组 metrics 或 presets 组织起来,执行计算,并生成可视化结果。根据 core/report.py 的设计,Report 支持将同一份报告同时配置为 "评估" 模式(仅展示指标)与 "测试" 模式(带通过/失败条件)[README.md:29-39]。

输出格式灵活:交互式 HTML、JSON、Python 字典,或上传至 Evidently UI 仪表板进行监控 [README.md:33-39]。

2.2 Metrics —— 原子计算单元

Metric 是评估引擎中最细粒度的计算单元。core/metric_types.py 中定义了指标的输入列映射、输出值结构(包含 valuelabelsp_value 等字段),以及渲染为 Widget 所需的数据结构 src/evidently/core/metric_types.py

Metric 可分为:

  • 数据漂移类(如 DataDriftPreset 中的列级分布对比)
  • 数据质量类(缺失值、重复行、相关性等)
  • 回归 / 分类性能类(含 TestRocAuc 等耗时指标,详见常见问题章节)
  • LLM 评估类(如 SemanticSimilarityLLMEval

2.3 Presets —— 预制组合

Preset 是预定义好的 metric 集合,用于一键生成主题化报告。presets/__init__.py 暴露 DataDriftPresetRegressionPresetTextEvals 等常用预设 src/evidently/presets/__init__.py。Preset 内部按列类型和任务类型自动选择合适的 metric 子集。

社区反馈指出,部分旧版 metric(如 RegressionErrorBiasTableRegressionPredictedVsActualScatterRegressionTopErrorMetric)尚未在新 Report API 中集成到 RegressionPreset 中 issue #1805。

2.4 Descriptors —— 列级特征提取器

Descriptor 是针对文本列的列级特征提取与生成函数,可视作一种特殊的 metric。常见 descriptor 包括 TextLengthSemanticSimilarity、自定义 LLMEval()examples/cookbook/README.md

Descriptor 与 TextEvals report 配合使用,可对 LLM 输出列计算多种特征。社区报告指出,sentence-transformers 版本高于 5.3.0 时 SemanticSimilarity descriptor 会失败,需固定版本 issue #1888。

2.5 Tests —— 通过/失败断言

Test 是对 metric 输出的条件断言(如 gtlt),用于将 Report 转换为 Test Suite,适合回归测试与 CI/CD 场景 README.md:41-50core/tests.py 定义了测试条件的数据结构与评估逻辑 src/evidently/core/tests.py

零配置选项允许根据参考数据集自动生成测试条件 README.md:46-50

2.6 数据流架构

flowchart LR
    A[Input DataFrames] --> B[Report]
    C[Preset] --> B
    D[Metrics 列表] --> B
    E[Descriptors] --> B
    B --> F{Test 条件?}
    F -- 是 --> G[Test Suite<br/>Pass/Fail]
    F -- 否 --> H[Report<br/>指标展示]
    G --> I[JSON / HTML / UI]
    H --> I
    I --> J[Evidently UI<br/>监控仪表板]

三、典型使用模式

3.1 文本评估报告

from evidently import Report
from evidently.descriptors import SemanticSimilarity, LLMEval
from evidently.presets import TextEvals

text_evals_report = Report(metrics=[
    TextEvals(column_name="response", descriptors=[
        SemanticSimilarity(with_column="question"),
        LLMEval(...)
    ])
])
text_evals_report.run(reference_data=ref, current_data=curr)

该模式与社区教程中修复后的用法一致 issue #1367。

3.2 Test Suite 用于回归测试

from evidently import TestSuite
from evidently.tests import TestColumnDrift

suite = TestSuite(tests=[TestColumnDrift(column_name="text")])
suite.run(reference_data=ref, current_data=curr)

3.3 集成到 UI 与监控服务

后端通过 projects_api.py 注册项目快照路由,Report 与 Test Suite 可上传至 UI 形成监控仪表板 src/evidently/legacy/ui/api/projects.py。社区报告指出,使用 TestShareOfOutRangeValues 等测试时,descriptor 的可视化在 UI Descriptors 标签中可能为空 issue #1292。

四、常见问题与故障排除

现象原因解决方式
SemanticSimilarity 报错sentence-transformers > 5.3.0 兼容性问题固定版本至 5.3.0 或以下 issue #1888
TestRocAuc 执行缓慢大数据集(如 1M 行)下 ROC 计算开销高调整阈值或采样输入 issue #508
Python 3.13 导入错误pydantic v1 兼容性问题暂时使用 Python 3.12 issue #1612
Numpy 2.x 安装困难版本上限未放宽跟踪 issue #1557 进展
DataDriftPreset 列筛选报错旧版 API 列参数类型错误升级至最新版本 issue #473
Legacy metric 不在新 RegressionPreset 中API 迁移未完成手动引入 evidently.legacy.metrics issue #1805
get_binned_data 偏差feel_zeroes 固定值 0.0001 影响零占比场景留意 issue #334 后续修复

五、API 参考生成

官方 API 文档由 pdoc 生成,支持本地源码或指定 git revision(分支、tag、commit)构建,可通过 ./api-reference/generate.py --local-source-code 快速开始 api-reference/README.md:5-20

See Also

来源:https://github.com/evidentlyai/evidently / 项目说明书

LLM Capabilities: Descriptors, Judges, Prompts, Guardrails and Tracing

Evidently 是一个面向 ML 与 LLM 系统的开源评估、测试与监控框架。根据项目主仓库描述,框架同时支持表格与文本数据,覆盖从分类到 RAG 的预测与生成任务评估,并内置 100+ 指标 README.md。其 LLM 相关能力可归纳为五大支柱:描述符(Descriptors)、LLM 评判器(LLMEval/Judges)、提示词管理(Prompts)、护栏(G...

章节 相关页面

继续阅读本节完整说明和来源证据。

概述

Evidently 是一个面向 ML 与 LLM 系统的开源评估、测试与监控框架。根据项目主仓库描述,框架同时支持表格与文本数据,覆盖从分类到 RAG 的预测与生成任务评估,并内置 100+ 指标 README.md。其 LLM 相关能力可归纳为五大支柱:描述符(Descriptors)、LLM 评判器(LLMEval/Judges)、提示词管理(Prompts)、护栏(Guardrails)与追踪(Tracing)。Cookbook 中提供了针对性入门示例,例如 descriptors.ipynbguardrails.ipynbprompt_registry.ipynb examples/cookbook/README.md。示例目录还提供端到端教程:agentic_systems_tracing.ipynb 演示多步骤代理工作流的追踪与评估,llm_input_output_validation.ipynb 演示 LLM 应用输入输出质量评估 examples/README.md

下图展示了这五大能力在数据流水线中的位置与相互关系:

flowchart LR
  A[原始数据 / 文本列] --> B[Descriptors 描述符]
  B --> C[LLM Judges 评判器]
  C --> D[Report 报告]
  D --> E[Guardrails 护栏]
  A --> F[Tracing 追踪]
  F --> E
  G[Prompts 注册表] --> C
  G --> F
  D --> H[Test Suites / 监控面板]
  E --> H

描述符与 LLM 评判器

描述符是列级别的轻量级特征提取与质量度量单元。在 UI 侧,描述符与 LLM 评判器模板统一以 PromptTemplate 模型描述:工厂函数 makeEmptyLLMJudgeDescriptorTemplate() 返回一个默认的二分类模板,字段包含 non_target_categorytarget_categoryinclude_categoryuncertaincy(注意源码中拼写为 uncertaintn 样式的字符串 'unknown'ui/packages/evidently-ui-lib/src/components/Descriptors/_utils/utils.tsx。Cookbook 中的 descriptors.ipynb 演示了基本使用模式 examples/cookbook/README.md

提示词注册表(Prompts)

提示词以 Artifact 形式持久化,并经由 Litestar 路由对外暴露 REST 接口。prompts.py 中的 _artifact_to_prompt_artifact_version_to_prompt_version 函数将领域对象 ArtifactArtifactVersion 转换为 API 模型 PromptPromptVersion,其中 ArtifactPromptContent 通过 get_value() 拆封为 PromptContent src/evidently/ui/service/api/prompts.py。前端 PromptInfoHeader 展示 Prompt ID、版本号 #${promptVersion.version} 与查看/编辑切换控件 ui/packages/evidently-ui-lib/src/components/Prompts/PromptInfoHeader.tsx

渲染层在 ViewPromptVersion 组件中按 content.type 分派三种分支:TextPromptContent(纯文本)、MessagesPromptContent(多消息)与 TemplatePromptContent(LLM 评判器模板,由 LLMJudgeTemplateViewer 渲染)ui/packages/evidently-ui-lib/src/components/Prompts/Versions/View/index.tsxCreateFirstPromptVersionForm 通过 ToggleButtonGrouptext-messagesjudge 两种变体之间切换 ui/packages/evidently-ui-lib/src/components/Prompts/Versions/Forms/CreateFirstPromptVersionForm.tsx。编辑态使用 PromptVersionEditor 联合 LLMJudgeTemplateEditoruseCustomFormValidator 进行表单错误校验 ui/packages/evidently-ui-lib/src/components/Prompts/Versions/Edit/index.tsx

追踪与护栏

TraceTable 渲染 trace 行级表格,列包括开始/结束时间、Token usage、护栏列与操作列;护栏列从 spans 中通过 extractGuardRailsDataFromSpan 抽取并由 GuardRailsShowInfoButton 展示 ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/TraceTable.tsxUsageData 组件汇总总 token 与总成本,并附带 CostTooltip 明细 ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/UsageData.tsxSessionCardContent 通过 SplitField 解析 description.inputAttributeoutputAttribute 在 root spans 中定位输入/输出字段,从而呈现多轮会话内容 ui/packages/evidently-ui-lib/src/components/Traces/DialogViewer/components/SessionCardContent.tsx。UI 服务基于 Vite + React 18 + tiny-invariant 构建,端到端测试由 playwright 驱动 ui/service/package.json。报告中嵌入的 Markdown 文本由 TextWidgetContent 借助 react-markdown 渲染 ui/packages/evidently-ui-lib/src/widgets/TextWidgetContent.tsx

已知限制与社区反馈

社区报告显示 SemanticSimilarity 描述符在 sentence-transformers 高于 5.3.0 时出现依赖兼容性问题,临时方案为降级到 5.3.0(社区讨论 #1888)。另有用户反馈 LLMEval 描述符在通过 TestShareOfOutRangeValues 等 Test 记录到 Project 后,Descriptors 标签下的图表无法自动填充(社区讨论 #1292)。针对大文本量场景,TestRocAuc 在百万行数据下执行缓慢的问题也被报告过(#508)。需注意不同测试与监控场景下旧版 metrics 与新 Report API 之间存在差异,迁移时可参考 examples/README.md 中的端到端教程重新组织评估流水线。

参见

来源:https://github.com/evidentlyai/evidently / 项目说明书

Deployment, UI Service, Workspace and Extensibility

Evidently 是一个用于评估、测试和监控 ML 与 LLM 系统的开源框架,提供从离线评估到生产监控的完整能力。其部署形态分为两层:Python 核心库负责计算评估指标,后端 UI 服务负责可视化、项目管理与运行时数据存储。根据 README.md 的描述,框架强调模块化设计,用户既可以以一次性评估的方式使用,也可以托管完整的监控服务。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 2.1 前端包结构

继续阅读本节完整说明和来源证据。

章节 2.2 监控服务包

继续阅读本节完整说明和来源证据。

章节 2.3 组件与 Widget 系统

继续阅读本节完整说明和来源证据。

部署、UI 服务、工作区与扩展性

1. 概述与定位

Evidently 是一个用于评估、测试和监控 ML 与 LLM 系统的开源框架,提供从离线评估到生产监控的完整能力。其部署形态分为两层:Python 核心库负责计算评估指标,后端 UI 服务负责可视化、项目管理与运行时数据存储。根据 README.md 的描述,框架强调模块化设计,用户既可以以一次性评估的方式使用,也可以托管完整的监控服务。

UI 部分采用前后端分离架构:前端基于 React + TypeScript + Vite,后端服务基于 Python(FastAPI 风格),二者通过 OpenAPI 生成的 TypeScript 类型契约通信。这种分层为用户提供了灵活的部署选项——既可作为单机 Notebook 工具,也可作为自托管的多用户服务。

2. UI 服务架构

2.1 前端包结构

UI 工作区由两个子项目组成:监控 UI(service)和独立嵌入包(standalone),用于在 Jupyter Notebook 等环境中嵌入图表。源码位置:ui/README.md:1-5

依赖要求:Node.js v20+、pnpm v9。代码质量工具使用 biome(lint、格式化、import 排序)。可通过 pnpm code-checkpnpm code-check --fix 进行检查与自动修复。

2.2 监控服务包

service 包定义明确,运行时依赖包括 React 18、dayjs、tiny-invariant 和内部 workspace 库 evidently-ui-lib。开发工具包括 Vite 7、@vitejs/plugin-react-swc、Playwright(端到端测试)。源码位置:ui/service/package.json:5-20

服务通过 sync-back 脚本从后端拉取 OpenAPI 类型定义,保证前后端类型同步,避免契约漂移。详见 ui/service/package.json:7

2.3 组件与 Widget 系统

前端使用基于卡片(Card)的 Widget 系统展示评估结果。每个 Widget 支持多种内容类型,包括 listtexttest_suite 等。源码位置:ui/packages/evidently-ui-lib/src/widgets/WidgetRenderer.tsx:1-22

Widget 渲染器根据 info.type 字段分发到对应组件,例如 TextWidgetContent 使用 react-markdown 渲染 Markdown 文本。源码位置:ui/packages/evidently-ui-lib/src/widgets/TextWidgetContent.tsx:1-12

3. 工作区(Workspace)与可扩展能力

3.1 项目、提示与追踪

Workspace 在 UI 中表现为"项目"(Project),每个项目可包含报告、测试套件、提示模板(Prompt)、追踪记录(Traces)等多种工件。

提示管理通过 API 提供 CRUD 接口。ArtifactVersionPromptVersion 转换为统一工件表示,从而复用通用存储与版本控制路径。源码位置:src/evidently/ui/service/api/prompts.py:50-70。前端通过 PromptInfoHeader 展示提示 ID、版本号,并支持视图/编辑切换。源码位置:ui/packages/evidently-ui-lib/src/components/Prompts/PromptInfoHeader.tsx:18-40

提示版本创建支持两种模板类型:text-messages(普通对话消息)与 judge(LLM 评判器),二者共享同一编辑组件但初始化逻辑不同。源码位置:ui/packages/evidently-ui-lib/src/components/Prompts/Versions/Forms/CreateFirstPromptVersionForm.tsx:1-40

3.2 追踪与成本可视化

Trace 表格组件展示每个追踪的开始/结束时间、Token 使用、Guardrails 与操作按钮。其中 UsageData 自动汇总所有 Span 的 Token 与成本。源码位置:ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/UsageData.tsx:10-28

CostComponentcost > 0 时显示美元金额,否则回退到 Token 数。源码位置:ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/CostComponent.tsx:10-32

会话视图(SessionCardContent)通过 parent_span_id === '' 识别根 Span,再依据 inputAttribute/outputAttribute 配置抽取用户消息与智能体回复。源码位置:ui/packages/evidently-ui-lib/src/components/Traces/DialogViewer/components/SessionCardContent.tsx:11-32

3.3 仪表盘面板

仪表盘面板以声明式数据驱动。文本面板仅需声明 type: 'text'sizetitledescription 即可注册。源码位置:ui/packages/evidently-ui-lib/src/components/Dashboard/Panels/implementations/Text.tsx:1-18

4. 部署、扩展与已知问题

4.1 API 参考与文档生成

API 参考文档使用 pdoc 从本地源码或 Git 修订(分支、Tag、Commit)生成。源码位置:api-reference/README.md:1-15

可通过 --additional-modules 参数扩展默认模块(如 evidently.metricsevidently.guardrails),便于团队为内部扩展自动生成文档。

4.2 示例与 Cookbook

examples/ 目录提供三类示例:

  • 入门教程:代理追踪、LLM 输入输出验证、经典 ML 漂移检测。
  • Cookbook:覆盖指标、描述符、Guardrails、Prompt Registry、Prompt 优化、推荐系统指标、回归 Preset 与数据生成。
  • 服务:本地运行完整 Evidently 系统的示例。
  • Grafana:将指标导出并在 Grafana 中可视化。

源码位置:examples/README.md:1-30examples/cookbook/README.md:1-30

4.3 部署注意事项(社区反馈)

根据社区 issue,自托管部署时需注意以下几点:

问题现象应对建议
Issue #1413在自托管环境创建 collector config 时报缺少密钥字段检查配置文件完整性,对照最新 schema
Issue #1035项目不在 Git 仓库时 UI 无法识别新报告将服务目录纳入 Git 仓库或调整探测逻辑
Issue #731文本描述符测试套件在监控仪表盘不显示检查 column_mapping.text_features 与 Dashboard 配置
Issue #1887UI 数据集物化接口存在路径遍历漏洞升级到包含修复的版本,并限制反向代理层访问

资料来源:README.mdui/README.mdapi-reference/README.md

5. See Also

  • Reports and Test Suites — 评估与断言核心概念
  • Descriptors — 特征与文本描述符系统
  • Tracing and Observability — Span、Token 与成本追踪
  • Self-hosting Guide — Docker 与反向代理部署实践

资料来源:README.mdui/README.mdapi-reference/README.md

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:RMSE metric in RegressionQualityMetric is wrong

可能增加新用户试用和生产接入成本。

high 来源证据:curr_small_hist and ref_small_hist not available in data drift JOSN object in latest version

可能增加新用户试用和生产接入成本。

high 来源证据:Fix semantic similarity in LLM eval tutorial

可能增加新用户试用和生产接入成本。

high 来源证据:Legacy metrics to new Report API

可能增加新用户试用和生产接入成本。

Pitfall Log / 踩坑日志

项目:evidentlyai/evidently

摘要:发现 19 个潜在踩坑项,其中 9 个为 high/blocking;最高优先级:安装坑 - 来源证据:RMSE metric in RegressionQualityMetric is wrong。

1. 安装坑 · 来源证据:RMSE metric in RegressionQualityMetric is wrong

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:RMSE metric in RegressionQualityMetric is wrong
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/670 | 来源类型 github_issue 暴露的待验证使用条件。

2. 配置坑 · 来源证据:curr_small_hist and ref_small_hist not available in data drift JOSN object in latest version

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:curr_small_hist and ref_small_hist not available in data drift JOSN object in latest version
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/491 | 来源类型 github_issue 暴露的待验证使用条件。

3. 运行坑 · 来源证据:Fix semantic similarity in LLM eval tutorial

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Fix semantic similarity in LLM eval tutorial
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1367 | 来源类型 github_issue 暴露的待验证使用条件。

4. 运行坑 · 来源证据:Legacy metrics to new Report API

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Legacy metrics to new Report API
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1805 | 来源类型 github_issue 暴露的待验证使用条件。

5. 运行坑 · 来源证据:Make `LLMEval` descriptors plottable from Tests

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Make LLMEval descriptors plottable from Tests
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1292 | 来源类型 github_issue 暴露的待验证使用条件。

6. 维护坑 · 来源证据:New scikit-learn version 1.3.0 breaks EmbeddingsDriftMetric model drift analysis

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:New scikit-learn version 1.3.0 breaks EmbeddingsDriftMetric model drift analysis
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/686 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

7. 维护坑 · 来源证据:Plotly Graph Objects - Deprecated module is in use.

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:Plotly Graph Objects - Deprecated module is in use.
  • 对用户的影响:可能影响升级、迁移或版本选择。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1884 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

8. 安全/权限坑 · 来源证据:Protect this repo from AI-generated PRs

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Protect this repo from AI-generated PRs
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1879 | 来源类型 github_issue 暴露的待验证使用条件。

9. 安全/权限坑 · 来源证据:SemanticSimilarity fails with sentence-transformers > 5.3.0

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:SemanticSimilarity fails with sentence-transformers > 5.3.0
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1888 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

10. 安装坑 · 来源证据:Error when trying to create collector config in self-hosted environment

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Error when trying to create collector config in self-hosted environment
  • 对用户的影响:可能影响升级、迁移或版本选择。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1413 | 来源讨论提到 docker 相关条件,需在安装/试用前复核。

11. 配置坑 · 来源证据:python 3.13 support

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:python 3.13 support
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1612 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

12. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 证据:capability.assumptions | https://github.com/evidentlyai/evidently | README/documentation is current enough for a first validation pass.

13. 维护坑 · 来源证据:Test suite not visible in monitoring dashboard

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:Test suite not visible in monitoring dashboard
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/731 | 来源类型 github_issue 暴露的待验证使用条件。

14. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 证据:evidence.maintainer_signals | https://github.com/evidentlyai/evidently | last_activity_observed missing
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 证据:downstream_validation.risk_items | https://github.com/evidentlyai/evidently | no_demo; severity=medium

16. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 证据:risks.scoring_risks | https://github.com/evidentlyai/evidently | no_demo; severity=medium

17. 安全/权限坑 · 来源证据:Unauthenticated path traversal arbitrary file read in Evidently UI dataset materialization

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Unauthenticated path traversal arbitrary file read in Evidently UI dataset materialization
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/evidentlyai/evidently/issues/1887 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

18. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 证据:evidence.maintainer_signals | https://github.com/evidentlyai/evidently | issue_or_pr_quality=unknown

19. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 证据:evidence.maintainer_signals | https://github.com/evidentlyai/evidently | release_recency=unknown

来源:Doramagic 发现、验证与编译记录