简单且详细的目录
- 1.简单阶段描述
- 2.阶段展开描述
- 2.1.第一阶段技术:加载文档-读取文档-文本分割(Text splitter)
- 2.1.1.加载读取文档:读取加载的文档内容,通常是将其转化为文本格式
- 2.1.1.1.基于文档解析工具的方法
- 2.1.1.1.1.pdf解析工具
- 2.1.1.1.2.doc、docx解析工具
- 2.1.1.1.3.图片型文档解析工具
- 2.1.1.2.基于深度学习的文档解析方法
- 2.1.1.2.1.版面分析:
- 2.1.2.文档文本处理及单双栏区分
- 2.1.2.1.文本分割(Text split 算法)
- 2.1.2.2.基于文本分割模型的文档文本处理
- 2.1.2.3.版面区分
- 2.2.第二阶段技术:文本向量化(embedding)-存储到向量数据库
- 2.3.第三阶段技术:问句向量化
- 2.4.第四阶段技术:在文本向量中匹配出与问句向量最相似的top k个文本
- 2.4.1. Milvus检索相似向量TopK的基本流程
- 2.5.第五阶段技术:匹配出的文本作为上下文和问题一起添加到prompt中
- 2.6.第六阶段技术:提交给LLM生成回答
- 3.相关链接:
1.简单阶段描述
第一个阶段称为召回阶段,系统会根据用户的提问从文本库或知识库中检索相关的文本片段或知识点,利用传统的检索技术去召回可能的文档候选。
召回阶段的问答优化方案为:
1.优化 text_split 算法,使匹配出的结果作为上下文时能够提供更合理的推理/回答依据;
2.优化 embedding 模型,提升语义向量化的效果,使得语义匹配过程中能够匹配出最满足要求的文本段落作为上下文。
第二个阶段称之为阅读理解阶段,会利用大模型的阅读理解能力,从对应的候选文档里将答案抽取出来。
2.阶段展开描述
如下图所示,
2.1.第一阶段技术:加载文档-读取文档-文本分割(Text splitter)
2.1.1.加载读取文档:读取加载的文档内容,通常是将其转化为文本格式
2.1.1.1.基于文档解析工具的方法
2.1.1.1.1.pdf解析工具
可采用以下工具读取pdf文件数据,拟采用pdfplumber,可解析更全面pdf文件。
2.1.1.1.2.doc、docx解析工具
Python-dox:优点:能够解析docx格式文档;缺点:doc格式文档无法直接解析,需要进行转换为docx格式间接解析。
tika:Python Tika是一个基于Apache Tika的python库,可以解析各种格式的文档,如PDF、Microsoft Office、OpenOffice、XML、HTML、TXT等等。它提供了一种非常方便的方法来获取文档内容,包括元数据、正文、各种格式、图片、表格等等。(注意:需要依赖java环境)
2.1.1.1.3.图片型文档解析工具
Paddleocr,代码示例如下:
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang=“ch”)
img_path = ‘example.jpg’
result = ocr.ocr(img_path,