跳转到主要内容
Judge 用独立裁判模型评估事实一致性、摘要忠实度和说明质量。它是一种受管 evaluator。普通自定义 ScoreMatch 保持纯函数;defineJudge、现成 factory 与高级受管 defineScoreMatch 都走同一条 Assertion 路径。

声明评分定义

在模块顶层写出标准。rubric 说明评价维度,anchors 给连续质量量尺提供可校准的落点:
省略 anchors 时,NiceEval 使用 0 和 1 两个默认端点。measurement 可以是 [0,1] 中的任意有限数值; 端点不是二元输出限制,也不是模型置信度。

选择评价材料

把完成判断所需的值直接交给 t.judge。Eval 的 judge 只用于为这道题指定模型配置:
材料使用字符串、有限数字、布尔值、null、数组和普通对象。字段名应表达应用语义,例如 change 与 explanation,无需把对象先拼成文本。NiceEval 在登记 Assertion 时生成有界 JSON 快照;之后修改原对象不会改变请求。 需要观察图片内容时,在材料中放入 judgeImage({ body, mediaType })。它冻结 PNG 或 JPEG 字节,不创建另一个裁判,也不发起额外请求。图片和文字经同一次 Judge 调用发送,并保存在同一条断言的证据中。接线步骤见 附加图片材料。 t.judge(material, explainsRisk) 与 t.check(material, explainsRisk) 都登记一条测量 Assertion。它们会共享材料快照、预算、求值、审计、结果保存和 handle;没有 Match 允许列表。

直接使用现成 Judge

root t、Session 与 Turn 都提供现成方法,并返回 Assertions 的 MeasurementAssertionHandle<Kind>。例如:
closeQA(selector, question, options?) 将全部命中材料保序交给一次 Judge。问题是只依据材料回答的验收问题,不是预设答案。 Agent 的 closeQA(question, options?) 默认使用该 Turn、Session 或 Attempt 的完整正式历史,包含消息与工具事实。它不会只挑最后一句或成功操作。 显式 EventMatch 选择三类事件视图;工具输入和回执问答使用 ToolMatch,或自定义 MaterialMatch。 这些写法都组合评分 Match 并交给同一个 check。usedNoTools() 等应用断言则封装固定判据,不接受另一个 Match。 满足条件为1,条件不成立为0,证据不足为 unavailable。完整空集为0且不调用模型;材料缺失或超限不能补零或截断后评分。 Adapter 通过 create 提供应用 ctx,defineMaterialMatch 的同步 reader 在断言登记时读取当前只读 ctx。 selector 的 predicate 只判断单项;and 约束同一项。普通存在性用 t.check(selector).gate(),整组问答用 t.closeQA(selector, question).gate(0.8)。 factuality、faithfulness、instructionFollowing 与 pairwisePreference 接收显式材料,构造 Match 后交给同一 check。

配置裁判 Provider

项目配置用具名 Provider 工厂显式选择服务。下例连接 OpenAI 或显式兼容网关:
| TypesafeProvider | TypeSafe System One | TYPESAFE_API_KEY | 四个工厂都从 niceeval/judge 导出。Vercel 工厂表示 AI Gateway,不表示 Vercel Sandbox 或通用 AI SDK model object。 某道评估只需换模型时,写下这一项即可:
这里继续使用全局 Provider 的端点、凭据来源和执行限制,只替换 model。 Eval 和 Experiment 也能提供完整 Provider;这会整体替换服务、默认模型和限制。 没有按 hostname、模型前缀或已存在的 key 猜测服务的规则。 NiceEval 使用所选 Provider 的受管协议请求取得有限 [0,1] measurement 和公开 rationale。聊天服务使用 forced-function 请求,TypeSafe 使用 /systemone。未配置模型或 Key 时不会发送网络请求,Assertion 为 unavailable。传输失败或超时是 unavailable;HTTP 400、协议不兼容或非法响应是 errored。静态配置校验不会探测网络。 TypeSafe 使用 /systemone 协议。它支持 score、classify 和 batch classify,但不支持 extract。 因此 faithfulness() 在 TypesafeProvider 上得到 unavailable,不会改为整体估分或更换分母。

Threshold 与分数

通过制与计分制都在登记后的 handle 上调用 .gate(minimum) 形成质量门。计分制还可调用 .score(points),贡献值为 measurement 乘 points。gate 与 score 可任意先后组合,两种方式都只执行一次 Judge。 成功请求保存实际发送的固定材料。路径、URL、alt 或普通 base64 字符串不是视觉输入;只有显式图片材料会转换为模型 API 的图片部分。