日常使用:掌握 Jev 的五种提问方式
💡 目标:约 1 小时掌握日常的 Jev 使用方法——喂对材料(state)、出对题(Choice / Score / Noul / Box)、读懂答案里的置信度,让每个答案直接变成代码的一个分支。
🎯 阶段目标
- 按材料形状写出三种形态的 state(字符串 / JSON 对象 / 文本数组),并用 dot path 让问题指向具体字段
- 拿到任何判断需求,能选出该用的题型——Choice、Score、Noul 还是 Box——并说出答案里有哪些字段
- 用 confidence 和 Noul 概率设阈值:哪些答案自动执行、哪些标记复核、哪些转人工
⏳ 预计耗时
- 6 课合计约 58 分钟,预留浮动后约 41–75 分钟
- 每课独立成篇,也可按需单读;2.1 State 是其余五课的地基,建议从它开始
🚀 开始之前
- 完成了 安装与第一个请求:
route_ticket.py还能跑,TYPESAFE_API_KEY在环境变量里(从零开始的读者先看快速起步导读) - 知道 Jev 只做结构化判断、不生成文本——没读过的话,先花 8 分钟看 Jev 是什么
- 不想开终端也行:TypeSafe Playground(
console.typesafe.ai/playground)里贴上 state、加上问题,免代码体验 - 一杯水 ☕——这一阶段以建立手感为主,每课代码都不长
📚 本阶段课程
一次 Jev 请求只有两样东西:state(要判断的材料)+ questions(类型化问题)。快速起步阶段你已经发过一次请求;这一阶段把「怎么问」练成本能——第 1 课学喂材料,后 5 课逐一掌握五种提问方式。
先看全貌。questions 的题型有四种:Choice(选择)、Score(打分)、Noul(是非)、Box(图像定位);答案自带的 confidence 告诉你这次判断有多确定。四种题型 + 置信度,就是日常使用要掌握的五种提问方式,各有一课:
| 提问方式 | 回答什么 | 答案里有什么 |
|---|---|---|
| Choice 选择题 | 固定选项里挑哪个 | choice、probabilities(每个选项的概率)、confidence |
| Score 打分题 | 在你定义的有序量表上落到哪级 | score(可落在两级之间,如 0.67)、legend、probabilities、confidence |
| Noul 是非题 | 这个判断为真的概率 | noul(0–1;没有单独的 confidence) |
| Confidence 置信度 | 这个答案有多确定 | 0–1 的单一数字;Choice / Score / Box 答案自带,Noul 没有 |
| Box 图像定位 | 目标在图里的位置 | box(top / bottom / left / right 四条边,各 0–1)+ confidence |
怎么选?官方的选型建议就四句:
- 答案是一组已知选项 → Choice(列表可能不全时,加一个
other或none of the above选项) - 答案在一段光谱上、每一档都描述得出来 → Score
- 干净的是非判断、概率本身就有用 → Noul(0.5 是「五五开」的不确定,不是「中等程度」——要量程度,用 Score)
- 要在图里找东西 → Box(实验特性:官方称 Images / Box 尚未达到生产标准,格式可能随版本变化)
两种题型都适用时,选「答案能被代码直接行动」的那个:Choice 对应几个代码分支,Score 对应一个阈值,Noul 对应一个 if。
课程安排:
| 课程 | 内容 | 时长 |
|---|---|---|
| 2.1 State 状态 | state 三种形态怎么选、把工单组织成结构化 JSON、用 dot path 让问题指向具体字段、在上下文限制内裁剪材料 | 8 分钟 |
| 2.2 Choice 选择题 | 在 criteria 里给全选项、读懂每个选项的 probabilities、列表不全时加 other 选项 | 10 分钟 |
| 2.3 Score 打分题 | 定义有序量表、读懂可落在两级之间的 score、把复杂判断拆成多题在代码里加权合并 | 10 分钟 |
| 2.4 Noul 是非题 | 0–1 概率怎么读、0.7 / 0.3 起点阈值、和 Score 怎么选 | 8 分钟 |
| 2.5 Confidence 置信度 | confidence 从概率分布怎么算、三档用法(自动执行 / 标记复核 / 转人工)、阈值随风险缩放 | 12 分钟 |
| 2.6 Box 与图像 | 图像放进 state 与问题、Box 返回四条边比例、Danger Zone 请求头与 Python SDK 的 Image 支持 | 10 分钟 |
先看一眼:一个请求混着问三种题
题型可以随意混搭,所有题对同一份 state 并行、独立评估——加题几乎不增加响应时间,只多花几题的 token。官方文档的这个例子一次问了是非、选择、打分各一题:
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
state = {
"ticket_message": "My flight was cancelled. Can I get a refund?",
"refund_policy": "Cancelled flights are eligible for a full refund.",
}
with TypeSafeClient() as client:
response = client.system_one(
state=state,
questions={
"refund_requested": Noul(
instructions="Does `ticket_message` request a refund?",
),
"request_type": Choice(
instructions="What is the main request in `ticket_message`?",
criteria={
"refund": "The customer wants money returned.",
"rebooking": "The customer wants a replacement flight.",
"information": "The customer is asking for information only.",
},
),
"frustration": Score(
instructions="How frustrated does the customer appear in `ticket_message`?",
criteria=[
"Calm and neutral.",
"Concerned but civil.",
"Very angry or using strong language.",
],
),
},
)
print(response.answers["refund_requested"].noul)
print(response.answers["request_type"].choice)
print(response.answers["frustration"].score)三个答案各是一个类型化值:概率、选项名、分数——代码里直接 if,不用从生成文本里解析。
⚠️ 中文材料先测再上线
Jev 的主要训练语言是英语,英语材料准确度最好;中文等其他语言能用,但准确度较低。拿中文内容上线前,先用你自己的数据测一轮,重点看 confidence。
🎒 你将收获
- 一套出题直觉:拿到判断需求先想「答案长什么样」——选项、量表、概率还是图上坐标——再选题型
- 读答案的完整能力:
probabilities看分布、confidence看确定度、score连着legend一起读 - 把「不确定」变成代码分支:高置信自动执行、中置信标记复核、低置信转人工
- 图像判断入门:Box 定位加 Danger Zone 开关,为扫描件识别、OCR 核对这类场景打基础
五种提问方式练熟,Jev 的日常使用方法就齐了。接下来两条路任选其一:想搭完整系统,去 高效工作流 学四种官方架构模式;想先看真实项目,场景实战 准备了 15 个完整案例——比如 直播聊天过滤:每条消息一次请求、三个问题,辱骂、剧透、垃圾消息一起判断。
准备好了吗?开始第一课:State 状态 →