# Ragas 合成测试集：从四份材料生成跨文档问题，人工排除无答案和自问自答

已构造真实Ragas SingleTurnSample及作者多跳来源审计；问题与参考由作者提供，未执行知识图谱变换或AI合成。

## 运行

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

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

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

## 1. 建立可人工追溯的小语料

D1把项目连到设备，D2连维护组，D3连维护窗口，D4提供相近干扰。跨文档问题必须真的用到至少两份来源。

## 2. 区分作者题与合成题

author_questions是人工真值，negative仅引用D1不能当多跳。audit.py只审计来源覆盖，不调用Ragas生成测试集。

## 3. 设置persona与场景分布

为新成员和维护主管定义不同信息需求，再配置单跳/多跳比例。persona是覆盖目标，不是随意换角色名称刷题数。

## 4. 用Ragas构建KnowledgeGraph

在授权模型环境导入四份材料并执行变换，保存节点、关系与生成场景。图关系抽错会把无答案问题带进测试集。

## 5. 生成并保存问题和reference_contexts

按当前Ragas合成器生成测试样本，保留原始question、参考上下文和source ID，不能把作者题塞进结果冒充合成。

## 6. 人工核对多跳与泄漏

逐题检查答案能否从真实来源推出、是否只问了一个片段、是否直接把答案写在问题里；无答案与含糊题单独剔除。

## 7. 交付可追溯测试资产

保存生成参数、persona分布、保留/剔除理由与最终测试集。合成答案不自动是真值，本包没有执行Ragas合成或模型。

## 官方依据

- Ragas 官方文档或源码：https://docs.ragas.io/en/latest/getstarted/rag_testset_generation/
