feat(ocr): 扫描件与图片识别——OCR 进文字层、资质库上传识别、大图浏览

计划见 docs/architecture/vision-plan.md(VS1–VS13,docs/decisions.md)。

- 验证:OCR(RapidOCR + PP-OCRv6 small,CPU)和 DeepSeek Flash 看图在国动投标文件
  和 7 张证书上初测(tech-validation §7,代码 spikes/s5-ocr/)
- OCR 服务 services/ocr(镜像、Compose 服务):整页转正(含 180°)、红章附近按红色通道重读
- 扫描页和插图识别后并入文字层 v6,句子标 source=ocr;出处标「OCR」(迁移 0013);
  依据识别文字的问题降级,规则不查扫描附件;国动端到端见 check-eval §16
- 资质库上传识别:添加资质对话框最上面传证书照片,识别后填表,只预填和 OCR 文字
  对得上的字段;识别值留痕、照片挂成附件(迁移 0014,提示词 vision.cert_fields v1)
- 资质库改为查看详情(只读键值 + 附件缩略图),附件用大图浏览控件看,不开新标签页
  (设计规范 §7.23);PDF 附件按页出预览图

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
YANG JIANKUAN
2026-11-05 17:50:13 +08:00
parent 0b783ababa
commit 3344f09563
63 changed files with 4973 additions and 345 deletions

View File

@@ -4,6 +4,29 @@
---
## VS1–VS13 · 2026-11-05 · 扫描件与图片识别:视觉模型用 DeepSeek Flash,其余按建议
依据 `docs/architecture/vision-plan.md` §7。
| # | 决策 | 理由 |
|---|---|---|
| VS1 | OCR 自部署 PaddleOCR 系(独立容器),SaaS 和私有化同一套,具体模型 S5 定;不用云 OCR 接口 | 私有化要离线可用,也少一个处理方 |
| VS2 | **视觉模型用 DeepSeek Flash**(`deepseek-chat` 不思考模式),和抽取同一家,不另加供应商 | 用户决定。v0.1 建议另加一家,前提是「DeepSeek 不收图片」,实测是错的:`deepseek-flash`(V4.1)收图片,虚构证书图 8 个字段全对,一张不到 500 token(计划 §2.1)。留意:合成图说明不了真实扫描件,S5 / S6 正式测;单一供应商,故障时抽取和视觉一起停 |
| VS3 | OCR 给文字和坐标、当出处;视觉模型的字段必须引用同一页的 OCR 行并通过校验,对不上进待确认;没有文字依据的判断(签章、图片类型)只做提示或按 S6 定级 | 红线 2:视觉模型给不出可靠坐标,还会「顺手改正」日期和编号 |
| VS4 | OCR 读出的报价数字,OCR 和视觉读数一致才按原级别报,否则降为提示 | 识别错一个数字就是误报的致命问题 |
| VS5 | 不单独计费,沿用现在的扣点;按页数上限和硬预算控成本;资质库识别不扣点、按企业限次 | 用户决定 |
| VS6 | 签章检查前让用户说明这一版是否已盖章;未盖章的不查签章,只进需人工核对 | 电子投标的 CA 签章常在加密上传时才加,检查的那一版往往还没盖 |
| VS7 | 私有化没有视觉模型时降级运行(OCR 照常,分类和字段退回规则、签章退回人工核对),覆盖范围写明 | 不强求客户有 GPU |
| VS8 | 身份证复印件只分类不抽号码;人员证书 V1 前只分类 | 红线 10,用不到的个人信息不抽 |
| VS9 | 顺序:0 验证 → 1 OCR 进文字层、2 资质库识别并行 → 3 附件索引和投标侧证书 → 4 签章有无 → 5 读标里的图片 | 资质库识别独立、见效快 |
| VS10 | 招标文件里的图片、扫描页、图表照样要识别理解,但按重要程度分流:都做 OCR,要求类章节里的、像表格或带要求字眼的、整页扫描的交给视觉模型,装饰图跳过,不重要的只列进覆盖范围(`vision-plan.md` §3.1)。这次不提供扫描版招标文件样本 | 用户要求(2026-11-05):招标文件通常是文字稿,但不能因为是图片就跳过,重要的一定要做 |
| VS11 | 资质库识别一张图按一张证书处理:认出几张时只填第一张并提示,不做多证拆分 | 用户决定(2026-11-05):一图多证极少,不专门兼容 |
| VS12 | 添加资质只有一个入口:对话框最上面传证书照片,识别后自动填进下面的表单;引导文字只写「上传证书照片,自动填写下面的内容」「标『识别』的请对照证书核对」 | 用户决定(2026-11-05):不区分「上传识别」和「手动添加」,文案简洁 |
| VS13 | 第 3 步做证书主体一致性(D14)时要认曾用名:名称对不上但是曾用名时,只提示附更名证明 | 用户确认国动财务报表上的「南京长卿信息技术有限公司」是曾用名,现名「南京长卿科技有限公司」 |
- **影响**:`ai` 模块的调用加图片入参,`vision` 能力不配置单独模型(`BD_AI_MODELS` 留空即用 `deepseek-chat`);架构 §1「OCR:PaddleOCR + 多模态大模型补充」的多模态模型落定为 DeepSeek Flash。
## M6-1–M6-8 · 2026-11-05 · M6 剩下的 P0:全部按建议
依据 `docs/architecture/m6-plan.md` §4。