使用指南

文档生命周期

说明 Numora 当前内部 OCR 状态如何映射到未来对外 API 的 document.status 模型。

范围

本页说明文档在 Numora 中的流转过程。

同时会明确区分两层状态:

  • 当前应用内部已经在使用的 OCR 状态
  • 未来对外 API 暴露的标准化 document.status

为什么会有两层状态

当前 Numora 应用存储的是偏 OCR 子系统的内部状态,它们更直接反映提取与复核链路。

对外 API 则应暴露一组更小、更稳定的状态模型,方便外部开发者理解,也避免泄露内部实现细节。

当前内部 OCR 状态

当前应用内部使用以下 OCR 状态:

  • pending
  • processing
  • for_review
  • reviewed
  • failed

这些值描述的是现有 OCR 子系统中的提取与复核流程。

对外 document.status 模型

对外 API 应将内部状态归一化为以下 document.status

  • processing
  • review_required
  • reviewed
  • push_pending
  • push_succeeded
  • push_failed
  • failed

在首个公开版本里,前 3 个核心状态通常就足以覆盖文档处理主链路。push_* 状态则用于后续把下游回写结果也合并进文档资源时。

状态映射

当前内部 OCR 状态未来对外 document.status含义
pendingprocessing文档已经被接收,但提取任务还未完成。
processingprocessingOCR 提取或后台处理仍在进行中。
for_reviewreview_required提取已经完成,文档正在等待人工复核或确认。
reviewedreviewed人工复核已经完成,结果已被确认。
failedfailedOCR 提取或必要处理步骤失败。

未来的回写状态扩展

当对外 API 开始在文档资源上暴露下游交付状态时,reviewed 之后可能进一步扩展为:

  • push_pending
  • push_succeeded
  • push_failed

这些状态描述的是“结果写入下游系统”的执行情况,而不是 OCR 提取本身。

推荐生命周期路径

提取并复核

最常见的生命周期是:

pending -> processing -> for_review -> reviewed

对外 API 视角下可归一化为:

processing -> review_required -> reviewed

提取失败

如果 OCR 提取失败:

pending -> processing -> failed

对外 API 视角下为:

processing -> failed

复核完成并进入下游回写

如果文档后续还会进入写回流程:

pending -> processing -> for_review -> reviewed -> push_pending -> push_succeeded

或者:

pending -> processing -> for_review -> reviewed -> push_pending -> push_failed

实现说明

  • 当前 OCR 子系统把 for_reviewreviewedfailed 视为 OCR 维度的终态。
  • 对外 API 不应直接把内部 OCR 状态名原样暴露给开发者,只要已经存在更稳定的标准化状态。
  • 在对外文档中,review_required 应明确被定义为内部 for_review 的外部等价状态。

相关页面