Skip to main content
CI 运行 Experiment 时,进程退出状态决定门禁是否通过。--json 提供当前进程反馈,最后一条 receipt 给出本次 Invocation 的 runIds。JUnit 文件则交给 CI 平台显示测试结果。

基本命令

只要存在 mismatched 的 Boolean condition、低于 Match 上明确 threshold 且已调用无参 .gate() 的 measurement,或执行错误,NiceEval 就以非零状态码退出。ScoreMatch.atLeast(n) 在登记前形成 threshold。需要阻止合并的要求直接写在评估用例源码中,CI 与本地运行读取同一套判定。
这条命令有三种输出:
  • 退出状态:CI 用它决定任务成功或失败。
  • NDJSON:progress 与 diagnostic 描述当前进程;最后一条 receipt 描述 Invocation。
  • JUnit:供 CI 平台读取的临时文件。
JUnit 和外部平台文件不拥有 Record。Verdict、Usage、断言和诊断的持久事实仍在停稳 Record 的具名通道中。

GitHub Actions 示例

下面的步骤保留 JSON 输出,并正确传回 niceeval exp 的退出状态:
将模型凭据作为 CI secret 注入命令运行所需的变量。不要把凭据写入 Experiment、receipt、JUnit 或日志。

用 receipt 关联后续步骤

成功建立 Invocation 后,NDJSON 的最后一行包含 receipt。后续脚本可以读取它的 runIds,用明确 Run 审阅或构造 query request:
如果命令在建立 Invocation 前就因输入错误退出,不会有 receipt。此时直接修复命令、Experiment 或选择条件;不要猜测 Run ID。

让反馈保持可读

CI 日志适合阅读当前进程的 progress 和 diagnostic。需要检查业务结果时,AI、脚本或 CI 先运行 query discover,人用 receipt 的 runIds 运行 view