RAGFlow:基于OCR和文档解析的下一代 RAG 引擎
RAGFlow是一款基于深度文档理解构建的开源RAG(检索增强生成)引擎。以下是对它的详细介绍:
核心功能
- 深度文档理解:基于“quality in, quality out”的理念,能够从各类复杂格式的非结构化数据中提取有价值的信息。对于用户上传的文档,它可以自动识别文档的布局,包括标题、段落、换行等,还能处理难度较大的图片和表格,并结合表头信息处理表格内容,确保以合适的形式将数据存入数据库。
- 可控可解释的文本切片:提供多种文本模板,用户可根据需求选择,以确保结果的可控性和可解释性。文本切片过程可视化,支持手动调整,答案提供关键引用的快照并支持追根溯源,从而降低幻觉的风险。
- 兼容各类异构数据源:支持丰富的文件类型,包括Word文档、PPT、Excel表格、TXT文件、图片、PDF、影印件、复印件、结构化数据、网页等。对于无序文本数据,能自动提取关键信息并转化为结构化表示;对于结构化数据,能挖掘内在语义联系,并将两种不同来源的数据统一进行索引和检索,为用户提供一站式的数据处理和问答体验。
- 自动化RAG工作流:支持全面优化的RAG工作流,可适用于从个人应用到超大型企业的各类生态系统。大语言模型LLM以及向量模型均支持配置,用户可根据实际需求自主选择。基于多路召回、融合重排序,权衡上下文语义和关键词匹配两个维度,实现高效的相关性计算。提供易用的API,方便集成到各类企业系统,便于二次开发和系统集成工作。
技术架构
- 文档解析器:是RAGFlow系统的“大脑”,负责将各种格式的文档进行解析,从中提取出文本、图像和表格等关键内容,为后续处理打下基础。
- 查询分析器:作为“神经系统”,对用户的查询进行深入分析,识别并提取出查询中的关键信息,使系统更准确地理解用户需求,为检索工作提供精确指导。
- 检索组件:相当于“搜索引擎”,使用查询分析器提供的关键信息,从海量文档中快速检索出与之相关的信息,确保用户及时获得所需数据。
- 重排组件:扮演“过滤器”的角色,对检索到的信息进行排序和过滤,去除冗余和不相关的数据,提高信息的准确性和可用性,确保最终呈现给用户的信息是最相关、最有价值的。
- LLM:作为“语言生成器”,负责将排序后的信息整合并生成最终的答案或输出。其强大的生成能力不仅能确保答案的准确性,还能使答案表达得更加自然和流畅。
DeepDoc
DeepDoc是RAGFlow的核心组件,利用视觉信息和解析技术对文档进行深度理解,提取文本、表格和图像等信息。其功能模块包括:
- OCR技术:支持多种语言和字体,能够处理复杂的文档布局和图像质量。
- 布局识别技术:使用Yolov8进行OCR、布局识别和TSR(表格结构识别),识别文档的布局结构,如标题、段落、表格、图像等。
- 表格结构识别(TSR):识别表格的结构,如行列、表头、单元格合并等,并将其转换为自然语言句子。
- 文档解析:支持解析PDF、DOCX、Excel和PPT等多种文档格式,并提取文本块、表格和图像等信息。