数据集
数据集是一个版本要测的那一批行。每一行有输入,还可以有做对了是什么样(期望)、标签、元数据、它在哪些条件下跑,以及沙盒要用的运行环境。数据集有版本,所以每个实验都说得清它跑的是哪些行。
打开项目的数据集。

数据集的几种来源
| 来源 | 行从哪里来 | 在哪里改 |
|---|---|---|
| 自建 | 你们手写、导入、让 AI 生成,或从日志、实验、评审加进来的行 | 在数据集页上 |
| 来自场景 | 项目确认过的场景:一个场景一行,带它的条件和运行环境;跟着确认过的版本更新 | 场景的编辑页(行上的「在场景编辑页打开」) |
| 来自测试集 | 项目的某个测试集:一道题一行 | 测试集的编辑页 |
v2 之前就接好的项目,场景和测试集已经在这里:项目第一次被打开时平台把它们读进来,但不复制一份会走样的副本,每一行都指向它来自的场景或题目。
场景有还没确认的草稿时,列表上场景数据集的版本旁写着「N 个草稿」,点它到「全部测试(详细列表)」去看、去确认(AI 自动审批开着时会自己确认)。场景和测试集的写法、草稿和确认,见场景与测试集。
新建数据集,加行
- 点**「新建数据集」,填「名称」(和「说明(可选)」),点「建好,去加行」。要让 AI 写,点旁边的「AI 生成数据集」**,写上「要测什么」,点「建好,让 AI 写行」:新的数据集直接打开「AI 生成行」,「要测什么」里已经是你写的。
- 用下面任一种方式加行:
| 方式 | 怎么做 |
|---|---|
| 手写一行 | 「手写一行」打开行编辑器。 |
| 导入 | 「导入」:贴上从表格复制的单元格,或者选一个 CSV、TSV、JSON Lines(promptfoo 的测试文件也行)、Excel(.xlsx,读第一张表)或 promptfoo YAML 文件。再说每一列是什么:「输入」「期望」「标签」「元数据」或「不导入」。有几列输入时,按表头合成一个对象。一次最多 5000 行、500 万个字符,每格最多 2 万个字符。 |
| AI 生成 | 「AI 生成行」:平台的 AI 写新的行,每行带期望:做对了的回复要说到什么、做到什么(事实看不出来时,写回复该怎么做,比如先问预订号,不编)。真没有唯一答案的行(比如只看语气)期望留空,行详情里写明为什么。从「说说要测什么」「读仓库的代码」(连了 GitHub 仓库的项目)或「照最近没通过的行」写。选写几行(3 到 20,默认 8)。算进助手的每日额度。 |
| 从日志 | 在日志里勾选追踪(或打开一条),点「加入数据集」。 |
| 从实验 | 在实验里打开一行,点「加入数据集」。 |
| 从人工评审 | 评审队列可以把每条评完的条目加进一个数据集,评审的答案放在元数据里。 |
| 从 SDK 或 API | 用能上传的令牌调 POST /v2/datasets/<id>/rows(v2 接口)。 |
AI 写的行带着**「待看」**,还写着为什么写这一行。打开它,改好后点「看过了,保留」,不要就删掉。
「加入数据集」只列项目自己建的数据集,或者选「新建数据集…」起个名字。一次最多 500 条。

行编辑器
点一行,右边打开「行详情」。
| 字段 | 是什么 |
|---|---|
| 对话 | 「一句话」「写好的几句」(用户依次说的话,每行一句,至少两句,每句在被测 AI 回完上一句后发出)或「模拟用户」(用户是谁、想办成什么、最多几轮 1 到 12、什么时候停,可选第一句)。模拟用户由项目的评审模型扮演,看不到期望和评分器。 |
| 输入 | 被测 AI 收到的东西。 |
| 期望 | 做对了是什么样:参考答案、要说到的点、要读出的字段。 |
| 条件 | 默认「正常」。「+ 故障」加一个工具和它怎么出错(比如 timeout);「+ 攻击」加一种攻击和可选的插件。每种条件跑一次。故障和攻击只在沙盒目标上跑。 |
| 标签 | 用空格或逗号隔开,最多 50 个。发布门槛可以要求某些标签必须跑到(比如 security)。 |
| 元数据(JSON) | 其余信息,一个 JSON 对象;评分器能读({{metadata.x}})。 |
| 运行环境 | 只有沙盒项目有:这一行要的后端、种子、身份,数据检查(每行 `名称 |
「保存」给这一行写一个新修订,旧的那个仍留在包含它的每个版本里。「删除这一行」只从当前的行里去掉,已存的版本里还有。
来自场景或测试集的行在这里只读:在「在场景编辑页打开」(或「在测试集编辑页打开」)里改,新版本确认后数据集跟着更新。还没确认的新版本,让这一行标着「有新草稿」;侧栏写这份草稿是第几版、AI 审批到哪了,「看草稿」打开它。这样的行还有**「附件」**:这一行的测试交给 Agent 的文件(票据、照片……),写明从哪来的,「上传附件」加新的(附件)。
版本
数据集当前的行随时会有人改。**「保存为 vN」**把它们存成第 N 版:一份不会再变的(行, 修订)清单。在「版本」菜单里选一版就能看它,只读。实验记下它跑的数据集版本(跑的是还没存成版本的行时,记「当前的行」);SDK 的 Eval 也可以指定版本:dataset("报销问答", { version: 3 })。
找行
- 芯片「全部」「功能」「安全」「最近失败」按标签和最近的分数筛。
- 筛选框用筛选语法,字段有
tag、condition、source、input和output(期望),比如tag = 政策 AND input ~ "退款"。 - 「最近分数」是每一行在最近跑过它的实验里的分数。
跑一个数据集
数据集页上的「用它开实验」:
- 场景和测试集的题:按它们在这个版本里的内容,发起一次沙盒(或测试机、对话 AI)运行,只跑这些,和「测试新版本」一样。
- 在这里写的行:用你们的代码跑。页面给出 SDK 的写法:把
dataset("<名字>", { version })当作 Eval 的data。
攻击数据集
「生成攻击数据集」打开安全测试生成器:选一个模板(「用这个模板」),或者自己挑攻击插件和改写手法,预览题目后存成安全测试集。确认后它作为「来自测试集」的数据集出现。平台写的攻击数据集(redteam-…),页面上有「重新出一套题」:平台按代码从头再出一套同类的题,存成新的一版,交给 AI 审批。见攻击测试。
数据集页上方还有「全部测试(详细列表)」:每个场景和测试集的版本和草稿,写场景、批量确认,见场景与测试集。