Technical Paper

阶段 2 — 结构化提取

2.5 阶段 2 — 结构化提取

本阶段将文件转换为结构化的收据栏位。公开契约为栏位集合与阶段行为;模型供应商、提示词文字、路由策略、代币预算与重试条件由内部营运层管理。

模型路由边界

Yumo Yumo 在模型无关的界面背后执行结构化提取。营运策略可依语言、文件复杂度、健康状态与品质讯号选择适当的引擎。该策略的排序与备援行为保持私有。

结构化输出 — 带标签的纯文字

模型回传带标签的纯文字栏位,每行一个栏位,而非 JSON 物件。语言模型的 JSON 输出会引入一整类自身的解析失败——未转义的控制字元、未闭合的括号、多余的逗号——单一格式错误的字元就会使整个回应失效。带标签的行则能优雅降级:缺失或格式错误的行只让一个栏位留空,其他栏位仍可解析。

表头栏位以分隔区块到达:

document_type: receipt
merchant_legal_name: MIGROS TICARET A.S.
merchant_display_name: MIGROS
receipt_date: 2026-05-17
currency: TRY
total_paid: 276.71
total_vat: 42.21
payment_method: visa
...

品项以固定栏位顺序的**管线分隔表格(pipe-separated table)**到达:

LINE | NAME | BRAND | QTY | UNIT | UNIT_PRICE | TOTAL | VAT_RATE
1 | SUT 1L | PINAR | 2 | adet | 23.50 | 47.00 | 0.01
2 | ...

栏位集合涵盖商家身分(法定名称、显示名称、已识别品牌、税务识别码、地址片段)、文件中继资料(型别、日期、时间、收据编号、国家、币别)、总额与税额、付款方式与付款证明,以及品项表格。

防御式解析

解析器独立处理每个栏位:缺失的栏位变为 null,格式错误的值变为 null,损坏的品项列被记录并跳过。解析永不抛出例外——管线以已恢复的栏位继续执行,规则层(2.6)再依收据文字验证总额、日期、币别、品项与税额栏位。

一致性处理

若提取携带低品质讯号,或规则层发现不一致,管线可将结果转入审查或重新处理。路径选择由营运参数管理。