Doramagic 项目包 · 项目说明书
evidently 项目
Evidently 是一个开源的机器学习与大语言模型可观测性框架,可用于评估、测试和监控任何 AI 系统或数据流水线,覆盖从表格数据到生成式 AI 的场景,提供 100 多项指标。
Project Overview and System Architecture
Evidently 是一个开源的 Python 框架,用于评估、测试与监控机器学习(ML)和大语言模型(LLM)驱动的系统,涵盖从实验到生产的全生命周期。仓库同时托管前端 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 构建脚本与运行时依赖(react、react-dom、dayjs),并以 workspace 协议引用内部的 evidently-ui-lib 组件库。资料来源:ui/service/package.json:1-35
前端类型层通过 OpenAPI 自动生成,后端 schema 在 ui/packages/evidently-ui-lib/src/api/types/index.ts 中被导出为 paths 与 components['schemas'],并在此基础上衍生出 ProjectModel、ReportModel、DashboardInfoModel 等领域模型。资料来源: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 -. 注册 .-> H3. 评估与测试体系
评估对象分为 Report(汇总报告)与 Test Suite(带通过/失败条件的测试套件)。Report 适合实验性分析与调试,可导出为 JSON、字典、HTML,或在监控 UI 中查看;Test Suite 适合 CI/CD 回归校验与数据校验,并支持根据参考数据集自动生成阈值。资料来源:README.md:35-55
测试结果在前端通过 TestData 组件渲染,依据 TestState(unknown / 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 修订(分支、标签、提交)构建静态文档;默认覆盖 evidently 与 evidently.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
提示词管理由 PromptInfoHeader 与 CreateFirstPromptVersionForm 协同完成:前者展示 Prompt ID、版本号并在查看/编辑模式间切换,后者允许在 text-messages 与 judge 两种模板变体之间创建首个版本。资料来源: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]。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
一、概述与定位
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 中定义了指标的输入列映射、输出值结构(包含 value、labels、p_value 等字段),以及渲染为 Widget 所需的数据结构 src/evidently/core/metric_types.py。
Metric 可分为:
- 数据漂移类(如
DataDriftPreset中的列级分布对比) - 数据质量类(缺失值、重复行、相关性等)
- 回归 / 分类性能类(含
TestRocAuc等耗时指标,详见常见问题章节) - LLM 评估类(如
SemanticSimilarity、LLMEval)
2.3 Presets —— 预制组合
Preset 是预定义好的 metric 集合,用于一键生成主题化报告。presets/__init__.py 暴露 DataDriftPreset、RegressionPreset、TextEvals 等常用预设 src/evidently/presets/__init__.py。Preset 内部按列类型和任务类型自动选择合适的 metric 子集。
社区反馈指出,部分旧版 metric(如 RegressionErrorBiasTable、RegressionPredictedVsActualScatter、RegressionTopErrorMetric)尚未在新 Report API 中集成到 RegressionPreset 中 issue #1805。
2.4 Descriptors —— 列级特征提取器
Descriptor 是针对文本列的列级特征提取与生成函数,可视作一种特殊的 metric。常见 descriptor 包括 TextLength、SemanticSimilarity、自定义 LLMEval() 等 examples/cookbook/README.md。
Descriptor 与 TextEvals report 配合使用,可对 LLM 输出列计算多种特征。社区报告指出,sentence-transformers 版本高于 5.3.0 时 SemanticSimilarity descriptor 会失败,需固定版本 issue #1888。
2.5 Tests —— 通过/失败断言
Test 是对 metric 输出的条件断言(如 gt、lt),用于将 Report 转换为 Test Suite,适合回归测试与 CI/CD 场景 README.md:41-50。core/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.ipynb、guardrails.ipynb 与 prompt_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_category、target_category、include_category 与 uncertaincy(注意源码中拼写为 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 函数将领域对象 Artifact 与 ArtifactVersion 转换为 API 模型 Prompt 与 PromptVersion,其中 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.tsx。CreateFirstPromptVersionForm 通过 ToggleButtonGroup 在 text-messages 与 judge 两种变体之间切换 ui/packages/evidently-ui-lib/src/components/Prompts/Versions/Forms/CreateFirstPromptVersionForm.tsx。编辑态使用 PromptVersionEditor 联合 LLMJudgeTemplateEditor 与 useCustomFormValidator 进行表单错误校验 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.tsx。UsageData 组件汇总总 token 与总成本,并附带 CostTooltip 明细 ui/packages/evidently-ui-lib/src/components/Traces/TraceViewer/components/UsageData.tsx。SessionCardContent 通过 SplitField 解析 description.inputAttribute 与 outputAttribute 在 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 的描述,框架强调模块化设计,用户既可以以一次性评估的方式使用,也可以托管完整的监控服务。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
部署、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-check 与 pnpm 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 支持多种内容类型,包括 list、text、test_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 接口。ArtifactVersion 将 PromptVersion 转换为统一工件表示,从而复用通用存储与版本控制路径。源码位置: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。
CostComponent 在 cost > 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'、size、title 与 description 即可注册。源码位置: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.metrics、evidently.guardrails),便于团队为内部扩展自动生成文档。
4.2 示例与 Cookbook
examples/ 目录提供三类示例:
- 入门教程:代理追踪、LLM 输入输出验证、经典 ML 漂移检测。
- Cookbook:覆盖指标、描述符、Guardrails、Prompt Registry、Prompt 优化、推荐系统指标、回归 Preset 与数据生成。
- 服务:本地运行完整 Evidently 系统的示例。
- Grafana:将指标导出并在 Grafana 中可视化。
源码位置:examples/README.md:1-30 和 examples/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 #1887 | UI 数据集物化接口存在路径遍历漏洞 | 升级到包含修复的版本,并限制反向代理层访问 |
资料来源:README.md、ui/README.md、api-reference/README.md
5. See Also
- Reports and Test Suites — 评估与断言核心概念
- Descriptors — 特征与文本描述符系统
- Tracing and Observability — Span、Token 与成本追踪
- Self-hosting Guide — Docker 与反向代理部署实践
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
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
LLMEvaldescriptors 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 发现、验证与编译记录