RAGflow图像解析与向量化分析
注:需要提前部署好ragflow,才方便一 一对应代码,部署教程:rag部署教程,这样才会方便后续更改
1. 图像解析流程
RAGflow通过多种解析器处理不同类型的文档,其中图像解析是一个重要组成部分。以下是RAGflow处理图像的主要流程:
1.1 PDF文档中的图像处理
PDF文档中的图像处理主要通过RAGFlowPdfParser
类实现,流程如下:
-
图像提取:通过
__images__
方法从PDF文件中提取页面图像# 来源: deepdoc/parser/pdf_parser.py 中 RAGFlowPdfParser 类 self.__images__(filename, zoomin, from_page, to_page, callback)
-
OCR处理:使用OCR技术识别图像中的文本
# 来源: deepdoc/parser/pdf_parser.py 中 RAGFlowPdfParser 类 # 在__ocr方法中进行OCR处理 def __ocr(self, img, page_num):# 检测图像中的文本框# 将字符合并到相应的文本框中# 对没有文本的区域进行文本识别
-
布局识别:通过
_layouts_rec
方法识别文本的布局类型# 来源: deepdoc/parser/pdf_parser.py 中 RAGFlowPdfParser 类 self._layouts_rec(zoomin)
-
表格处理:通过
_table_transformer_job
方法识别表格结构# 来源: deepdoc/parser/pdf_parser.py 中 RAGFlowPdfParser 类 self._table_transformer_job(zoomin)
-
表格和图片提取:通过
_extract_table_figure
方法提取表格和图片# 来源: deepdoc/parser/pdf_parser.py 中 RAGFlowPdfParser 类 tbls, figures = self._extract_table_figure(True, zoomin, True, True, True)
1.2 视觉增强处理
RAGflow支持使用视觉模型增强图像和表格提取:
# 来源: rag/app/naive.py 中 chunk 函数
# 初始化视觉模型
vision_model = LLMBundle(kwargs["tenant_id"], LLMType.IMAGE2TEXT)# 来源: deepdoc/parser/figure_parser.py 中 VisionFigureParser 类
# 创建视觉图像解析器
pdf_vision_parser = VisionFigureParser(vision_model=vision_model, figures_data=figures, **kwargs)# 增强图像提取
boosted_figures = pdf_vision_parser(callback=callback)
1.3 Word文档中的图像处理
Word文档中的图像处理通过Docx
类实现:
# 来源: rag/app/naive.py 中 Docx 类
def get_picture(self, document, paragraph):# 从段落中提