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语句的转换,简化数据库查询
快速开始
前提条件
- • Docker >= 24.0.0 & Docker Compose >= v2.26.1
- • gVisor: 仅在你打算使用RAGFlow的代码执行器(沙箱)功能时才需要安装
启动服务器
- 1.确保vm.max_map_count不小于262144
# 检查当前值
$ sysctl vm.max_map_count
# 如果值小于262144,可以进行重置
$sudosysctl -w vm.max_map_count=262144
# 永久修改,在/etc/sysctl.conf文件中添加
vm.max_map_count=262144
- 2.克隆仓库
$gitclonehttps://github.com/infiniflow/ragflow.git
- 3.使用Docker启动服务
$cdragflow/docker
# 使用CPU进行嵌入和DeepDoc任务
$ docker compose -f docker-compose.yml up -d
# 使用GPU加速嵌入和DeepDoc任务
# docker compose -f docker-compose-gpu.yml up -d
- 4.检查服务器状态
$dockerlogs-fragflow-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查询语句:
SELECTAVG(成绩)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应用。