|
| 1 | +# doc-qna-openvino |
| 2 | + |
| 3 | +> 飞桨黑客松第 10 期 · 文心合作伙伴赛道 |
| 4 | +> 进阶任务 #13:基于 OpenVINO 的多模态文档理解与智能应用开发 |
| 5 | +> GitHub ID:[bob798](https://github.com/bob798) · 截止日期:2026-06-05 |
| 6 | +
|
| 7 | +基于 **PaddleOCR-VL + OpenVINO** 的产品文档智能入库与客服问答系统。 |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## 是什么 |
| 12 | + |
| 13 | +把产品手册/规格书/扫描件这类异构文档,端到端转成可被自然语言提问的知识库: |
| 14 | + |
| 15 | +``` |
| 16 | +PDF / 图片 |
| 17 | + │ |
| 18 | + ▼ |
| 19 | +[ PDF 预处理 ] pdfplumber 文字层判断 + pypdfium2 渲染 |
| 20 | + │ |
| 21 | + ▼ |
| 22 | +[ PaddleOCR-VL ] OpenVINO 加速推理 → 结构化 Markdown |
| 23 | + │ |
| 24 | + ▼ |
| 25 | +[ 表格感知切片 ] 表头 + 行 chunk · 段落 200~500 字符 · 元数据 {doc, page, section} |
| 26 | + │ |
| 27 | + ▼ |
| 28 | +[ Embedding + 检索 ] BGE-small (OpenVINO) → ChromaDB |
| 29 | + │ |
| 30 | + ▼ |
| 31 | +[ LLM 生成 ] Qwen2.5 INT4 (OpenVINO GenAI) → 带来源引用的回答 |
| 32 | +``` |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## 目录结构 |
| 37 | + |
| 38 | +``` |
| 39 | +doc-qna-openvino/ |
| 40 | +├── README.md 本文档 |
| 41 | +├── TODO.md 任务清单 + 关联仓库索引 |
| 42 | +├── docs/ 项目文档 |
| 43 | +│ ├── 进阶方案.md 已提交并通过的 RFC 方案 |
| 44 | +│ ├── 项目计划.md 按 Phase 1~5 拆周推进 |
| 45 | +│ ├── 开发手册.md 每个 Phase 的目标 / 步骤 / 验证标准 |
| 46 | +│ ├── 技术介绍.md 技术科普(OpenVINO / PaddleOCR-VL) |
| 47 | +│ ├── 差异化分析.md 与现有 notebooks 的差异论证 |
| 48 | +│ ├── 打卡记录.md 打卡任务 #1 提交记录 |
| 49 | +│ └── 周报/ 每周周报存档 |
| 50 | +├── openvino/ 代码主体(详见子目录 README) |
| 51 | +│ ├── README.md Phase 1+2 运行指南 |
| 52 | +│ ├── requirements.txt |
| 53 | +│ ├── configs/models.json |
| 54 | +│ ├── src/ 推理封装 / PDF 预处理 / 解析 / 切片 / 管线 |
| 55 | +│ ├── scripts/ Benchmark + 端到端 CLI |
| 56 | +│ ├── data/ 10 张测试图 + 3 份测试 PDF |
| 57 | +│ └── results/ 脚本运行产出 |
| 58 | +└── assets/ 截图等静态资源 |
| 59 | +``` |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## 快速开始 |
| 64 | + |
| 65 | +```bash |
| 66 | +git clone https://github.com/bob798/doc-qna-openvino |
| 67 | +cd doc-qna-openvino/openvino |
| 68 | +python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate |
| 69 | +pip install -r requirements.txt |
| 70 | + |
| 71 | +# 1. 准备 PaddleOCR-VL OpenVINO IR(参考 openvino/README.md) |
| 72 | +# 2. 跑 Phase 1 Benchmark |
| 73 | +python scripts/benchmark_inference.py |
| 74 | +python scripts/benchmark_ocr_quality.py |
| 75 | +# 3. 跑 Phase 2 端到端管线 |
| 76 | +python scripts/run_phase2_pipeline.py --pdf_dir data/test_documents --out results/phase2 |
| 77 | +``` |
| 78 | + |
| 79 | +详细说明见 [`openvino/README.md`](openvino/README.md)。 |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +## 进度 |
| 84 | + |
| 85 | +| Phase | 内容 | 状态 | |
| 86 | +|-------|------|------| |
| 87 | +| 1 | 环境搭建 + 模型验证 + 推理 Benchmark | 🔄 代码完成,待 IR 落地后跑实测数据 | |
| 88 | +| 2 | 文档解析 + 表格感知切片模块 | 🔄 代码完成,本地烟囱测试通过 | |
| 89 | +| 3 | RAG 问答链路(Embedding + ChromaDB + LLM) | ⬜ 未开始 | |
| 90 | +| 4 | Tesseract vs PaddleOCR-VL 对比评测 + 优化 | ⬜ 未开始 | |
| 91 | +| 5 | 整理 Notebook + README + requirements + 提交 | ⬜ 未开始 | |
| 92 | + |
| 93 | +完整时间表见 [`docs/项目计划.md`](docs/项目计划.md)。 |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 关联仓库 |
| 98 | + |
| 99 | +> 本仓库 `doc-qna-openvino` 仅承载 OpenVINO 路径(进阶任务 #13)。其他赛题 / 提交材料拆分到独立仓库: |
| 100 | +
|
| 101 | +| 内容 | 仓库 | |
| 102 | +|------|------| |
| 103 | +| 高通赛题(基于 QNN 部署 PaddleOCR-VL) | [`bob798/paddleocr-vl-qnn`](https://github.com/bob798/paddleocr-vl-qnn) | |
| 104 | +| 进阶任务 #26 小伴(提交材料) | [`bob798/xiaoban`](https://github.com/bob798/xiaoban)(`submission/` 子目录)| |
| 105 | + |
| 106 | +--- |
| 107 | + |
| 108 | +## 周报 |
| 109 | + |
| 110 | +提交至 [PFCCLab/Camp](https://github.com/PFCCLab/Camp),路径 `WeeklyReports/Hackathon_10th/ERNIEPartner/ERNIEPartner_13_bob798/`。 |
| 111 | + |
| 112 | +| 周次 | 时间窗口 | PR | 本地存档 | |
| 113 | +|------|----------|----|----------| |
| 114 | +| W1 | 2026.04.25 ~ 2026.05.08 | [#598](https://github.com/PFCCLab/Camp/pull/598) | [`docs/周报/W1_2026-05-08.md`](docs/周报/W1_2026-05-08.md) | |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## 链接 |
| 119 | + |
| 120 | +- 赛道总览 Issue:https://github.com/PaddlePaddle/Paddle/issues/78485 |
| 121 | +- PaddleOCR-VL:https://huggingface.co/PaddlePaddle/PaddleOCR-VL |
| 122 | +- OpenVINO Notebook(PaddleOCR-VL):https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/paddleocr_vl |
0 commit comments