什么是RAGFlow?
RAGFlow是一款基于深度文档理解构建的开源RAG(Retrieval-Augmented Generation)引擎。它为各种规模的企业及个人提供一套精简的RAG工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
作为一个端到端的RAG解决方案,RAGFlow在开源首日即获得了GitHub千星,目前已接近3000星。它采用了完全重新研发的智能文档理解系统,而非现成的RAG中间件(如LangChain、LlamaIndex等),确保数据从"Garbage In Garbage Out"变为"Quality In Quality Out"。
在线Demo
想要快速体验RAGFlow的强大功能?请访问官方演示网站:https://demo.ragflow.io
近期更新
• 2025-05-23: Agent新增Python/JavaScript代码执行器组件 • 2025-05-05: 支持跨语言查询 • 2025-03-19: PDF和DOCX中的图像支持用多模态大模型解析得到描述 • 2025-02-28: 结合互联网搜索(Tavily),对于任意大模型实现类似Deep Research的推理功能 • 2024-12-18: 升级了DeepDoc的文档布局分析模型 • 2024-08-22: 支持用RAG技术实现从自然语言到SQL语句的转换
核心功能
? "Quality in, quality out"
• 基于深度文档理解,能够从各类复杂格式的非结构化数据中提取真知灼见 • 真正在无限上下文(token)的场景下快速完成大海捞针测试 • 智能识别文档布局,包括标题、段落、换行、图片和表格等元素 • 针对表格进行精细处理,结合表头信息确保以合适形式送入数据库
? 基于模板的文本切片
• 不仅仅是智能,更重要的是可控可解释 • 多种文本模板可供选择,包括Q&A、Resume、Paper、Manual、Table、Book、Law等 • 根据不同行业和岗位需求,提供定制化的文档处理方案 • 支持智能化、可解释的数据分块方式,提高处理效率和透明度
? 有理有据、最大程度降低幻觉(hallucination)
• 文本切片过程可视化,支持手动调整 • 有理有据:答案提供关键引用的快照并支持追根溯源 • 清晰展示检索结果来源,确保生成答案有据可依 • 支持文本分块的可视化,便于人工干预和校对
? 兼容各类异构数据源
• 支持丰富的文件类型,包括Word文档、PPT、Excel表格、TXT文件、图片、PDF、影印件、复印件、结构化数据、网页等 • 无缝处理多种数据格式,方便用户整合不同来源的数据 • 提供更全面的信息基础,增强检索和生成质量
? 全程无忧、自动化的RAG工作流
• 全面优化的RAG工作流可以支持从个人应用乃至超大型企业的各类生态系统 • 大语言模型LLM以及向量模型均支持配置 • 基于多路召回、融合重排序,同时进行关键词全文搜索和向量搜索 • 提供易用的API,可以轻松集成到各类企业系统 • 从0.8版本开始提供完整的基于图的任务编排框架,支持无代码方式编辑任务和工作流
系统架构
RAGFlow的系统架构由以下关键组件构成:
1. 文档解析层:自动识别和处理各种文档格式,解析出文档中的文字、标题、段落、换行、图片和表格等元素。 2. 嵌入表示层:利用嵌入模型将每个文本块转换为向量表示,捕捉文本的语义和特征。 3. 索引存储层:将生成的文本块向量存储在向量数据库中,并建立索引,以便快速检索。 4. 相似性检索层:使用近似最近邻搜索算法,在向量数据库中查找与用户问题向量最相似的文本块。 5. 信息提取与筛选层:从检索到的文本块中提取关键信息和有用的内容,并进行筛选和整理。 6. 上下文构建层:将提取和筛选后的信息与用户的问题进行融合,构建一个包含外部知识的增强上下文。 7. 模型输入与文本生成层:将融合后的上下文作为输入传递给预训练的大型语言模型(LLM),生成回答文本。
Agent功能与Agentic RAG
从0.8版本开始,RAGFlow正式步入Agentic时代,提供了以下重要功能:
• 基于图的任务编排框架:后端提供完整的基于图的任务编排系统,支持复杂工作流设计 • 无代码编辑任务和工作流:前端支持无代码方式编辑任务和工作流,降低使用门槛 • Python/JavaScript代码执行器:支持在安全沙箱中执行代码,扩展RAG应用能力 • 查询意图识别:引入查询意图来决定如何对话,提升交互质量 • Self-RAG机制:对检索结果进行打分和重写,优化输出质量 • 反思能力:包含"环"的图编排系统,而非普通的有向无环图(DAG)工作流
应用场景
RAGFlow广泛应用于需要动态生成内容且依赖外部知识库的场景,如:
• 智能客服:实时从企业知识库中检索相关信息,为客户提供准确、个性化的解答 • 合同管理:快速提取合同中的关键条款和信息,方便企业进行合同审查、风险评估和管理 • 辅助诊断:医疗专业人员可以快速查找相关医学文献和病例资料,为诊断和治疗提供更全面的参考 • 文献综述:学生和研究人员可以快速定位和分析相关的学术文献,高效地完成文献综述的撰写 • 新闻报道:记者可以对大量的新闻素材进行快速整合和提炼,生成新闻稿件 • 投资分析:金融机构可以实时收集和分析市场数据、财经新闻等信息,生成投资分析报告 • 法规检索与解读:律师和法律专业人员可以快速检索相关的法律法规和案例,为案件分析和法律研究提供支持 • 自然语言转SQL:支持用RAG技术实现从自然语言到SQL语句的转换,简化数据库查询
快速开始
前提条件
• CPU >= 4核 • RAM >= 16GB • 磁盘 >= 50GB • Docker >= 24.0.0 & Docker Compose >= v2.26.1 • gVisor: 仅在你打算使用RAGFlow的代码执行器(沙箱)功能时才需要安装
启动服务器
1. 确保vm.max_map_count不小于262144 # 检查当前值
$ sysctl vm.max_map_count
# 如果值小于262144,可以进行重置
$ sudo sysctl -w vm.max_map_count=262144
# 永久修改,在/etc/sysctl.conf文件中添加
vm.max_map_count=2621442. 克隆仓库 $ git clone https://github.com/infiniflow/ragflow.git
3. 使用Docker启动服务 $ cd ragflow/docker
# 使用CPU进行嵌入和DeepDoc任务
$ docker compose -f docker-compose.yml up -d
# 使用GPU加速嵌入和DeepDoc任务
# docker compose -f docker-compose-gpu.yml up -d4. 检查服务器状态 $ docker logs -f ragflow-server
成功启动后,将看到以下输出:
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running
Docker镜像版本
提示:如果遇到Docker镜像拉不下来的问题,可以在docker/.env文件内根据变量RAGFLOW_IMAGE的注释提示选择华为云或者阿里云的相应镜像。
• 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow • 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
社区与支持
• GitHub仓库:https://github.com/infiniflow/ragflow • 技术文档:https://ragflow.io/docs/dev/ • Discord社区:https://discord.gg/4XxujFgUN7 • Twitter:https://twitter.com/infiniflowai
RAGFlow与其他RAG产品的对比
RAGFlow与市面上其他RAG产品相比具有以下独特优势:
1. 深度文档理解:RAGFlow不仅仅依赖于简单的文档检索,还结合了文档的语义理解,通过对文档的深入分析,能够更精确地选择与用户查询相关的内容。 2. 完全重新研发的文档处理系统:不同于使用现成的RAG中间件(如LangChain、LlamaIndex等),RAGFlow完全重新研发了一套智能文档理解系统,确保数据质量。 3. 多路召回能力:RAGFlow强调多路召回对于RAG的重要性,同时进行关键词全文搜索和向量搜索,提高检索精度。 4. Agentic RAG:从0.8版本开始,RAGFlow提供了完整的基于图的任务编排框架,支持无代码方式编辑任务和工作流,正式步入Agentic时代。 5. 多样化的文档智能处理:针对不同行业和岗位的文档需求,提供多种模板选择,如Q&A、Resume、Paper、Manual、Table、Book、Law等。
用户案例与实践
案例一:自然语言转SQL查询
通过RAGFlow的Agent功能,用户可以使用自然语言描述需求,系统能够自动转换为SQL查询语句。例如,用户输入"查询一年级学生的平均分",系统能够理解用户意图,分析可能的数据库结构,并生成相应的SQL查询语句:
SELECT AVG(成绩) AS 平均分
FROM 学生成绩表
WHERE 年级 = '一年级'案例二:企业知识库问答系统
某企业将内部文档(包括产品手册、技术文档、培训材料等)上传至RAGFlow,构建了一个企业知识库。员工可以通过自然语言提问,快速获取准确的信息,大大提高了工作效率和知识共享水平。
案例三:法律文档分析
律师事务所使用RAGFlow处理大量法律文件,包括合同、判例和法规。系统能够精确提取关键条款和信息,帮助律师快速定位相关法律依据,提高案件分析和法律研究的效率。
RAG技术发展趋势
RAG技术正在从1.0向2.0演进,主要特点包括:
1. 以搜索为中心的端到端系统:将整个RAG按照搜索的典型流程划分为若干阶段,包含数据的信息抽取、文档预处理、构建索引以及检索。 2. AI基础设施化:RAG 2.0是典型的AI基础设施,环节之间相互耦合,接口尚未统一,并且存在循环依赖。 3. 多种召回方式:需要更全面和强大的数据库,提供多种召回手段,采用多种方法混合搜索。 4. 全链路优化:需要站在整个RAG的链路上,针对各环节进行优化,包括数据抽取和清洗、预处理等。 5. 引入知识图谱:在文档预处理阶段引入知识图谱构建,服务于复杂问答场景,并引入实体去重、Token优化等改进。
作为RAG技术的前沿实践者,RAGFlow正在稳步向RAG 2.0方向推进,不断创新和优化,为用户提供更高质量的知识检索和生成服务。
结语
RAGFlow作为一款强大的开源RAG引擎,通过深度文档理解技术,为企业和个人用户提供了一套完整的知识检索增强生成解决方案。无论是处理复杂格式的文档,还是构建可靠的问答系统,RAGFlow都能提供高质量的输出结果。
随着RAGFlow不断发展和完善,它将在更多领域发挥重要作用,帮助用户更好地利用大语言模型处理和理解复杂数据,实现真正的知识驱动型AI应用。
