docs(asl): Complete Tool 3 extraction workbench V2.0 development plan (v1.5)

ASL Tool 3 Development Plan:
- Architecture blueprint v1.5 (6 rounds of architecture review, 13 red lines)
- M1/M2/M3 sprint checklists (Skeleton Pipeline / HITL Workbench / Dynamic Template Engine)
- Code patterns cookbook (9 chapters: Fan-out, Prompt engineering, ACL, SSE dual-track, etc.)
- Key patterns: Fan-out with Last Child Wins, Optimistic Locking, teamConcurrency throttling
- PKB ACL integration (anti-corruption layer), MinerU Cache-Aside, NOTIFY/LISTEN cross-pod SSE
- Data consistency snapshot for long-running extraction tasks

Platform capability:
- Add distributed Fan-out task pattern development guide (7 patterns + 10 anti-patterns)
- Add system-level async architecture risk analysis blueprint
- Add PDF table extraction engine design and usage guide (MinerU integration)
- Add table extraction source code (TableExtractionManager + MinerU engine)

Documentation updates:
- Update ASL module status with Tool 3 V2.0 plan readiness
- Update system status document (v6.2) with latest milestones
- Add V2.0 product requirements, prototypes, and data dictionary specs
- Add architecture review documents (4 rounds of review feedback)
- Add test PDF files for extraction validation

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-23 22:49:16 +08:00
parent 8f06d4f929
commit dc6b292308
42 changed files with 16615 additions and 41 deletions

View File

@@ -3,8 +3,8 @@
> **能力定位:** 通用能力层
> **复用率:** 86% (6个模块依赖)
> **优先级:** P0
> **状态:** 🔄 升级中(pymupdf4llm + 统一架构
> **最后更新:** 2026-01-20
> **状态:** ✅ V2 — pymupdf4llm (全文) + MinerU (表格) 双引擎架构
> **最后更新:** 2026-02-23
---
@@ -16,14 +16,46 @@
1. **多格式支持** - 覆盖医学科研领域 20+ 种文档格式
2. **LLM 友好输出** - 统一输出结构化 Markdown
3. **表格保真** - 完整保留文献中的表格信息(临床试验核心数据
3. **表格精准提取** - MinerU VLM 引擎支持合并单元格、数值 100% 保真V2 新增
4. **可扩展架构** - 方便添加新格式支持
---
## 🔄 重大更新2026-01-20
## 🔄 重大更新2026-02-23
### PDF 处理方案升级
### V2: PDF 表格提取引擎 — 统一抽象 + 多引擎可插拔
新建 **PDF 表格提取引擎**,核心理念:**使用者只需提交 PDF、获取结构化表格无需关心底层引擎实现**。
已完成 8 篇真实医学文献的首轮对比测试pymupdf4llm / MinerU / DeepSeekMinerU Cloud API 作为首个接入引擎:
| 对比项 | pymupdf4llm | MinerU API (VLM) | DeepSeek LLM |
|--------|-------------|------------------|--------------|
| 结构化表格检出 | 3 个 (12.5%) | **28 个 (100%)** | 24 个 (85%) |
| 合并单元格 | ❌ | **✅ rowspan/colspan** | ⚠️ 文字描述 |
| 数值精度 | ✅ | **✅ 100% 保真** | ⚠️ 可能翻译 |
| 综合评分 | 2.7/5 | **4.6/5** | 3.4/5 |
**V2 分层架构(全文 + 表格 分离):**
| 引擎 | 定位 | 适用场景 |
|------|------|----------|
| **pymupdf4llm** | 全文文本提取 | 标题摘要初筛、PKB 入库、全文检索 |
| **PDF 表格提取引擎** | 结构化表格 | 全文复筛、系统综述、Meta 分析 |
**表格提取引擎候选 (可插拔)**
| 引擎 | 状态 | 特点 |
|------|------|------|
| MinerU Cloud API (VLM) | ✅ 已接入 (默认) | 表格结构最完整 |
| Qwen3-VL | 📋 待评测 | 多模态理解最强 |
| PaddleOCR-VL 1.5 | 📋 待评测 | 医学场景案例多,免费额度最多 |
| Qwen-OCR + Qwen-Long | 📋 待评测 | 成本最低 |
| Docling (IBM) | 📋 待评测 | MIT 开源,离线部署 |
详见:[PDF 表格提取引擎设计方案](./03-PDF表格提取引擎设计方案.md)
### V1 (2026-01-20): PDF 文本提取升级
| 变更 | 旧方案 | 新方案 |
|------|--------|--------|
@@ -32,11 +64,6 @@
| 多栏布局 | 手动处理 | ✅ 自动重排 |
| 依赖复杂度 | 高GPU | ✅ 低 |
**关键决策:**
- `pymupdf4llm` 是 PyMuPDF 的上层封装,**自动包含 pymupdf 依赖**
- 移除 Nougat 依赖,简化部署
- 扫描版 PDF 单独使用 OCR 方案处理
---
## 📊 支持格式
@@ -75,21 +102,31 @@
## 🏗️ 技术架构
### 统一处理器架构
### V2 双引擎架构
```
┌─────────────────────────────────────────────────────────────┐
DocumentProcessor
│ (统一入口:自动检测文件类型,调用对应处理器) │
├─────────────────────────────────────────────────────────────┤
┌─────────────────────────────────────────────────────────────
文档处理引擎 (V2)
├──────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ ┌─────────────────────────────┐ │
│ │ 全文文本提取 (V1) │ │ PDF 表格提取引擎 (V2 新增) │ │
│ │ │ │ │ │
│ │ pymupdf4llm │ │ 统一抽象层 (可插拔引擎) │ │
│ │ ───────────── │ │ ───────────────────── │ │
│ │ • PDF → Markdown │ │ 当前: MinerU VLM │ │
│ │ • 速度快、免费 │ │ 待测: Qwen3-VL / Paddle │ │
│ │ • 不依赖网络 │ │ 待测: Qwen-OCR / Docling │ │
│ │ │ │ • 统一 ExtractedTable 输出 │ │
│ └─────────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ PDF │ │ Word │ │ PPT │ │ Excel │ │
│ │ Processor │ │ Processor │ │ Processor │ │ Processor │ │
│ │pymupdf4llm│ │ mammoth │ │python-pptx│ │ pandas │ │
│ │ Word │ │ PPT │ │ Excel │ │ CSV │
│ │ mammoth │ │python-pptx│ │ pandas │ │ pandas │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────────┤
输出: 统一 Markdown 格式
└─────────────────────────────────────────────────────────────┘
├─────────────────────────────────────────────────────────────
输出: Markdown 文本 / HTML 结构化表格
└─────────────────────────────────────────────────────────────
```
### 目录结构
@@ -186,15 +223,27 @@ rispy>=0.7.0
## 🔗 相关文档
- [详细设计方案](./01-文档处理引擎设计方案.md) - 完整实现细节
- [PDF 表格提取引擎使用指南](./04-PDF表格提取引擎使用指南.md) - **5 秒上手 + 实战场景** ⭐ 推荐
- [PDF 表格提取引擎设计方案](./03-PDF表格提取引擎设计方案.md) - 统一抽象 + 多引擎可插拔架构
- [详细设计方案](./01-文档处理引擎设计方案.md) - V1 pymupdf4llm 架构
- [使用指南](./02-文档处理引擎使用指南.md) - 全文文本提取 API 调用指南
- [通用能力层总览](../README.md)
- [PKB 知识库](../../03-业务模块/PKB-个人知识库/00-模块当前状态与开发指南.md)
- [Dify 替换计划](../../03-业务模块/PKB-个人知识库/04-开发计划/01-Dify替换为pgvector开发计划.md)
---
## 📅 更新日志
### 2026-02-23 PDF 表格提取引擎升级 (V2)
- 🆕 **新建 PDF 表格提取引擎 — 统一抽象层,底层引擎可插拔**
- 🆕 MinerU Cloud API (VLM) 作为首个接入引擎 (默认)
- 🆕 完成 pymupdf4llm / MinerU / DeepSeek 三方对比测试 (8 篇医学文献)
- 📊 MinerU 综合评分 4.6/5作为默认引擎
- 📋 后续评测计划Qwen3-VL / PaddleOCR-VL / Qwen-OCR+Qwen-Long / Docling
- 📝 创建 [PDF 表格提取引擎设计方案](./03-PDF表格提取引擎设计方案.md)
- 🏗️ 确立分层架构pymupdf4llm (全文文本) + PDF 表格提取引擎 (结构化表格)
### 2026-01-20 架构升级
- 🆕 PDF 处理升级为 `pymupdf4llm`