从一个文件导出一组评估用例
把样例放进数组,用map 给每一行生成一个 defineEval,再把整个数组作为默认导出。检查逻辑只写一次,改它时所有样例一起生效:
确认每条评估用例的 ID
导出数组时,NiceEval 按位置给每条编号。如果文件是evals/sql.eval.ts,生成的 ID 是:
evals/swelancer.eval.ts、key 是 15193 时,ID 就是 swelancer/15193。key 必须是一个非空的路径片段:不能是 . 或 ..,不能含 /、\\ 或控制字符。NiceEval 按 key 的字典序排列,数据源返回的顺序变了,运行顺序和 ID 都不变。
运行前可以用 pnpm exec niceeval exp local sql --dry 确认生成了哪些 ID、一共多少条。
从 YAML 或 JSON 读取测试集
样例多了以后,放进单独的数据文件更好维护。用loadYaml 或 loadJson 读取,并传入一个校验函数:
loadYaml 和 loadJson 必须传入校验函数(decoder)。文件内容只在校验函数里以未知类型出现;校验通过后,返回值就是带类型的数据,可以直接使用。数据文件格式不对时,校验函数会报错,这个评估文件加载失败。
只跑测试集里的一部分
在 Experiment 后面写评估用例 ID 前缀,就能只跑其中几条:pnpm exec niceeval show 在终端查看结果,或用 pnpm exec niceeval view 在浏览器里查看。每条样例都是独立的评估用例,失败的那几条会单独列出。
选择测试集还是独立文件
- 使用测试集
- 使用独立文件
每条样例的流程完全一样,只有输入和预期输出不同。