RAG 实战-PDF解析

在RAG智能问答项目中,最基础也是最重要的事情是文档解析,文档解析的好,才能更好的按照语义进行chunk,从而更好的进行向量匹配和内容召回。

由于PDF的格式和板式非常复杂多变,尤其是PPT转的PDF,情况更加复杂。下面说下PDF的处理步骤。

第一步:PDF字符串提取

利用PDF内容提取工具pdfplumber 提取出pdf字符

第一步:进行OCR内容提取

对每页的内容进行ocr提取,推荐使用paddleocr 效果不错。

提取出文字块,效果如下图:

在这里插入图片描述

第三步:板式识别

利用目标识别模型进行识别,我用的yolov8,数据集大概5000张,训练300轮即可。

在这里插入图片描述
识别的类别包括:

文本
标题
配图
配图标题
表格
表格标题
页头
页尾
参考引用
公式

第四步:获取板式识别框里面的内容

把前面获取的坐标区域和坐标内的文字,和板式区域坐标对比,如果在这个板式区域内,说明是属于这个板式。最后把相同板式编号的内容聚合在一起。就获取到这个板式区域内的所有内容。

关于PPT 版本的PDF

如果想做的更好,建议使用多模态大模型进行处理,推荐使用qwen-vl系列。


我的创业项目-破浪问答上线了,欢迎合作交流。

都说RAG demo三天,做好半年,果然不假,因为我真的做了半年。

做不起来,就开源hhh

破浪问答官网

### DeepSeek RAG 实战项目示例与教程 构建基于 **DeepSeek Retrieval-Augmented Generation (RAG)** 的管道涉及多个组件的集成,包括检索模块(ChromaDB)、生成模型(DeepSeek-R1 或其他变体),以及用于协调流程的应用框架(如 LangChain)。以下是关于如何实现这一目标的具体说明: #### 1. 技术栈概述 为了成功部署一个完整的 RAG 系统,通常会采用以下工具和技术: - **DeepSeek-R1**: 提供强大的自然语言理解和生成能力[^1]。 - **LangChain**: 负责管理对话历史记录并简化复杂工作流的设计。 - **ChromaDB**: 支持高效的向量存储和相似度查询操作。 通过上述组合可以创建出既能快速响应又能保持高精度回复质量的服务平台。 #### 2. 数据准备阶段 在正式进入编码之前, 需要准备好训练数据集或者已有知识库作为后续检索的基础素材。这一步骤可能涉及到文件转换(比如 PDF 至纯文本), 结构化表格解析等内容提取过程. 对于多模态文档的理解,则可借助像 Donut 这样的预训练模型来完成图像到序列的任务转化[^3]. #### 3. 向量化索引建立 利用 ChromaDB 创建自定义数据库实例并将经过处理后的语料转化为对应的嵌入表示形式存入其中以便于后期查找最接近提问意图的相关片段. ```python from chromadb import Client client = Client() collection = client.create_collection("my_knowledge_base") for doc in documents: collection.add( embeddings=[doc.embedding], metadatas={"source": doc.source}, ids=[doc.id] ) ``` #### 4. 查询逻辑设计 当接收到用户的输入请求时,先调用预先设定好的匹配算法找出若干候选答案项;再把这些选项传递给大型语言模型进行最终润色加工形成连贯流畅的回答输出. ```python retrieved_docs = [] query_result = collection.query(query_texts=[question], n_results=5) for result in query_result['ids'][0]: retrieved_doc = Document(id=result, content=retrieved_content[result]) retrieved_docs.append(retrieved_doc) response = langchain.run(question, context_documents=retrieved_docs) print(response) ``` #### 5. 应用场景举例 此类解决方案非常适合应用于客服聊天机器人、企业内部搜索引擎等领域当中去解决特定行业内的专业知识获取难题。例如,在医疗健康咨询方面可以帮助医生更便捷地查阅最新研究成果摘要信息而无需花费大量时间翻阅原始论文全文资料[^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值