接入前准备
- 准备一个已发布的标准版自定义抽取应用及其
app_id,确认字段名称、类型和表格子字段。 - 获取具有该应用访问权限的 API Key,所有请求携带
X-API-KEY。规则接口使用app_id,无需传入旧版应用密钥。 - 使用异步抽取接口。同步抽取默认不启用协同,高速版自定义抽取不支持协同。
- 首次接入使用专用测试应用,分别准备会命中和不会命中规则的文档,确认规则判断和修正结果后再用于业务。
tenant_name 默认为 laiye,其他部署请使用实际租户名称和地址。
每次请求都要先判断 HTTP 状态,再检查 JSON 顶层
code 是否为 success。HTTP 200 也可能包含业务错误;错误处理应保留 message 和 tips。任务详情只读取接口页列出的业务字段,避免直接记录或转发完整响应。完成一次人工审核
1
2
创建异步抽取任务并保存 ID
调用创建文档抽取异步任务,使用配置规则的同一个应用。成功响应中的 若未返回
data.task_id 用于查询抽取结果;data.metadata.collaboration_task_id 用于查询和修正协同任务。保存两者。collaboration_task_id,先核对应用类型和协同配置;不要使用抽取任务 ID 代替。3
等待协同判断并读取待处理内容
使用 根据任务详情中的
collaboration_task_id 调用查询协同任务。task_state=1 时等待后再查;只有 task_state=2 时提交人工修正。task_state=3 表示自动通过,无需修正。extraction_result 和 collaboration_result 展示审核内容。抽取任务的 data.status 与协同任务的 task_state 是两套状态:抽取成功不代表人工审核完成。4
一次提交需要确认的字段
使用更新协同结果,将下面的请求体保存为 普通字段的
correction.json 并替换任务 ID、字段和值。示例应用包含“发票号码”和“明细”字段,“明细”包含“名称”和“数量”两列。field_values 是字符串数组。表格的 table_values 是“行数组 → 单元格数组”,单元格内的 field_values 是包含 field_value 的对象数组,两种结构不可混用。表格按整块替换。 从任务详情复制完整 table_values,只修改需要修正的 field_values[].field_value,保留所有需要的行、列、field_key 及已有 references 等属性,不要根据显示名称猜测字段标识。示例引用为空;实际结果带有引用时应原样保留,避免修正后丢失文档定位信息。5
回查任务和最终抽取结果
更新成功返回
data.file_status=4。再次查询协同任务,确认 task_state=4,并核对保存的字段值;然后使用原来的抽取 task_id 调用查询文档抽取任务结果。extraction_result 保留原始自动抽取结果;collaboration_result 提供协同审核内容;output_result 提供合并后的最终结果。业务系统应在确认自动通过或人工完成后消费 output_result。ID 与状态
以下状态仅适用于协同任务的
task_state:
接入限制与核验
- 规则维度:整体文档、文档置信度等系统维度,以及显示名称与字段标识不同的字段,目前存在匹配限制。首次接入优先使用名称与标识一致的普通字段,并用命中和不命中的文档验证实际行为。
- 规则启停:查询返回的
rule_status当前不能可靠反映已保存的启停状态。启用或停用后,使用新文档验证实际行为。 - 结果提交:字段名称和类型必须与任务详情一致;只使用
string、date、table。普通字段只提交field_values,表格只提交table_values,不要同时提交两者。不要提交不存在的字段,也不要遗漏值;这些输入可能使任务完成但没有得到预期结果。 - 普通字段多值:提交更少的值时,旧的尾部值可能仍然保留。需要缩减或清空多值字段时,先在测试应用核对行为,不要将短数组视为完整替换。
- 提交后核对:一次提交会完成任务,先收齐需要确认的修改。无论更新返回成功还是错误,都先回查任务状态和保存内容;错误响应也可能发生在内容已保存之后,不要盲目重试。