KnowFlow v2.3.5 知识库支持文档 OCR 审阅:OCR 结果终于能改了,RAG 质量管控前移到源头

0 阅读7分钟

导语:RAG 系统的质量瓶颈,往往不在大模型,而在喂进去的原料。OCR 解析出来的 Markdown 有没有错?标题识别准不准?表格有没有乱?以前你只能等分块完成后看效果碰运气。KnowFlow v2.3.5 把这个"黑盒"打开了——OCR 产物在进入分块之前,就能逐页预览、逐块编辑、逐条修正。

一个被反复踩的坑

做过企业知识库项目的人大概都有这个经历:一份 PDF 文档丢进去解析,分块完成后一看——某个表格被拆成了三段,某个标题把正文第一行也吃进去了,某段公式变成了乱码。

怎么办?调参数,重新解析,重新分块,再看效果。不行?再来一轮。

问题出在哪?出在 OCR 解析这一步。但传统的 RAG 系统里,OCR 和分块是一条流水线跑到底的,中间没有任何人工介入的机会。你能看到的最早结果,是分块之后的文本块。

说白了,等你发现问题的时候,已经晚了一步。

OCR 审阅:在源头把错误拦住

v2.3.5 做了一件看起来简单但影响深远的事:把 OCR 和分块解耦,中间插入一个可视化审阅环节

架构上的变化是这样的:

之前:OCR 解析 → 直接分块 → 用户看到分块结果
现在:OCR 解析 → Markdown 持久化 → 人工审阅/编辑 → 触发分块

文档经过 MinerU 或 PaddleOCR 解析后,OCR 产物(Markdown 文本 + 坐标映射)会被持久化到 MinIO 存储。这时候流程暂停,用户可以进入审阅界面:

  • • 左侧:原始 PDF 页面预览,选中某个文本块时自动高亮对应的 PDF 区域

  • • 右侧:OCR 输出的 Markdown 块列表,支持逐块编辑内容、调整块类型(标题/段落/表格)

  • • 坐标联动:每个 Markdown 块都保留了 OCR 阶段的页面坐标信息,编辑内容时坐标不丢失,确保后续分块的溯源能力不受影响

审阅完成后,点击 Re-chunk 触发分块。如果有未保存的编辑,系统会自动先保存再分块,不会丢失修改。

图片

这个设计的关键在于:OCR 产物有了"版本"概念。系统同时保存原始 OCR 结果和用户修正后的版本,随时可以回退对比。对于那些 OCR 质量参差不齐的扫描件、老旧文档,这个能力几乎是刚需。

标题诊断:OCR 最容易出错的地方,现在有了自动体检

OCR 解析中有一个特别隐蔽的问题:标题误识别

一份技术规范里,"3.2.1 环境温度要求"是标题,但"本标准适用于以下三种情况:"也可能被 OCR 误判为标题。编号列表、长句子、加粗段落——这些都是 OCR 引擎的"重灾区"。

标题识别错了,分块边界就全乱了。一个本该完整的段落被标题切成两半,检索时语义断裂,回答质量直接崩盘。

图片

v2.3.5 新增了标题规则自动诊断,内置四条检测规则:

| 规则 | 检测内容 | 严重程度 | | --- | --- | --- | | 层级跳跃 | H1 直接跳到 H3,中间缺少 H2 | 警告 | | 缺少顶级标题 | 文档从 H2 开始,没有 H1 | 提示 | | 顶级标题过多 | H1 超过 5 个,大概率是误识别 | 警告 | | 标题过长 | 文本超过 80 字符,几乎不可能是标题 | 错误 |

诊断结果实时显示在工具栏上,不用打开对话框就能看到问题数量。

更实用的是正则过滤功能。用户可以输入一个正则表达式(比如 ^\d+[\.\d]*\s+ 匹配"1.2.3 xxx"格式的编号标题),系统会实时预览哪些标题会被保留、哪些会被降级为普通段落。Apply 之前可以反复调整,确认无误再执行。

系统还内置了几个常用预设模式:数字编号标题(1.2.3 xxx)、中文章节格式(第X章/节/条)、大写字母开头——覆盖了中文技术文档最常见的标题格式,开箱即用。

图片

配合层级筛选,你可以只对 H2 和 H3 层级执行正则过滤,不影响 H1。这在处理那些"H1 没问题但 H2/H3 一塌糊涂"的文档时特别有用。

RBAC 权限:改了就生效,不用再等缓存过期

企业客户对权限管理的要求很直接:我把某个用户的知识库权限收回了,他应该立刻看不到,不是等 5 分钟缓存过期后才看不到

这个问题的根源在于 RAGFlow 侧对权限查询做了 Redis 缓存(TTL 机制)。KnowFlow 在自己的数据库里改了权限,但 RAGFlow 的缓存还没过期,用户就会看到"权限已收回但还能访问"的诡异状态。

v2.3.5 的解决方案是:KnowFlow 写权限成功后,主动删除 RAGFlow Redis 中对应的缓存 key

针对不同场景,实现了三种失效策略:

  • • 精确删除:已知用户 ID + 资源类型 + 资源 ID,直接删除对应的 3 个 key(read/write/admin),O(1) 复杂度

  • • 模式匹配:撤销权限时不确定资源类型,用 SCAN 模式匹配删除,非阻塞

  • • 批量失效:团队权限变更影响所有成员,按资源维度批量清理

Redis 连接采用延迟初始化 + 线程安全单例,连接失败时降级为 no-op,不影响主流程。说白了,缓存清理是"尽力而为",不会因为 Redis 抖动导致权限操作本身失败。

RBAC 权限管理 RBAC 权限管理

工程优化:那些不起眼但很重要的改进

除了三个核心特性,v2.3.5 还有一些值得一提的优化:

批量权限检查性能提升。当用户有几十个知识库时,之前是逐个检查权限,现在改为分批请求,并增加了降级放行策略——权限服务短暂不可用时,不会导致整个知识库列表加载失败。

问答输出速度优化。流式输出的响应延迟进一步降低,体感上"第一个字出来"的等待时间明显缩短。

图文混排输出改进。系统预置提示词模板优化后,图片链接会保持在原文对应位置输出,不再被大模型"挪"到回答末尾。

PaddleOCR 修复。图片 caption 填充问题和配置保存后不立即生效的问题都已修复。

版本全景

| 类型 | 内容 | | --- | --- | | 新增 | OCR 结果可视化审阅和编辑(Markdown 预览分块) | | 新增 | 正则分块层级筛选 + 标题规则自动诊断 | | 新增 | RBAC 权限变更主动刷新 Redis 缓存 | | 优化 | 批量知识库权限检查性能(分批请求 + 降级放行) | | 优化 | 问答输出速度提升 | | 优化 | 图片链接保持原文位置输出 | | 修复 | PaddleOCR 图片 caption 填充 | | 修复 | PaddleOCR 配置保存即时生效 |

写在最后

v2.3.5 的主题可以用一句话概括:把质量管控的时机前移

OCR 审阅让你在分块之前就能修正解析错误,标题诊断让你在分块之前就能发现结构问题,权限缓存即时失效让管理操作不再有"延迟生效"的窗口期。

这些能力单独看都不算惊天动地,但组合在一起,解决的是企业 RAG 落地中最实际的问题:可控性

KnowFlow 开源版本已同步更新到 v2.1.8 稳定版本,赋能更多企业落地知识库。欢迎关注公众号 KnowFlow企业知识库 加入交流群或进行商务合作,也欢迎在评论区聊聊你在文档解析中踩过的坑。