从PDF到精准答案:Coze助力RAGFlow框架提升数据召回率

[复制链接]
发表于 2025-10-10 07:56:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
作者:后端小肥肠
  
  🍊 有疑问可私信或批评区接洽我。
  🥑 创作不易未经答应严禁转载。
  
  姊妹篇:
  基于RAGFlow当地摆设DeepSeek-R1大模子与知识库:从设置到应用的全流程分析_rowflow 当地摆设-CSDN博客
  解锁DeepSeek-R1大模子微调:从练习到摆设,打造定制化AI会话体系_fairseq-CSDN博客
  10分钟上手DeepSeek开辟:SpringBoot + Vue2快速构建AI对话体系_springboot deepseek-CSDN博客
  目次
1. 前言
2. 数据结构化实战
2.1. 什么是RAG召回率?
2.2. 为什么要举行数据结构化?
2.3. PDF文件洗濯:MinerU
2.4. 基于DeepSeek+Coze举行数据标注和分块
3. RAGFlow结果测试
4. 资料获取
5. 结语


1. 前言

在天生式人工智能(Generative AI)快速发展的当下,大语言模子(LLMs)的幻觉题目始终是制约其落地应用的关键瓶颈。检索增强天生(RAG)技能通过引入外部知识库,将动态检索与天生本事联合,为办理这一困难提供了紧张思绪。然而,RAG体系的核心性能——数据召回率,高度依靠于底层数据的质量与构造情势。尤其是一些范畴文献,原始数据常以非结构化情势(如PDF论文、扫描文档、图像表格)存在,且包罗冗余、噪声和碎片化信息。若未颠末深度洗濯与结构化处置惩罚,检索体系大概陷入“垃圾进,垃圾出”的逆境,导致语义明确毛病、关键信息遗漏以致误导性结果天生。
本文以学术文献PDF分析为例,基于RAGFlow框架完备演示从原始文档洗濯(MinerU工具)、结构化分块(DeepSeek+Coze标注)到知识库构建的全流程,并通过对比实验验证结构化处置惩罚对召回率的提升结果,话不多说,正文开始~
温馨提示:本文RAG框架为RAGFlow,对RAGFlow不相识的读者可以移步:基于RAGFlow当地摆设DeepSeek-R1大模子与知识库:从设置到应用的全流程分析_rowflow 当地摆设-CSDN博客
2. 数据结构化实战

2.1. 什么是RAG召回率?

在RAG(检索增强天生)模子中,召回率是权衡体系从知识库中检索到与用户查询干系信息的本事。高召回率意味着体系可以或许准确找到更多干系的文档,为天生模子提供更丰富的上下文,从而进步天生内容的质量。
召回率的盘算公式为:


此中,干系文档的数目指知识库中全部真正干系的信息,乐成检索到的干系文档数目是体系检索到并与题目干系的文档数目,高召回率确保天生模子得到更多有用的信息,从而提升答复的准确性。数据的结构化和高效的检索机制是进步召回率的关键因素。
2.2. 为什么要举行数据结构化?

在信息检索与知识管理体系中,数据的结构化处置惩罚对于提升检索服从、优化存储管理以及增强信息关联性具有紧张作用。特别是在基于检索增强天生(Retrieval-Augmented Generation, RAG)的方法中,底层数据的构造方式直接影响体系的召回率和天生质量,很多初学者在第一次打仗RAG时都会直接把原始数据丢进RAGFlow框架举行分块,结果就是RAG答复结果很差,要想提升RAG的答复结果,数据预处置惩罚是很紧张的,本节就以实际场景为例,一步一步教会各人怎样举行数据结构化。
迩来,毕业季到来,同砚们写论文时都要大量阅读范畴文献,从前我上学那会我记得都是要花一个月左右时间来研读参考文献然后归纳总结,现在我们可以通过将范畴文献举行结构化之后导入知识库,让AI辅助我们研读范畴文献的内容,以下是我恣意找的几篇文献:


要把上述范畴文献投喂给RAG,而且具有较高的召回率,我们必要履历几个步调:



  • 文献洗濯与去噪
    洗濯是数据结构化的第一步。文献中的噪声,如无关的图片、广告、版权声明、重复内容等,必要被去除。通过自然语言处置惩罚(NLP)技能,去除文本中的干扰信息,生存核心内容,进步数据的质量。
  • 文献数据标注与分块
    在洗濯后的文献数据中,必要根据主题、章节、关键术语等信息举行标注。这一过程可以或许将文献分别为多少个故意义的部分(如段落、节、图表等),并为每个部分赋予标签。通过标注和分块,信息之间的关系可以被更好地构造和存储。
  • 知识库构建与索引
    将结构化的数据导入RAGFlow的知识库中,并创建索引。RAGFlow支持多种嵌入模子,将文本转换为向量,捕获语义信息,常用于文本相似度盘算和检索。将天生的文本块向量存储在向量数据库中,并创建索引,以便快速检索。
  • 检索与天生优化
    使用RAGFlow的相似性检索功能,使用近似迩来邻搜刮算法,在向量数据库中查找与用户题目向量最相似的文本块。体系从检索到的文本块中提取关键信息,并与用户题目融合,构建增强上下文。将融合后的上下文输入大型语言模子(LLM),天生准确且有据可依的答复。
2.3. PDF文件洗濯:MinerU

固然RAGFlow也可以分析PDF,但是我发现RAGFlow在处置惩罚复杂结构和多模态内容的PDF文档时,在分析精度和内容提取方面还是存在肯定的范围性,于是我去网上找了干系工具,发现了一个叫MinerU(https://github.com/opendatalab/MinerU)的开源数据提取工具,在处置惩罚PDF文档时,MinerU相比RAGFlow自带的文件洗濯功能有以下上风:



  • 多模态内容分析本事
    MinerU接纳先辈的文档分析技能,可以或许准确辨认和提取PDF中的文本、图片、表格等多种元素。这种多模态分析本事确保了文档内容的完备性和准确性,为后续的数据处置惩罚和分析奠基了坚固根本。
  • 智能化的内容洗濯与去噪
    在文档洗濯过程中,MinerU可以或许自动辨认并剔除广告、版权声明、无关图片等干扰信息。这种智能化的洗濯功能有用提升了数据质量,确保了知识库中信息的干系性和可靠性。
  • 机动的格式转换与导出功能
    MinerU支持将分析后的文档内容导出为Markdown等多种格式,方便用户检察和编辑。这种格式转换功能进步了文档处置惩罚的机动性,满足了差异用户的需求。
MinerU可以当地摆设,如下图所示:


也可以直接用网页版本https://huggingface.co/spaces/opendatalab/MinerU我用的就是网页版:


将PDF上传分析,分析乐成后可将结果下载到当地:


打开.md文件,可以看出我们的PDF文件已经被很好地分析了:


2.4. 基于DeepSeek+Coze举行数据标注和分块

2.3末节我们完成了PDF文档开端洗濯,接下来还要剔除文档内里的图片(没有笔墨的),给文档举行分块与标注,这种长文本(范畴文献)的分块就按照大章节来分块就行,根本一个章节就是一块完备内容。打开颠末MinerU洗濯后的.md文件:


在上图中#就代表一级标题,也就是这篇文献的标题,##代表二级标题,我想以二级标题分块,每个分块反面自动追加分块标识符+###,每个分块打上标签,标签为章节和正文,类似下面的结果:
  1. [文献的标题]章节:章节题目
  2. [文献的标题]正文:章节下面的正文
  3. +###
复制代码
上面形貌的数据分块和尺度可以用代码来做,也可以用Coze来做,为了让对代码不熟悉的读者也可以举行RAG数据结构化,我在Coze新建了一个工作流用于举行数据结构化:


下面我来依次讲授一下每个节点:
开始:起始节点,用于传入MinerU洗濯过后的文件(.md文件)。
read:资助用户阅读文档内容,输入文档链接,返回文档内容,现在支持html、xml、doc、docx、txt、PDF、csv、xlsx格式。(由于它不支持.md文档,必要把MinerU洗濯过后的.md文件改为.txt后缀)


大模子:这个节点紧张是用来给文件内容打标签和分块的,抱负的结果是每个大章节反面加上分块标识+###作为分块标记,每个分块内里必要有章节标签来尺度章节标题,有正文标签标注正文,提示词我是让DeepSeek辅助我写的,大模子我选的kimi(长文本):


提示词:
  1. # 角色
  2. 你是一位经验丰富的数据清洗专家,专注于对用户输入的数据转换而来的文本进行精细化处理,以实现高质量的数据清洗效果。
  3. ## 技能
  4. ### 技能 1: 精准删除图片内容
  5. 仔细辨认文本中所有以![]()格式呈现的图片内容,将其精确删除,确保仅保留纯粹的文本信息。无论是何种来源的PDF数据转换后的文本,都要严格执行此操作。
  6. ### 技能 2: 基于章节标题准确提取章节内容
  7. 依据不同层级的章节标题对文本进行细致划分,将文本分割成不同的章节。按照章节出现的顺序,自动将章节标注为“章节”标签,之后紧跟对应的章节标题。同时,识别并提取文本中的一级标题(#)的标题内容,将其作为一个变量。
  8. ### 技能 3: 规范章节格式
  9. 每个 **二级标题(##)** 章节结束后,追加特殊符号 +###,并确保每个章节之间有清晰的换行。每个章节的内容以“正文:(对应正文)”标签开头,紧接着是去除图片链接后的正文内容。对于PDF数据中的文本处理结果,必须严格遵循此格式要求。
  10. ### 技能 4:提取 文章题目
  11. 从文本中识别并提取文本中的一级标题(#)的标题内容作为文章题目。
  12. ### 技能 5:在各分块标签添加题目
  13. 在每个“章节”标签以及“正文”标签处,都添加上提取的文章题目作为前缀,格式为“[文章题目]章节:[章节标题]” 、“[文章题目]正文:(对应正文)”。
  14. ## 输出格式要求:
  15. 1. **章节标识**:
  16.    • 遇到 ## 格式的章节标题,自动标注为“[文章题目]章节”,并准确提取其中的标题内容。
  17.    • 若出现其他章节标识,也按照顺序自动标注为“[文章题目]章节”并依次编号,同时正确提取标题。
  18.    
  19. 2. **正文标识**:
  20.    • 正文部分的内容严格标注为“[文章题目]正文:(对应正文)”,正文是每个章节中相应标题(如 ## 或 ###)后的文本内容。
  21.    • 彻底删除正文中所有图片链接(![]()格式的部分),保证正文为纯文本。
  22. 3. **格式要求**:
  23.    • **仅在** ##(二级标题)章节的结束后追加符号 +###,其他章节(如 ###)后不追加此符号。
  24. ### 示例:
  25. #### 输入:
  26. ## 第一章
  27. 这是第一章的内容,里面有图片和文字。
  28. ![](images/firstimage.jpg)
  29. 继续第一章的内容。
  30. ### 第二章
  31. 这是第二章的内容,删除图片后只剩下文字部分。
  32. ![](images/secondimage.jpg)
  33. 继续第二章的内容。
  34. ## 第三章
  35. 这是第三章的内容,无图片,直接展示内容。
  36. 文章题目为:示例文章
  37. #### 输出:
  38. [示例文章]章节:第一章
  39. [示例文章]正文:这是第一章的内容,里面有文字部分。
  40. +###
  41. [示例文章]章节:第二章
  42. [示例文章]正文:这是第二章的内容,删除图片后只剩下文字部分。
  43. [示例文章]章节:第三章
  44. [示例文章]正文:这是第三章的内容,无图片,直接展示内容。
  45. +###
  46. ## 限制:
  47. • **仅专注处理文本中的图片内容以及基于章节标识的章节内容**,不涉及其他文本处理需求。
  48. • 务必严格删除文本中的所有图片链接,确保输出仅为文本主体内容。
  49. • **仅在##(二级标题)章节的结尾追加符号+###**,不在其他章节格式后追加。
  50. • **必须保证每个章节的结尾准确追加符号+###**,且各章节之间换行清晰,以确保数据处理结果的格式规范。
  51. • 仅处理符合要求格式的文本输入,对于不符合格式的输入,需明确提示用户检查输入格式是否正确。
复制代码
竣事:吸取数据洗濯后的的文本结果:


结构化后的文本实现了我想要的结果。
关于怎样让DeepSeek辅助写提示词,我的做法是给DeepSeek设定了一个脚色,提示词大概是如许的:你是一个提示词专家,可以根据用户提出的需求写出专业的提示词,到达终极目的,我给你一个模板,你必要相识这个模板的结构,之后写提示词就按照模板来写:(放你本身找的模板,可以把我上面谁人数据洗濯专家的提示词丢给他)。
让他明确本身的身份之后,就可以形貌你想写什么样的提示词了:


这是我本身写提示词的方法,假如你有更好的方法可以在批评区分享哦~
3. RAGFlow结果测试

这里为了突出数据结构化的结果,我们必要做一个对比,起首把未颠末任那边置惩罚的PDF文件丢进RAGFlow:


从分块上就可以看出不是很抱负,再来测一下数据召回:


看一下数据源,下图内里的数据源和我的题目完全没对上:


之厥后测一下做了结构化以后的数据,在设置时间必要把分块标识符设置进去:


数据分块结果:


可以看出来分块比力公道,完全按照了我预想的规则举行了分块,然后测一下数据召回:


看一下数据源,下图中的数据源美满对应上了我提出的题目:



从上面测试的结果来看,数据结构化有助于极大幅度提升数据的召回率,固然,每种数据集都有差异的分块方式,打标签的方式也会因数据集的差异有所差异,这个必要本身去逐步探索,对这块有看法的读者也可以私信大概批评区一起互换一下。
4. 资料获取

假如你对DeepSeek的干系知识还不熟悉,可以关注gzh后端小肥肠,点击底部【资源】菜单获取DeepSeek干系教程资料。
5. 结语

本文通过RAGFlow框架的实战演示,体系性地验证了数据结构化对提升RAG体系召回率的核心代价。从PDF洗濯(MinerU工具)、文天职块(DeepSeek+Coze标注)到知识库构建,每一步的风雅化处置惩罚都显着低沉了噪声干扰,使语义检索的精准度实现质的飞跃。实验结果对比表明,未经处置惩罚的原始数据会导致“语义漂移”,而结构化后的数据召回率得到大幅提升,印证了“数据质量决定AI天花板”的行业共识。
假如本文对你有资助,请动动小手点点关注哦~小肥肠将连续更新AI干系干货知识和洽用工具。


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表