Jev 图片与 Box 工作流
仅用于展示的工作流:先判断视觉目标是否存在,再由 Jev 1.14 返回一个 Box 结果供审核。
本页由 Type Safe 独立整理,介绍一套审慎的 Jev 图片工作流:先用 Noul 检查目标是否存在,再通过单目标 Box 定位、坐标校验与人工复核处理结果。图片与 Box 仍处于 Dreamer-ready 实验阶段,尚未达到生产可用状态,请求格式、答案结构和限制可能变化。
- 提供方
- Type Safe Workflow
- 审核日期
- 2026年10月19日
- 项目状态
- 实验性
- 核实状态
- 需要复核
- 分类
- automation, development, research
- 兼容方式
- Jev 1.14, Jev 1.13, Experimental Images, TypeSafe API
输入
- ✓PNG or JPEG image
- ✓One visual target description per Box question
- ✓Human-review confidence threshold
输出
- ✓Target-presence decision
- ✓Single bounding box
- ✓Box confidence
- ✓Review status and audit metadata
工作流步骤
- 1提交前预检 PNG 或 JPEG 格式、尺寸、文件大小,以及是否已获得图片处理授权。
- 2创建不会碰撞的唯一资源引用,并避免在普通应用日志中保存原始图片字节。
- 3添加 TypeSafe-Danger-Zone-Images: true,同时记录实验接口后续可能变化。
- 4读取 answers.target_present.noul 的 0 到 1 存在概率,并使用本地校准的存在性阈值进行路由;模糊值进入人工复核。
- 5每个 Box question 只描述一个目标;多个目标拆成多个问题。
- 6读取该目标对应的单个边界框与置信度。
- 7在下游使用前校验坐标顺序、范围、数值类型与置信度范围。
- 8把低置信度、目标不存在、坐标无效和高影响场景交给人工复核。
- 9记录模型 ID、danger-zone header、请求版本、存在性结果、Box 结果、置信度和审核结论,形成审计记录。
决策任务
- ✓提取
- ✓验证
工作流实施指南
该编辑模式投入实际业务前需要本地评估。测试版本为空表示本站尚未在固定模型版本上执行。
业务问题
视觉决策工作流需要定位一个目标,同时避免把 Box 必然返回的结果误当成目标确实存在的证据。
适用人群
评估实验性视觉提取方案,并需要明确人工复核路径的团队。
模型选择说明
Jev 1.13 与 Jev 1.14 都可接收 danger-zone 实验性图片,但 Box 原语仅支持 Jev 1.14。本编辑页面未进行实时接口测试,不会调用 TypeSafe API,也不代表功能已达到生产可用标准。
已测试模型版本
未知
- 行业
- Software, Document processing, Visual quality review
- 难度
- intermediate
- 预计设置时间
- 2 to 4 hours for a documentation-led prototype
- 兼容模型候选
- jev-1-14, jev
- 所需集成
- TypeSafe API image input, Jev 1.14 Box primitive, Human review process
- 推荐模型
- jev-1-14
详细执行步骤
- 1提交前预检 PNG 或 JPEG 格式、尺寸、文件大小,以及是否已获得图片处理授权。
- 2创建不会碰撞的唯一资源引用,并避免在普通应用日志中保存原始图片字节。
- 3添加 TypeSafe-Danger-Zone-Images: true,同时记录实验接口后续可能变化。
- 4读取 answers.target_present.noul 的 0 到 1 存在概率,并使用本地校准的存在性阈值进行路由;模糊值进入人工复核。
- 5每个 Box question 只描述一个目标;多个目标拆成多个问题。
- 6读取该目标对应的单个边界框与置信度。
- 7在下游使用前校验坐标顺序、范围、数值类型与置信度范围。
- 8把低置信度、目标不存在、坐标无效和高影响场景交给人工复核。
- 9记录模型 ID、danger-zone header、请求版本、存在性结果、Box 结果、置信度和审核结论,形成审计记录。
置信度政策
置信度只能作为路由信号,不能当作正确性保证。需要使用有代表性的标注图片校准复核阈值,并分别跟踪目标误判存在与定位错误的比例。
人工复核政策
Noul 存在概率无效、低于本地校准的存在性阈值或处于模糊区间时必须人工复核;Box 置信度偏低、坐标无效、多目标存在歧义,或结果会影响安全、访问权限、身份、金钱与法律权利时,也必须人工复核。
隐私说明
图片可能包含人脸、身份证件、健康信息或其他敏感数据。应尽量减少收集,确认处理授权与用途,限制访问权限,设置较短的保留期限,并避免在日志中保存原始图片内容和密钥。
成本说明
官方价格按输入 token 计算,图片展开后的表示也会计入请求限制。TypeSafe 尚未公布稳定的展开单位估算,因此本指南不提供图片专属成本预测。
常见失败模式
- ✓即使指定目标不存在,Box 仍会返回一个边界框。
- ✓把置信度误当成定位正确的证明。
- ✓一个 Box question 描述多个目标,导致结果含义不清。
- ✓缺少 danger-zone 图片 header,或实验性请求协议发生变化。
- ✓坐标格式错误、超出范围,或使用了错误的坐标体系。
- ✓敏感图片数据进入日志,或在缺少明确用途时被长期保留。
排查方法
- ✓实现请求前重新核对最新的 Images 与 Box 文档,因为实验性格式和限制可能变化。
- ✓独立运行目标存在性检查,不能根据 Box 答案存在就推断目标存在。
- ✓拆分多目标提示,并逐个检查目标。
- ✓把渲染后的边界框与标注样本对比,并重新校准复核阈值。
- ✓坐标约定或答案字段不符合已验证协议时,暂停自动流程并转交人工。
结构化请求示例
{
"model": "jev-1.14.0",
"state": {
"image_asset": "jev_box_image_01",
"review_threshold": 0.85
},
"assets": {
"jev_box_image_01": {
"type": "image",
"part": "<multipart part reference omitted>"
}
},
"questions": {
"target_present": {
"type": "noul",
"instructions": "Using the image in state field `image_asset`, is the red warning label visible?"
},
"target_box": {
"type": "box",
"instructions": "Using the image in state field `image_asset`, locate the red warning label."
}
}
}Pure Box-answer validator with review examples
typescript ·
type ReviewStatus = 'accept' | 'review';
function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === 'object' && value !== null;
}
function isUnitNumber(value: unknown): value is number {
return (
typeof value === 'number' &&
Number.isFinite(value) &&
value >= 0 &&
value <= 1
);
}
function validateBoxAnswer(
presenceProbability: unknown,
result: unknown,
reviewThreshold = 0.85,
presenceThreshold = 0.8
): ReviewStatus {
if (
!isUnitNumber(presenceProbability) ||
!isUnitNumber(reviewThreshold) ||
!isUnitNumber(presenceThreshold) ||
presenceProbability < presenceThreshold ||
!isRecord(result) ||
!isRecord(result.box)
) {
return 'review';
}
const top = result.box.top;
const bottom = result.box.bottom;
const left = result.box.left;
const right = result.box.right;
const confidence = result.confidence;
if (
!isUnitNumber(top) ||
!isUnitNumber(bottom) ||
!isUnitNumber(left) ||
!isUnitNumber(right) ||
!isUnitNumber(confidence) ||
!(left < right) ||
!(top < bottom)
) {
return 'review';
}
return confidence >= reviewThreshold ? 'accept' : 'review';
}
const officialShape = {
box: { top: 0.1, bottom: 0.6, left: 0.2, right: 0.8 },
confidence: 0.91,
};
const invalidOrder = {
box: { top: 0.7, bottom: 0.3, left: 0.2, right: 0.8 },
confidence: 0.91,
};
const nonNumericConfidence = {
box: { top: 0.1, bottom: 0.6, left: 0.2, right: 0.8 },
confidence: '0.91',
};
const accepted = validateBoxAnswer(0.95, officialShape, 0.85, 0.8); // 'accept'
const wrongOrder = validateBoxAnswer(0.95, invalidOrder, 0.85, 0.8); // 'review'
const ambiguousPresence = validateBoxAnswer(0.55, officialShape, 0.85, 0.8); // 'review'
const nullResult = validateBoxAnswer(0.95, null, 0.85, 0.8); // 'review'
const missingBox = validateBoxAnswer(0.95, { confidence: 0.91 }, 0.85, 0.8); // 'review'
const invalidConfidence = validateBoxAnswer(0.95, nonNumericConfidence, 0.85, 0.8); // 'review'实施建议
在代码审查中明确保留输入和输出定义。模型响应进入数据库、API 或面向客户的操作前,都需要执行校验。