Noul — Jev 里的是非题
Noul 是 TypeSafe 的 Jev 模型三种提问类型之一。它问一个是非题,并以「答案为是」的概率作答,取值 0 到 1。
Noul 问一件可能为真也可能为假的事,并以一个 0 到 1 之间的数作答:它为真的概率。接近 1 是强烈的「是」,接近 0 是强烈的「否」,接近 0.5 则意味着是与否大致等可能。
最后那种情况正是 Noul 比布尔值更值钱的原因。被迫返回 true 或 false 的模型,即使文本并不支持任何一边也必须选边站;Noul 可以递回 0.51,让你的代码察觉自己其实什么也没拿到。
一个真实的答案
发给 jev-1.13.0。下面的数字就是回来的东西。
订单 #88213 到货时屏幕裂了。我已经拿到三天了。我不想要换货,只想请你们退钱。
问题
这条消息是在要求退款吗?
几乎肯定是
答案为「是」的概率
否 抛硬币 是
0.99——这条消息用明明白白的话排除了主要的另一种可能(「我不想要换货」),所以模型几乎没有什么可犹豫的。大多数真实输入不会这么干净,这也正是数字比结论更重要的原因。
请求与响应原文
请求
{
"state": "Order #88213 arrived with a cracked screen. I have had it three days. I do not want a replacement, I would just like my money back please.",
"model": "jev-latest",
"questions": {
"requests_refund": {
"type": "noul",
"instructions": "Does this message request a refund?",
"criteria": {
"true": "The customer asks for money back",
"false": "The customer wants a repair, a replacement, or something else"
}
}
}
}响应
{
"model": "jev-1.13.0",
"answers": {
"requests_refund": {
"type": "noul",
"noul": 0.99
}
}
}答案里有什么
- type "noul"
- 与提问类型对应。
- noul number
- 答案为「是」的概率,从 0(否)到 1(是)。
规则与限制
-
criteria是可选的。它接受一个true和一个false描述,把问题两边各自的含义写清楚。 - Noul 的答案没有
confidence字段——这一点和 Choice、Score 不同。概率本身已经描述了不确定性:0.5 就是模型在说它不知道。
什么时候该用 Noul
- 问题确实只有两面——这是不是在要求退款、这是不是重复提交、这里有没有提到截止日期。
- 你想要一个由自己掌握的阈值。0.9 自动执行,0.6 标记待查,中间的一律转人工。
- 你想廉价地多问一个推测性的问题,只在它触发时才去读。
什么时候该换别的
- 真正的问题有三个或更多答案。把它拆成好几个 Noul 会招来互相矛盾的「是」;该用 Choice,它会强制概率之和为一。
- 你评的是强度而不是真假。「这紧急吗」丢掉了「有点」和「火烧眉毛」之间的差别,而 Score 会留住它。