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):# 從段落中提