开发者生态
morning
使用 Unsiloed 和 TypeSafe Jev 进行文档审查
摘要
An extraction pipeline can read a value correctly and still pass bad data downstream. A clearly printed extra zero survives excellent optical character recognition (OCR). Using Unsiloed and TypeSafe’s...
the
and
Jev
Unsiloed
our
can
Noul
extraction
value
printed
2026-10-13
1 阅读
约7分钟阅读
ritzaco
字号:
提取管道可以正确读取值,但仍将不良数据传递到下游。清晰打印的额外零可确保出色的光学字符识别 (OCR)。结合使用 Unsiloed 和 TypeSafe 的 Jev 可以帮助我们检查文档中的 OCR 失败和常见错误。 Unsiloed 提取结构化字段并将其定位在页面上。杰夫根据重点问题来判断提取的信息。我们可以结合这些结果来决定哪些字段需要审查。 Jev 将焦点问题转化为键入的答案 Jev 请求将其考虑的信息(状态)与其做出的决策(问题)分开。在我们的工作流程中,状态包含提取的 Unsiloed 记录以及解释它们所需的上下文。每个问题都会告诉 Jev 要检查什么以及要返回哪种答案类型;它还可以定义可能答案的标准。类型决定了我们的代码接收的内容。 Noul 返回某个陈述为真的概率。 Choice 从命名选项中进行选择;分数评估有序级别的标题。 Choice 和 Score 还返回概率分布和总结其浓度的置信值。 Noul 没有单独的置信域。如图所示,这三种类型可以在单个请求中共享状态。稍后,我们将在示例中仅使用 Noul。 Noul 值为 0.04 意味着我们的问题有 4% 的概率为“是”,而为“否”。这并不意味着“Jev 有 4% 的信心”。靠近两端的值表示明确的方向;接近中间的值值得谨慎。将 Unsiloed 的提取字段发送给 Jev,然后路由结果 Unsiloed 保留打印内容并提供置信度分数,帮助识别不明确的读数。对于我们的示例,我们使用包含六行的药物列表。咖啡渍掩盖了一个剂量,而另一行则包含清晰打印但令人难以置信的数量。我们将跟踪提取和杰夫的检查。我们的提取模式定义了 Unsiloed 应为每种药物返回的字段。它要求完整的剂量单元,包括数量和单位,而无需纠正令人惊讶的数量或猜测通常处方实践中模糊的文本。使用enable_itations=true启用源引用,并在构建Jev的状态之前等待提取作业完成。每个字段都有两个 Unsiloed 置信度分数:extraction_score 衡量提取值的置信度,而 grounding_score 衡量该值位于文档中的置信度。两者的范围都是从零到一。引文标识了其页面和边界框,即源文本周围的矩形。以下是保存的响应中的染色西替利嗪剂量,其像素坐标位于原始 1,200 × 1,500 图像上: { "value": "1 Tablet", "score": { "grounding_score": 0.76, "extraction_score": 0.74 }, "itation": { "page": 1, "bbox": [582, 975, 649, 994], "page_width": 1200, "page_height": 1500 } } 为每个药物行分配一个 ID,例如 row-5 ,并将其与提取的字段及其引用一起保留。这可以让我们的代码稍后与 Jev 对同一行的答案相匹配。保留引文,以便审阅者可以在原始页面上找到每个提取的字段。向 Jev 发送提取的值和上下文。它会判断指令是否为提取的,而无需查看图像或 Unsiloed 分数。我们每行问一个努尔问题:这种药物的剂量和频率是否合理?所有六行共享一个请求,每个问题独立评估。在连接两个 API 的服务器端模块中,构造此请求(一行及其显示的问题): const request = { model: "jev-1.13.0", state: { context: "检查是否有明显的数量、单位或频率错误。" + "剂量是指每次服用的数量,而不是供给数量。" + "不评估患者特定的安全性或提出更正。", careContext: "成人门诊用药核对,年龄 52", Medicines: [{ id:“row-5”,药品:“西替利嗪 10 毫克片剂”,剂量:“1 片”,频率:“根据需要每天一次”,途径:“口服”,说明:“用于过敏症状。” }] }, 问题: { "row-5": { type: "noul", instructions: { 问题: "提取的剂量和频率在其表面上合理吗?" + "该药物的表面以及所述成人的强度" + "门诊环境,没有明显的数量或" + "频率转录错误?", row_id: "row-5" }, criteria: { true: "表面上合理;没有明显的数量、单位或频率错误。", false: “显然难以置信;需要对原始处方进行审查。” } } } };此处缩短了上下文和标准;记录的请求包含确切的文本和所有六行。我们使用第 5 行作为问题 ID,以便我们的代码可以匹配该行的答案。我们还将其作为 row_id 包含在指令中,以便 Jev 知道要判断哪个记录:问题 ID 不会发送到模型。将请求以 JSON 形式发布到 https://api.typesafe.ai/v1/systemone 。使用 Authorization: Bearer header 中的 TypeSafe API 密钥进行身份验证,keepi
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱