复杂文档的知识库构建

98 阅读3分钟

问题:

将复杂的知识答疑类文档,转化为知识库内容,便于大模型调用。


问题1:文档中包含大量数学符号及数学公式,但未使用数学公式编辑器进行编辑,全都是图片。

image-20250729163020427.png

问题2:文档中少量包含一些流程图类的图片内容,有的还是拍照截取的书本上的内容。

image-20250729163108116.png


解决方案一:从图片角度处理,保留原格式内容

由于目前多数大模型为文本大模型,多模态大模型较少且不开源,为了保留这些图片,并使大模型正确输出,且能够对文档进行批量处理。可分为4个步骤处理

1、 使用python对文档进行整理,将全部图片统一转化为base64格式,并在文档的原图片位置进行替换,最终输出转化后的txt文档(因base64有编码及格式要求,转化为docx会导致base64编码有误)。

image-20250729163909263.png

2、将转化后的txt文档导入知识库管理工具

3、配置相关提示词,使大模型进行原文输出

【提示词示例】: 请用原文回答我的问题,如果原文是问答对,那么给出问答对的所有内容,如果回答出现[图片_Base64开始]与[图片_Base64结束]将其中间内容放入img标签的src属性下输出:什么是离散系数

输出结果如下:

image-20250729164106948.png

标准原文如下:

image-20250729164141215.png

4、 大模型输出展示进项相关改造,使其能展示img标签内容,即可在前端进行1:1原文的还原展示。

总结: 该方案可对原文档进行近乎自动化的操作,人工内容较少,且还原程度较高。但转化为base64后字节数很高,对大模型输出token限制有较高的要求,需要使用这方面的大模型进行实际测试,对服务器的压力也比较大,一个图片上万个字符数(大约消耗 2500 - 3333 个 token)很常见,如kimi新开源的模型,如果一个回答里有多个这种大图片,应用效果不佳。如使用此方案,最后人工挑选出方案较大的图片采用图片url的方式进行输出,会增加部分人工的工作量。


解决方案二:从数学公式角度处理,可优化展示内容

既然文档中大量的内容是数学公式,我们可以借用OCR识别技术,将其转化为正常的数学公式,再由大模型进行输入输出。无法转换为数学公式的图片,由于内容较少,可放置到一个图床系统里或者放到一个静态文件夹内,在原文档内改为一个内网地址。

可分为四个步骤进行处理:

1、将原文档拆分(人工)为多个小文档,对每个小文档调用大模型,输出转化后的文本内容(基于豆包)

image-20250729165449143.png

2、检查识别错误的内容,找出图片单独进行OCR识别补充(基于豆包)

image-20250729165530347.png

image-20250729165622713.png

3、合并文档输入知识库,配置大模型提示词。(参考方案1)

4、大模型输出展示进项相关改造,使其能展示img标签内容,可展示比原文展示效果更好的且内容1:1还原的答案。

总结:该方案展示效果好,大模型输出内容迅速,计算资源利用少。但需要大量人工整理材料的工作,如果是较为有限的文本,建议采用此种方案。


结论:

两种方案均具有实践可行性,并进行了关键内容的可行性验证。具体要从项目的文档数量进行考虑,数量大采用方案一,数量小采用方案二。