流程概述¶
DocuSnap-Backend 系统支持三种主要的业务流程:文档处理、表单处理和表单自动填充。这些流程共享相似的处理架构,但在细节上有所不同,以适应不同的业务需求。本页面提供这些流程的概述。
主要业务流程¶
DocuSnap-Backend 系统支持以下三种主要业务流程:
- 文档处理流程:
- 将文档图像转换为文本
- 分析文档结构和内容
- 提取关键信息
-
生成结构化的文档数据
-
表单处理流程:
- 将表单图像转换为文本
- 识别表单字段和值
- 提取字段-值对
-
生成结构化的表单数据
-
表单自动填充流程:
- 分析空白表单结构
- 匹配用户提供的信息与表单字段
- 生成填充后的表单数据
- 标识缺失的必要信息
通用处理架构¶
尽管三种业务流程在细节上有所不同,但它们共享一个通用的处理架构:
graph TD
A["客户端请求"] --> B["请求验证与解密"]
B --> C["任务创建与队列"]
C --> D["OCR 处理"]
D --> E["LLM 处理"]
E --> F["结果存储"]
F --> G["响应加密与返回"]
H["状态查询"] --> I["结果检索"]
I --> J["响应生成"]
这个通用架构包括以下关键步骤:
- 请求接收与验证:
- 接收客户端的加密请求
- 解密请求数据
-
验证请求参数和格式
-
任务管理:
- 创建任务记录
- 将任务添加到处理队列
-
分配工作线程处理任务
-
OCR 处理:
- 处理图像,提取文本内容
- 并行处理多个图像
-
合并 OCR 结果
-
LLM 处理:
- 根据任务类型构建提示
- 调用 LLM API 分析文本
-
解析 LLM 响应
-
结果处理:
- 存储处理结果
- 更新任务状态
-
加密响应数据
-
状态查询:
- 客户端查询任务状态
- 检索任务结果
- 返回状态或结果
流程差异¶
虽然三种业务流程共享通用架构,但它们在以下方面存在差异:
1. 提示构建¶
每种流程使用不同的提示模板引导 LLM 进行特定类型的分析:
- 文档处理:提示 LLM 分析文档结构、识别标题、段落、列表等,提取关键信息
- 表单处理:提示 LLM 识别表单字段和值,提取字段-值对
- 表单填充:提示 LLM 将用户提供的信息与表单字段匹配,生成填充后的表单数据
2. 输入参数¶
不同流程接受不同的输入参数:
- 文档处理:仅接受文档图像
- 表单处理:仅接受表单图像
- 表单填充:接受表单图像和用户提供的信息
3. 结果格式¶
不同流程生成不同格式的结果:
- 文档处理:生成包含文档结构和内容的 JSON 数据
- 表单处理:生成包含字段-值对的 JSON 数据
- 表单填充:生成包含填充字段和缺失字段的 JSON 数据
4. 处理策略¶
不同流程使用不同的处理策略:
- 文档处理:侧重于理解文档结构和内容
- 表单处理:侧重于准确识别字段和值
- 表单填充:侧重于信息匹配和推断
数据流图¶
下图展示了 DocuSnap-Backend 系统中的数据流:
这个数据流图展示了从客户端请求到响应的完整数据流向,包括请求处理、任务执行、结果存储和响应处理等阶段。
异步处理模式¶
DocuSnap-Backend 系统采用异步处理模式,将请求接收和任务处理分离,提高系统响应能力和并发处理能力:
- 请求接收:
- 客户端发送请求
- 系统快速创建任务并返回任务 ID
-
客户端不需要等待处理完成
-
异步处理:
- 工作线程从队列获取任务
- 执行 OCR 和 LLM 处理
-
存储处理结果
-
状态查询:
- 客户端使用任务 ID 查询状态
- 系统返回当前状态或处理结果
- 客户端可以定期轮询或实现回调机制
这种异步处理模式适合处理耗时的 OCR 和 LLM 操作,避免客户端长时间等待,提高用户体验。
错误处理¶
DocuSnap-Backend 系统实现了全面的错误处理机制,确保流程的可靠性和稳定性:
- 请求验证错误:
- 参数缺失或格式错误
- 解密失败或签名验证失败
-
返回适当的错误代码和消息
-
处理错误:
- OCR 处理失败
- LLM API 调用失败
- 结果解析失败
-
记录错误信息,更新任务状态
-
系统错误:
- 数据库操作失败
- 资源不足
- 服务不可用
- 记录详细错误日志,返回通用错误消息
错误处理机制确保系统能够优雅地处理各种异常情况,提供清晰的错误反馈,并尽可能地恢复正常操作。
在接下来的页面中,我们将详细介绍每种业务流程的具体实现和数据流向。