RAG(四):OpenRAG、Ragflow-Plus、LinearRAG、Cache-AG、Context-AG
RAG系列文章RAG概述RAG一Agentic RAG、AUTO-RAG、ChunkRAG、FastRAG、Graph RAG、HtmlRAGRAG二RAG三UltraRAG、Elysia、Late Chunking、CoRAG、ComoRAGOpenRAG官网Langflow团队打造、全面开源GitHub4.4K Star458 ForkRAG平台旨在通过智能体赋能实现高效、智能的文档搜索和AI对话体验。基于Starlette和Next.js构建并由OpenSearch、Langflow和Docling等强大项目提供核心动力为用户提供从文档上传、处理到智能查询的全流程无缝体验。官方文档。功能亮点开箱即用一键启动所有核心工具都已预先配置和连接用户只需简单安装即可立即运行无需复杂的环境配置强大的智能体RAG工作流 (Agentic RAG workflows)利用智能体实现高级的流程编排例如对检索结果进行重排序和多智能体协同工作从而提供更精准更智能的回答智能文档摄取内置强大的文档解析能力能够处理现实世界中各种格式混乱、复杂的文档数据实现智能解析和切分拖拽式工作流构建器由Langflow提供强大的可视化界面用户可通过拖拽组件的方式快速构建、测试和迭代自己的RAG工作流极大降低开发门槛模块化的企业级插件平台设计灵活允许用户根据需要扩展功能满足不同规模的企业级应用需求企业级规模的搜索能力底层采用强大的OpenSearch确保在任何数据规模下都能提供生产级别的稳定性和高性能搜索体验。工作原理即步骤文档摄取(Ingestion)用户上传文档如PDF、TXT、Markdown等数据处理(Processing)系统对文档进行解析、切块Chunking并生成向量嵌入Embeddings数据索引(Indexing)将处理后的数据和向量存储在OpenSearch中建立可供快速检索的索引检索与生成(Retrieval Generation)用户通过聊天界面提出问题。系统将问题转换为向量在OpenSearch中进行语义搜索找到最相关的文档片段。将检索到的相关内容与用户原始问题一起作为上下文提交给大型语言模型LLM。LLM基于提供的上下文生成最终的、准确的回答。实战官方提供多种部署方式Docker源码基于uv安装uv run openrag官方提供MCP基于pip安装pip install openrag-mcp配置MCP Server{mcpServers:{openrag:{command:uvx,args:[openrag-mcp],env:{OPENRAG_URL:http://localhost:3000,OPENRAG_API_KEY:api_key}}}}Python SDK官方文档集成安装pip install openrag-sdk示例importasynciofromopenrag_sdkimportOpenRAGClientasyncdefmain():asyncwithOpenRAGClient()asclient:responseawaitclient.chat.create(messageWhat is RAG?)print(response.response)if__name____main__:asyncio.run(main())TS SDK官方文档安装npm install openrag-sdk集成import{OpenRAGClient}fromopenrag-sdk;constclientnewOpenRAGClient();constresponseawaitclient.chat.create({message:What is RAG?});console.log(response.response);Ragflow-Plus官网开源GitHub1.4K Star257 Fork基于RAGFlow针对中文场景进行深度优化。五大核心升级管理模式额外搭建后台管理系统支持管理员执行用户管理、团队管理、配置管理、文件管理、知识库管理等功能。不同于基础版的「无管理模式」新增独立后台管理系统对于企业用户而言可将RAG工具纳入标准化IT管理体系而非游离在外的「野系统」支持多维度权限体系用户分组、团队隔离、操作审计全生命周期管理从文件上传到知识库更新的可视化流程系统级配置中心模型参数、解析规则、存储策略集中调控权限回收前台系统对用户权限进行收缩进一步简化界面解析增强使用MinerU替代DeepDoc算法文件解析效果更好支持10格式文件PDF/Word/PPT/Excel/图片等无缝解析结构还原度提升复杂表格、公式、图表的层级关系精准保留图片智能处理自动提取文档内嵌图片并关联上下文图文输出支持模型在回答时输出引用文本块关联的相关图片。当用户询问「某产品的结构示意图」时不仅能返回描述文字还能直接展示对应的图纸这在传统RAG中是难以实现的。实现文本-图片的深度绑定解析时自动标记图片与文本块的关联关系回答时根据引用内容自动插入相关图片支持图片放大预览、批量下载等交互操作文档撰写模式支持全新的文档模式交互体验。将知识库变成创作助手内置多场景模板技术文档、会议纪要、研究报告等即选即用光标定位插入在编辑区指定位置AI基于知识库内容精准补写一键导出格式支持Word/PDF等多格式输出保留排版样式轻量化部署兼顾性能与成本考虑到中小企业的算力限制性能优化支持CPU/GPU双模式部署最低16GB内存即可启动提供Docker一键部署方案3分钟完成环境配置支持离线部署满足数据敏感场景需求原理后台管理系统知识库管理用户与权限管理系统设置核心控制层知识库配置- 创建/删除- 基本信息设置- 访问权限控制系统参数- 存储配置- 缓存设置- 部署参数自定义配置- 界面Logo- 标题修改- 水印设置用户管理- 创建/删除- 信息修改- 密码重置团队管理- 成员增删- 权限分配- 数据共享角色配置- 权限粒度控制- 操作审计日志文件管理- 上传/删除- 批量解析- 格式转换模型配置- Embedding模型- Chat模型- 解析引擎设置解析任务管理- 进度监控- 日志查看- 重新解析管理首页仪表盘实战基于源码和Docker Compose本地部署gitclone https://github.com/zstar1003/ragflow-plus.gitcdragflow-plusdockercompose-fdocker/docker-compose.yml up-dLinearRAG论文开源GitHub532 Star63 Fork。方法工作原理优点缺点✅NaiveRAG把文档切块→向量化→按相似度检索→生成答案简单直接、稳定可靠容易丢失上下文难以处理多跳推理⚠️GraphRAG提取实体和关系→构建知识图谱→在图上检索路径→生成答案支持复杂推理、召回能力强图谱质量差、噪声多、构建成本高LinearRAG只提取实体语义链接→构建三元层级图→两阶段检索高效、准确、抗噪、线性扩展新方法需进一步验证总结Naive RAG像是“关键词搜索”快但浅GraphRAG像是“构建思维导图后推理”容易被噪声影响负责、耗时LinearRAG则另辟蹊径不画抽取关系只抓关键节点靠“语义桥”连通信息孤岛优势无需关系抽取避免错误三元组污染图谱轻量高效使用spaCy等轻模型不烧LLM Token线性可扩展数据越多扩展越平稳多跳推理强通过语义桥实现单次遍历多跳检索抗噪能力强不依赖脆弱的关系结构LinearRAG构建一个名为Tri-Graph三图的层级图结构包含三类节点实体节点Entity如爱因斯坦、AI句子节点Sentence原文中的每一句话段落节点Passage原始文本块实体抽取方法不依赖大模型直接使用spaCy进行抽取。边的连接规则实体出现在某句子中→连接到该句子实体出现在某段落中→连接到该段落形成两个关系矩阵Mention Matrix句子←→实体Contain Matrix段落←→实体特点不依赖LLM做关系抽取零Token消耗使用轻量NER工具spaCy速度快、精度高图谱更新只需局部重建支持线性扩展实验显示相比传统GraphRAG索引时间减少77%以上两阶段检索先激活实体再召回段落检索过程分为两个阶段层层递进第一阶段局部语义桥接Local Semantic Bridging目标找出与问题相关的中间实体打通多跳路径。举例哪些技术推动现代语音识别的发展单纯匹配【语音识别】可能找不到提到【深度神经网络】的段落但通过语义桥可发现语音识别↔端到端模型↔Transformer↔深度神经网络这些中间实体虽然没出现在问题中但语义相近能帮助打通信息链。方法计算查询与初始实体的语义相似度在句子层传播相似性激活潜在相关实体形成激活实体集第二阶段全局重要性聚合Global Importance Aggregation目标从全局视角评估哪些段落最重要。方法使用个性化PageRankPersonalized PageRank将第一阶段激活的实体作为种子在实体-段落子图上运行PR算法得到每个段落的重要性得分返回Top-K最相关段落Cache-Augmented Generation缓存增强生成论文主要使用Python和Shell开发、开源GitHub1.5K Star223 Fork技术。与传统RAG系统不同CAG通过预加载所有相关的资源尤其是当文档或知识库规模有限时将其融入LLMs的扩展上下文中并计算运行时参数的缓存。可消除检索延迟减少检索错误并简化系统架构同时保持上下文相关性高质量回答确保模型能够全面处理相关上下文。论文给出的架构简图思路利用长上下文LLM的扩展上下文能力将所有相关资源预加载到LLM的扩展上下文中并缓存运行时参数。在推理时模型利用这些预加载的参数来回答查询从而实现无检索知识集成。架构上主要分成三个部分阶段外部知识预加载需将上下文文档集合交给LLM进行处理编码成KV Cache。这些KV Cache会被用于在推理阶段进行生成。处理之后的计算结果被存储在磁盘或内存中以供后续流程使用推理需将已经处理好的KV Cache从磁盘加载到内存如果之前是存在磁盘的话。之后利用已有的KV Cache和新的请求进行结合提交给LLM进行后续的继续生成即从请求开始继续往后生成KVCache。当此次请求处理完毕KVCache的内容变更为新的KVCache重置在处理多个请求时由于原先的KVCache已经变更为获取原先的KVCache需对内存中新的KVCache进行截断论文中认为从磁盘重新加载的成本更高重置成原来的KVCache然后和新的请求一起进行进一步的处理。Context-Augmented Generation上下文增强生成论文项目主页开源GitHub38 Star7 ForkAPEAdaptive Parallel Encoding方法论核心区别在于领域记忆(Domain Memory)核心超越RAG的被动知识库是一个主动的、有状态的记忆系统不仅存储着事实知识还包括领域规则例如医疗 AI 需要遵守的诊断逻辑或金融 AI 必须遵循的合规条款对话历史记住用户在三天前讨论过的话题而不仅仅是上一句话用户偏好知道用户的具体需求、风格偏好或个人背景上下文对齐(Context Alignment)不只是简单地拼接信息。在生成答案前会进行复杂的对齐工作确保即将生成的回复同时与外部知识RAG做的、领域记忆、对话历史保持逻辑一致一致性检查(Consistency Check)在生成答案后CAG会增加关键的验证层。会反向检查答案是否与领域记忆中的核心规则或长期目标相矛盾关键增强技术技术方向功能说明上下文聚类(Context Clustering)对知识库聚类生成主题级上下文CAG的早期变体上下文摘要(Context Summarization)对相似文档进行压缩摘要减少冗余与token占用上下文选择(Context Selection)利用注意力或重排序模型筛选最相关上下文上下文融合(Context Fusion)将多源上下文文档、图谱、记忆融合成统一输入上下文记忆(Context Memory)动态保存生成历史和用户意图实现长程依赖对比RAG解读上下文增强生成注重深度理解上下文。特性RAGCAG核心焦点事实检索(Fact Retrieval)情境管理(Context Management)工作模式偏向无状态 (Stateless) 每次查询都像一次新的检索强调有状态 (Stateful) 维护和调用持久的记忆知识源外部知识库文档、网页等外部知识库 领域记忆 规则、历史、偏好关键动作检索 (Retrieve)、排序 (Rank)、融合 (Fuse)注入 (Inject)、对齐 (Align)、一致性检查 (Consistency)上下文组织扁平式无结构结构化聚类、图谱、主题记忆目标角色开卷考试的考生 能快速查到正确答案融会贯通的专家 能结合记忆和知识给出一贯的见解适用场景QA、知识问答、事实型任务复杂问答、决策推理、多轮对话、专业领域生成代表实现OpenAI RAG、LlamaIndex、LangChain RAGGraphRAG、ClusterRAG、Dynamic-Memory RAG、Context-Tuning实战基于源码和Python环境本地部署gitclone https://github.com/Infini-AI-Lab/APE.gitcdAPE conda create-ynapepython3.10conda activate ape pipinstall-rrequirements.txt python setup.pyinstall# 运行示例CUDA_VISIBLE_DEVICES0python demo_APE.py--modelllama3-8b-instruct