在构建RAG运行时,一个**的上班就是构建常识库,进而以便于在实践启动问答时能够更准确地检索到文档内有关于疑问的关系高低文消息。而常识库文档的一大起源来自于pdf格局文件,这类文件通常是富文本的,蕴含图片,表格等,且不可间接解析,必定经过一些技术手腕将其拆分识别构成可被后续解决的文本文件,如text或markdown。
“Quility in,Quility Out”是构建高品质RAG的指点思维,因此,文档解决流程第一步——加载解析就变得尤为关键,也是很多RAG框架表现其**长处的中央之一,比如RAGFlow 的**组件DeepDoc应用OCR、规划识别、表格解析等技术提取文字,图片等外容。llamaindex推出了llamaparse自动解析复杂内容的pdf,提取文字,图片,表格等消息,并默逞强入为markdown格局文件。
最近产生了一个新的工具gptpdf(),翻新的经常使用了视觉大言语模型(如 GPT-4o)将复杂PDF 解析为 markdown,成功十分繁复,**代码仅有293行,但简直可以完美地解析排版、数学公式、表格、图片、图表等,每页平均老本为0.013 美元(GPT-4o接口费用)。
其**成功流程分为两步,如下所示:
1、经常使用 PyMuPDF 库,对 PDF 启动解析出一切非文本区域,并做好标志.
2、经常使用视觉大模型(如 GPT-4o)启动解析,获取 markdown 文件.
GPT-4o的自动揭示词为,关于别的大模型可以联合成果表现启动调整:
DEFAULT_PROMPT = """经常使用markdown语法,将图片中识别到的文字转换为markdown格局输入。你必定做到:1. 输入和经常使用识别到的图片的相反的言语,例如,识别到英语的字段,输入的内容必定是英语。2. 不要解释和输入有关的文字,间接输入图片中的内容。例如,严禁输入 “以下是我依据图片内容生成的markdown文本:”这样的例子,而是应该间接输入markdown。3. 内容不要蕴含在```markdown ```中、段落公式经常使用 $$ $$ 的方式、行内公式经常使用 $ $ 的方式、疏忽掉长直线、疏忽掉页码。再次强调,不要解释和输入有关的文字,间接输入图片中的内容。"""DEFAULT_RECT_PROMPT = """图片中用白色框和称号(%s)标注出了一些区域。假设区域是表格或许图片,经常使用 ![]() 的方式拔出到输入内容中,否则间接输入文字内容。"""DEFAULT_ROLE_PROMPT = """你是一个PDF文档解析器,经常使用markdown和latex语法输入图片的内容。"""
整个经常使用也比拟繁难,可以繁难地集成到现有的RAG流程中或是独自经常使用。
from gptpdf import parse_pdfapi_key = 'Your OpenAI API Key'content, image_paths = parse_pdf(pdf_path, api_key=api_key)print(content)
gptpdf-ui名目在此基础上封装为web服务,允许在线解析和预览。
本文转载自,作者: