01PDF 进入知识库后发生了什么

给医院做诊疗或者其他任何智能体时,为了提高准确性,大家自然而然的都会想到把临床指南作为 RAG 的输入参考。但当我第一次把指南的 PDF 文件扔进 Dify 的知识库时,人都傻了。

人眼能清楚看出的双栏排版,进了知识库后全混成一段;表格更夸张,一个单元格里本来有三行内容,解析后却和其他单元格拼成新的段落。文本全部乱掉后,这些内容作为知识库的输入,基本失去了参考价值。

找到 MinerU 以后,这些问题基本得到了解决。能够快速地将一份文档转换为 Markdown 格式,同时整体的效果看起来都还不错。但转换后第一次审阅,又发现两个问题。

02一、不合理换行

一句话还没说完就被断开。更麻烦的是,这些断行传到 Dify 知识库后,内容会被切到不同 chunk 里,直接影响检索效果。

03二、公式/符号乱码

很多数字和符号被强制转成公式,多出不少 Markdown 或 LaTeX 符号。但在 Dify 知识库里,这些符号不会被正确转义,导致信息不准确。典型的就是“≥”会被换成“$\geq$”。

04人工核对与脚本修复

换行的问题尝试让 AI 写过几次处理脚本,但很快发现由于指南的格式多样,换行错误不统一,脚本很难兼容所有情况,最后选择了人工核对。

公式部分就简单很多。因为错误类型基本一致,AI 写的脚本大部分都能改对。趁着人工核对换行错误时再积累下没有考虑到的 badcase,交给 AI 迭代脚本,这部分都很快能比较稳定的完成。

至于为什么一个交给脚本、一个交给人?因为公式处理有很高的确定性和很强的一致性。靠脚本、靠代码就能稳定完成,没有必要引入大模型这个不完全可控的工具。而换行部分,当时实测下来人比大模型更快、更稳定,且正常有理解能力的人都能完成,为了进度还是直接上人可靠。不过这是一年前做的探索了,换成现在的模型来处理,表现可能会有所不同。

05真正有价值的往往不只是文字

大部分的文本处理好以后,发现对于一份指南而言,最有价值的部分可能是这些文字以外的内容:诊疗的流程图、用药方案判断表格等。如果这些被忽略,指南价值会大打折扣。

下一篇,我会继续分享关于指南中表格和图片处理的思路及实现方法。