信贷评估 OCR 系统:基于本地 AI 的智能文档处理技术分析
一、概述
1. 项目背景
A. 业务场景
传统的信贷审批流程中,信贷员需要手动审阅 15-20 页的申请文件,耗时数小时才能完成单个案例的数据提取和分析。这种人工处理方式存在效率低下、易出错、难以规模化等问题。
B. 技术方案
Credit OCR System 是一个基于本地 AI 和微服务架构的智能文档处理系统,能够自动从 PDF 和扫描文档中提取、分析、验证财务数据。系统采用完全本地化部署,无需外部 AI API,确保数据隐私和安全。
2. 核心价值
A. 效率提升
处理时间从数小时缩短至 10 分钟以内,实现 90% 以上的效率提升。
B. 数据准确性
通过 AI 模型和业务规则验证,提供置信度评分,支持人工复核确保准确率。
C. 隐私保护
所有处理在本地完成,不依赖外部 API,完全控制数据流向。
D. 可扩展性
微服务架构支持独立扩展各组件,适应业务增长需求。
二、系统架构
1. 核心组件
A. 存储层
- PostgreSQL:存储文档元数据和提取的结构化数据
- Redis:消息代理,支持后台任务处理
- Azurite:Azure Blob 存储模拟器,用于文档文件存储
B. AI 处理层
- EasyOCR:基于深度学习的 OCR 文本提取,支持空间分析和边界框生成
- Ollama:本地 LLM 推理服务器,运行 Llama3.1:8b 模型进行字段提取和验证
C. 应用层
- Celery:分布式任务队列,实现异步文档处理
- FastAPI:Web 服务接口,提供实时处理界面
2. 架构图
graph TB
subgraph "用户界面"
UI[Web Interface]
end
subgraph "API 层"
API[FastAPI Service]
end
subgraph "任务队列"
CELERY[Celery Workers]
REDIS[(Redis Message Broker)]
end
subgraph "AI 处理层"
OCR[EasyOCR Engine]
LLM[Ollama Llama3.1:8b]
end
subgraph "存储层"
PG[(PostgreSQL Metadata)]
BLOB[(Azurite Blob Storage)]
end
subgraph "可视化"
VIZ[OCR Visualization]
end
UI --> API
API --> CELERY
CELERY --> REDIS
CELERY --> OCR
CELERY --> LLM
OCR --> BLOB
LLM --> PG
API --> PG
API --> BLOB
CELERY --> VIZ
VIZ --> BLOBgraph LR
A[文档上传] --> B[OCR 处理]
B --> C[LLM 字段提取]
C --> D[数据验证]
D --> E[可视化生成]
E --> F[阶段存储]
F --> G[状态更新]
G --> H[用户审核]三、核心功能
1. 文档处理流程
A. 文档上传阶段
文档上传到文档管理系统(DMS),携带元数据和二进制存储信息。系统支持多种文档格式,包括 PDF 和扫描图像。
B. OCR 处理阶段
使用 EasyOCR 提取文本,同时进行空间分析并生成边界框信息。OCR 处理保留文本在文档中的位置信息,为后续验证提供基础。
C. LLM 字段提取阶段
本地 AI 模型提取和验证结构化业务数据。系统使用 Llama3.1:8b 模型,通过精心设计的 Prompt 提取关键财务信息。
D. 可视化生成阶段
使用边界框叠加层可视化 OCR 结果,便于质量保证和人工审核。系统能够生成带标注的文档图像,显示识别出的文本区域。
E. 阶段存储阶段
结果按处理阶段(原始、OCR、LLM、标注)组织存储,便于追溯和调试。
F. 数据验证阶段
业务规则验证提取的信息,提供置信度评分。系统支持多文档类型验证,适应不同信贷申请场景。
G. 集成编排阶段
完整的工作流编排,包含错误处理和日志记录。Celery 任务队列确保处理过程的可靠性和可扩展性。
H. 状态跟踪阶段
实时状态更新跟踪文档准备情况和处理阶段。系统提供详细的状态机模型,清晰反映每个文档的处理进度。
I. 异步处理阶段
使用 Celery Worker 进行后台处理,支持可扩展的非阻塞操作。系统能够处理并发请求,适应高负载场景。
J. 用户审核阶段
信贷员可以审核提取的信息、置信度评分和文档叠加层。系统提供直观的 Web 界面,支持人工干预和修正。
2. 技术实现
A. OCR 文本提取
采用 EasyOCR 进行文本识别,支持空间分析和边界框生成。系统通过以下步骤实现高质量 OCR:
- 文档预处理:调整图像质量,去除噪声
- 文本检测:定位文本区域
- 文本识别:识别每个区域的文字内容
- 空间分析:记录文本位置和边界框信息
- 结果后处理:纠正识别错误,优化格式
B. LLM 字段提取
使用本地 Llama3.1:8b 模型进行字段提取,通过精心设计的 Prompt 实现准确的业务数据提取。关键特性包括:
- Few-shot 学习:提供示例引导模型理解任务
- 结构化输出:要求模型返回 JSON 格式的字段数据
- 置信度评估:模型为每个字段提供置信度评分
- 验证机制:业务规则验证提取的数据合理性
C. 异步处理架构
使用 Celery 实现分布式任务处理,支持:
- 任务队列:Redis 作为消息代理
- Worker 扩展:根据负载动态调整 Worker 数量
- 错误处理:自动重试失败任务
- 进度跟踪:实时更新处理状态
- 任务优先级:支持紧急任务优先处理
四、技术栈详解
1. 核心技术
| 技术 | 版本 | 用途 |
|---|---|---|
| Python | 3.10+ | 运行时环境 |
| EasyOCR | 最新 | OCR 文本提取 |
| Ollama | 最新 | 本地 LLM 推理 |
| Llama3.1 | 8b | 语言模型 |
| Celery | 最新 | 异步任务处理 |
| FastAPI | 最新 | Web 服务框架 |
| PostgreSQL | 最新 | 关系型数据库 |
| Redis | 最新 | 内存数据存储和消息代理 |
| Docker Compose | 最新 | 容器编排 |
2. 设计原则
A. 本地优先
所有处理在本地基础设施上完成,不依赖外部服务。这确保了数据隐私和处理可控性。
B. 隐私保护
不使用外部 AI API,不进行数据共享。所有敏感财务数据都在本地处理。
C. 微服务架构
每个服务独立扩展,提高系统弹性。组件之间通过清晰的接口通信。
D. 生产就绪
Docker Compose 编排,包含健康检查和监控。系统设计考虑了实际部署场景。
五、项目结构
1. 教学模块
项目采用渐进式教学结构,共包含 9 个主要模块:
A. 基础设施搭建(notebooks/1-setup/)
系统架构和学习资源,包括可执行的设置指南。
B. OCR 文本提取(notebooks/2-ocr-based-text-extraction/)
EasyOCR 实现、空间分析和生产环境考虑。
C. LLM 字段提取(notebooks/3-llm-field-extraction/)
本地 LLM 处理、Prompt 工程和字段验证。
D. 功能集成(notebooks/4-function-integration/)
完整集成管道,结合 OCR 和 LLM 处理。
E. DMS 上传(notebooks/5-dms-upload/)
文档管理系统实现,适配器设计模式。
F. 文档处理状态(notebooks/6-document-processing-status/)
状态模型和提取任务跟踪。
G. 异步处理(notebooks/7-async-processing/)
基于 Celery 的异步文档处理。
H. API 服务(notebooks/8-api-service/)
FastAPI Web 服务和实时处理界面。
I. 应用设置(notebooks/9-application-setup/)
一键系统启动和验证。
2. 源代码组织
src/
├── config/ # 配置管理
├── dms/ # 文档管理系统模块
├── integration/ # 管道集成模块
├── llm/ # 大语言模型模块
├── ocr/ # OCR 处理模块
├── storage/ # 存储抽象模块
├── tasks/ # Celery 任务模块
└── visualization/ # 可视化模块六、应用场景扩展
1. 相关领域
该系统展示的架构模式可用于:
A. RAG 系统
文档预处理 → 向量数据库 → AI 生成。系统展示的文档处理管道可直接应用于检索增强生成场景。
B. AI Agent 架构
微服务 → 多 Agent 通信。系统的服务编排模式为构建复杂 AI Agent 系统提供了参考。
C. 企业文档智能
法律、医疗、研究文档处理。系统的验证和可视化机制适用于各类专业文档分析场景。
D. 合规系统
自动化文档分析和验证。系统的业务规则验证模块可扩展到合规检查领域。
七、部署要求
1. 系统要求
A. 硬件配置
- 最低配置:8GB RAM,15GB 磁盘空间
- 推荐配置:16GB RAM,25GB 磁盘空间
- CPU:多核处理器(Intel/AMD x64 或 Apple Silicon)
B. 软件依赖
- Python 3.10+
- Docker Desktop
- UV 包管理器
- Git(可选)
2. 端口配置
系统使用以下端口,需确保无冲突:
| 服务 | 端口 | 用途 |
|---|---|---|
| PostgreSQL | 5432 | 数据库 |
| Redis | 6379 | 消息代理 |
| Ollama | 11435 | LLM 推理 |
| Azurite | 10000 | 对象存储 |
八、技术亮点
1. 架构创新
A. 分阶段存储
系统将处理结果按阶段组织存储,便于追溯和调试。每个阶段的结果都独立保存,形成完整的处理历史。
B. 空间分析保留
OCR 处理保留文本的空间位置信息,为可视化提供基础。这种设计使得系统能够生成带标注的文档图像。
C. 置信度评分
为每个提取的字段提供置信度评分,支持智能人工审核。系统可以优先展示低置信度字段,提高审核效率。
D. 状态机模型
清晰的文档处理状态跟踪,便于监控和调试。状态转换由系统自动管理,确保处理流程的正确性。
2. 工程实践
A. 教学导向
项目采用渐进式教学结构,每个模块都有详细的 README 和可执行的 Notebook。
B. 生产就绪
虽然是教学项目,但系统设计考虑了生产环境的实际需求,包括错误处理、日志记录、健康检查等。
C. 可扩展性
微服务架构和异步处理模式使系统能够轻松扩展以应对增长的业务需求。
D. 本地化部署
完全本地化的解决方案,无需依赖外部服务,确保数据隐私和系统可控性。
九、影响分析
1. 行业影响
A. 金融科技
系统为金融行业提供了一个实用的 AI 文档处理解决方案,降低了 AI 技术的应用门槛。
B. 开源社区
项目以教程形式开源,为学习 AI 文档处理提供了完整的参考实现。
C. 技术普及
通过本地化部署方案,使更多组织能够采用 AI 技术,无需考虑数据隐私和成本问题。
2. 技术趋势
A. 本地 AI
项目展示了本地 AI 模型的实用价值,验证了在特定场景下本地模型可以媲美云端 API。
B. 微服务 AI
系统的微服务架构为构建复杂 AI 应用提供了参考模式。
C. AI + 传统业务
项目展示了如何将 AI 技术与传统业务流程深度整合,实现真正的业务价值。
十、各方反应
1. 项目数据
- GitHub Stars:179
- Forks:55
- 主要语言:Jupyter Notebook
2. 技术价值
项目作为完整的教程,涵盖了从基础设施搭建到生产部署的全流程,对学习 AI 文档处理的开发者具有重要参考价值。