ScoreMatch 保持纯函数;defineJudge、现成 factory 与高级受管 defineScoreMatch 都走同一条 Assertion 路径。
声明评分定义
在模块顶层写出标准。rubric 说明评价维度,anchors 给连续质量量尺提供可校准的落点:
anchors 时,NiceEval 使用 0 和 1 两个默认端点。measurement 可以是 [0,1] 中的任意有限数值;
端点不是二元输出限制,也不是模型置信度。
选择评价材料
把完成判断所需的值直接交给t.judge。Eval 的 judge 只用于为这道题指定模型配置:
change 与
explanation,无需把对象先拼成文本。NiceEval 在登记 Assertion 时生成有界 JSON 快照;之后修改原对象不会改变请求。
需要观察图片内容时,在材料中放入 judgeImage({ body, mediaType })。它冻结 PNG 或 JPEG 字节,不创建另一个裁判,也不发起额外请求。图片和文字经同一次 Judge 调用发送,并保存在同一条断言的证据中。接线步骤见 附加图片材料。
t.judge(material, explainsRisk) 与 t.check(material, explainsRisk) 都登记一条测量 Assertion。它们会共享材料快照、预算、求值、审计、结果保存和 handle;没有 Match 允许列表。
直接使用现成 Judge
roott、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。
某道评估只需换模型时,写下这一项即可:
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 的图片部分。