# DeepEval DAG 评测：必需事实缺失先判失败，完整后再按表达质量给分

已构造真实DeepEval LLMTestCase并核对DAG节点接口，另执行作者硬门槛规则；未运行DAG模型评判。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 先写不可抵消的必需事实

公告答案必须有affected_model与effective_date。R1语言再清楚，只要漏日期就应0分；表达风格不能把缺事实平均掉。

## 2. 运行明确分支参考

audit.py按required gate→style→terminal计算R1=0、R2=0.5、R3=1。作者分支结果不是DeepEval模型判断。

## 3. 建立DeepAcyclicGraph节点

按当前DeepEval接口将事实提取、二元判断、表达分支和终点分数分开建节点。节点名称要说明输入输出，不只画一张流程图。

## 4. 把DAG交给DAGMetric

指定真实test case字段与评判模型，确保required-fact节点结果决定后续走向。构造失败要保留版本和参数错误。

## 5. 保存每个节点判断

在授权环境对三条答案评测，记录事实提取与每个分支的实际路径。最终分数确定不意味着LLM事实判断绝对正确。

## 6. 重复测语言好但缺日期的反例

R1必须经过硬门槛失败，不能直接跳风格节点得到高分。若模型误提取出不存在日期，应列为judge错误。

## 7. 交付路径、分数与人工差异

把作者规则、实际DAG节点输出和分数一并交付。包内只运行规则参考，未执行DeepEval DAGMetric或模型。

## 官方依据

- DeepEval 官方文档或源码：https://deepeval.com/guides/guides-dag-metric
