1. LangChain - ⭐️105kLangChain 是较早构建 LLM 应用的框架之一,并在 RAG 生态系统中占据重要地位。它提供了一个框架,用于将组件和集成链接在一起,以开发 AI 应用,同时适应不断发展的技术。LangChain 提供用于模型、嵌入和向量存储的接口,提供了一种结构化的方法来实现检索增强生成系统。
LangChain 包含几个与 RAG 实现相关的功能:
- 数据连接——通过集成库将 LLM 链接到各种数据源和系统
- 模型灵活性——允许根据需求变化在不同的模型之间切换
- 集成选项——支持各种模型提供程序、工具、向量存储和检索器
- 评估工具- 提供测试和测量 RAG 系统性能的方法 生态系统兼容性——与LangSmith 配合进行调试,与LangGraph 配合进行工作流管理 LangChain 可以使用 来安装pip install -U langchain。
2. dify - ⭐️90.5k
Dify 是一个开源的 LLM 应用程序开发平台,它将可视化工作流构建与强大的 RAG 功能相结合。其直观的界面无需大量编码,方便开发人员和非技术用户使用。Dify 全面支持文档提取、检索和代理编排,为构建可用于生产的 AI 应用程序提供了端到端的解决方案。
Dify 提供了一系列功能,使其成为 RAG 实施的多功能工具:
- 可视化工作流编辑器- 无需编写代码即可在可视化画布上构建和测试 AI 工作流
- 广泛的模型支持——与来自不同供应商的数百个专有和开源 LLM 集成
- RAG 管道- 处理从提取到检索的文档,支持 PDF、PPT 和其他格式
- 代理功能- 使用 LLM 函数调用或 ReAct 创建代理,内置 50 多种工具
- LLMOps - 监控应用程序日志和性能指标以改进提示和模型
- 后端即服务- 使用 API 将 Dify 功能集成到现有业务应用程序中
- 企业功能- 访问 SSO、基于角色的访问控制和其他以组织为中心的功能 使用 Docker Compose 轻松上手 Dify。只需克隆代码库,导航至 docker 目录,根据示例创建环境文件,然后运行
docker compose up -d。部署完成后,访问 仪表板 即可http://localhost/install开始初始化过程。有关详细的安装说明,请访问官方文档。
3. RAGFlow - ⭐️48.5kRAGFlow 是一款基于深度文档理解能力构建的开源 RAG 引擎。与许多其他 RAG 框架不同,它擅长从 PDF 等复杂文档中提取结构化信息,包括表格、布局和视觉元素。凭借其全面的文档解析系统和直观的 Web 界面,RAGFlow 简化了从文档提取到生成的整个流程。
RAGFlow 提供了专为高级基于文档的检索而设计的强大功能:
- 深度文档理解——从复杂文档中高保真地提取文本、表格和结构
- 可视化 Web 界面- 提供用户友好的仪表板,用于文档管理和 RAG 工作流程创建
- GraphRAG 支持- 从文档创建知识图谱,以进行更多上下文检索
- 多种嵌入选项- 适用于各种嵌入模型,满足不同的检索需求
- 灵活的存储后端- 支持 Elasticsearch 和 Infinity 用于文档和矢量存储
- 全面的 API - 提供 Python SDK 和 REST API 以便与其他系统集成 使用 Docker 轻松上手 RAGFlow。系统提供精简版(2GB)和完整版(9GB)Docker 镜像,具体取决于您是否需要嵌入模型。有关详细的安装说明,请参阅官方文档和GitHub 代码库,了解环境要求和配置选项。
4. LlamaIndex - ⭐️40.8k
LlamaIndex 是一个全面的数据框架,旨在将 LLM 与私有数据源连接起来,从而为构建 RAG 应用程序奠定坚实的基础。它提供了一种结构化的数据提取、索引和检索方法,从而简化了知识增强型 AI 系统的开发。LlamaIndex 凭借其模块化架构,弥合了原始数据与 LLM 功能之间的差距,支持对自定义数据集进行上下文推理。
LlamaIndex 的主要功能包括:
- 灵活的数据连接器——从各种来源和格式(包括 API、PDF、文档和 SQL 数据库)提取数据
- 可定制的索引——使用向量存储、关键字索引或知识图谱有效地构建数据
- 高级检索机制——实现具有上下文相关性的复杂查询引擎
- 模块化架构——混合搭配组件以创建定制的 RAG 管道
- 多模式支持——在统一的工作流程中处理文本、图像和其他数据类型
- 广泛的集成生态系统——超过 300 个集成包可与首选的 LLM、嵌入和向量存储配合使用
- 优化工具——通过重新排序和响应合成技术微调检索性能 LlamaIndex 入门提供两种方式:使用
pip install llama-index包含核心功能和常用集成的入门包,或者从核心包开始进行自定义安装 (pip install llama-index-core),并根据需要添加特定的集成包。基本使用只需几行代码即可提取文档、创建索引并构建查询引擎以从数据中检索信息。
5. Milvus - ⭐️33.9k
Milvus 是一款高性能、云原生向量数据库,专为可扩展向量相似性搜索而构建。作为 RAG 应用的基石技术,它能够高效地存储和检索由文本、图像或其他非结构化数据生成的嵌入向量。Milvus 提供优化的搜索算法,在速度和准确性之间取得平衡,这对于处理海量数据的生产级 RAG 系统尤为重要。
Milvus 提供了几个增强 RAG 实现的关键功能:
- 高级向量搜索- 支持多种ANN(近似最近邻)算法,实现最佳向量相似性匹配
- 混合搜索功能——将向量相似性与标量过滤和全文搜索相结合
- 多模式支持——适用于文本、图像、视频和其他数据类型的嵌入
- 丰富的查询选项——提供距离度量、搜索参数和结果过滤
- 无缝集成- 与 LangChain、LlamaIndex 和其他 RAG 框架兼容
- 企业功能- 包括数据一致性保证、访问控制和监控工具
- 专门的 RAG 优化- 提供多向量搜索等高级检索技术 使用 Docker 轻松上手 Milvus。只需一条命令 (
docker run -d --name milvus -p 19530:19530 -p 9091:9091 milvusdb/milvus:latest) 即可运行独立实例,然后使用 Python 客户端库与其交互。有关详细的安装说明,请参阅Docker 安装指南。快速入门文档提供了创建集合、插入向量和执行搜索的代码示例,而RAG 教程则提供了端到端的实施指导。
6. mem0 - ⭐️27.3k
Mem0(发音为“mem-zero”)是一个智能内存层,旨在通过持久的上下文记忆功能增强 RAG 应用。与主要关注文档检索的传统 RAG 框架不同,mem0 使 AI 系统能够主动学习并适应用户交互。通过将 LLM 与专用向量存储相结合,mem0 可以创建能够在多个会话中维护用户偏好、对话历史记录和重要信息的 AI 助手。
Mem0 提供了强大的功能来增强 RAG 实现:
- 多级内存架构——维护用户、会话和代理内存,以实现全面的上下文保留
- 自动记忆处理- 使用 LLM 从对话中提取和存储重要信息
- 内存管理——不断更新存储的信息并解决矛盾以保持准确性
- 双存储架构——将用于内存存储的矢量数据库与用于关系跟踪的图形数据库相结合
- 智能检索系统——采用语义搜索和图形查询,根据重要性和新近度查找相关记忆
- 简单的 API 集成- 提供易于使用的端点来添加和检索记忆
- 跨平台支持——适用于 Python 和 Node.js 应用程序 mem0 的入门非常简单,主要有两种选择:一个完全托管的平台,可轻松部署;或者使用开源软件包进行自托管。对于自托管,只需通过
pip install mem0aiPython或Node.js 安装,并仅需几行代码即可初始化。基本实现需要配置 LLM(默认使用 GPT-4o-mini)并实现内存检索和存储功能。官方文档网站npm install mem0ai提供了全面的文档、示例和集成指南。
7. DSPy - ⭐️23k
DSPy 是由斯坦福自然语言处理 (NLP) 开发的用于编程(而非提示)语言模型的框架。与依赖固定提示的传统 RAG 工具不同,DSPy 使开发人员能够通过声明式 Python 代码创建模块化、可自我改进的检索系统。其独特的方法可以系统地优化 RAG 流程中的提示和权重,从而获得比单纯手动提示工程更可靠、更高质量的输出。
DSPy 提供了一组强大的功能来构建高级 RAG 应用程序:
- 模块化架构——使用可重复使用的专用组件构建可组合的人工智能系统
- 自动提示优化- 利用 MIPROv2 等优化器系统地改进提示,而不是手动调整
- 多种检索集成——连接到各种矢量数据库,包括 Milvus、Chroma、FAISS 等
- 评估框架- 使用内置指标测试和测量 RAG 系统性能
- 编译器方法——将声明性语言模型调用转换为自我改进的管道
- 灵活的管道设计——支持从基础到多跳和复杂推理的各种 RAG 方法 生产准备——用于调试、部署和可观察性的工具 通过 DSPy 安装,即可轻松上手
pip install dspy。该框架提供了清晰的编程模型,用于定义 RAG 系统的签名(输入/输出规范)和模块(实现这些签名的组件)。DSPy 的优化功能可以根据示例数据自动改进您的实现。如需获取全面的文档和教程,请访问官方文档网站,并特别查看以RAG 为重点的教程,以构建您的第一个检索增强生成系统。
8. Haystack - ⭐️20.2k
Haystack 是一个端到端的 AI 编排框架,旨在构建灵活、可立即投入生产的 LLM 应用程序。它擅长检索增强生成 (RAG) 的实现,通过提供模块化组件架构,将模型、矢量数据库和文件转换器连接到可定制的管道或代理。Haystack 采用技术无关的方法,允许开发人员在不同的模型和数据库之间轻松切换,而无需重写应用程序,使其成为构建可随需求变化而演进的复杂 RAG 系统的理想之选。
Haystack 提供了一组强大的功能来实现高级 RAG 解决方案:
- 灵活的组件系统——通过连接可重复使用的组件来构建管道,用于文档处理、检索和生成
- 与技术无关的方法- 使用 OpenAI、Cohere、Hugging Face 的模型或托管在各种平台上的自定义模型
- 高级检索方法——实现超越基本向量相似性的复杂搜索策略
- 文档处理——转换、清理和拆分各种文件格式以实现有效索引
- 评估框架——测试和基准测试您的 RAG 管道以衡量性能
- 自定义选项- 当标准行为不符合您的要求时,创建自定义组件
- 可视化管道构建器- 通过 Deepset Studio 集成以可视化方式设计管道 Haystack 的安装非常简单
pip install haystack-ai。该框架提供了详尽的文档和指南,帮助您在几分钟内构建您的第一个 LLM 应用程序。安装指南涵盖了包括 Docker 在内的多种方法,而入门指南则讲解了基本的管道创建方法。对于更高级的用例,您可以探索食谱手册,其中包含各种 RAG 实现的方案。
9. LightRAG - ⭐️14.6k
LightRAG 是一种精简的检索增强生成方法,注重简洁性和性能。顾名思义,它提供了一种轻量级的实现,与更复杂的替代方案相比,能够提供更快、更高效的 RAG 功能。根据代码库中显示的基准测试结果,LightRAG 在多个评估维度上始终优于其他几种 RAG 方法,这对于同时追求速度和质量的应用尤其有价值。
LightRAG 为有效实施 RAG 提供了几个值得注意的功能:
- 性能优化——与基准测试中的传统 RAG 方法相比,提供更出色的结果
- 信息多样性——检索多样化、有代表性的内容,而不是冗余信息
- Web 界面- 包含用于交互式探索和使用的 Web UI 组件 批量处理——高效处理多个文档的插入和处理 LightRAG 入门包括安装软件包和设置文档处理流程。代码库提供了用于提取上下文、将其插入系统、生成查询以及检索相关信息的示例代码。代码库包含一套完整的复现脚本,用于演示核心功能。更多技术细节和实施指南,请参阅GitHub 代码库及其相关文档。
10. LLMWare - ⭐️12.7k
LLMWare 是一个统一的框架,专为使用小型专用模型构建企业级 RAG 流水线而设计,而非仅仅依赖于庞大的 LLM。这种方法可以提供更高效、更经济的 RAG 实现,并且通常可以在包括笔记本电脑在内的标准硬件上运行。凭借其全面的文档处理能力和灵活的架构,LLMWare 使组织能够实施可立即投入生产的 RAG 系统,从而平衡性能和资源效率。
LLMWare 提供了一组强大的功能用于构建专门的 RAG 应用程序:
- 高效的模型部署——利用可在 CPU 和边缘设备上运行的更小、更专业的模型
- 全面的文档处理——处理各种文件格式,包括 PDF、Office 文档、文本和 Markdown
- 多种矢量数据库选项——与 MongoDB、Postgres、SQLite、PG Vector、Redis、Qdrant 和 Milvus 集成
- 多样化的嵌入模型——支持 10 多种嵌入模型,包括 nomic、jina、bge、gte、ember 和 OpenAI
- GPU 加速- 在模型推理可用时利用 GPU 资源 LLMWare 的安装非常简单。该框架在Getting_Started 目录
pip install llmware中提供了一系列示例脚本,演示了文档解析、嵌入生成和检索等核心功能。其他示例展示了如何使用Qwen2等特定模型以及如何创建完整的 RAG 流程。该存储库还包含详细的文档和快速启动脚本,用于快速实现常见的工作流程。
11. txtai - ⭐️10.7k
txtai 是一个一体化开源嵌入数据库,旨在构建全面的语义搜索和语言模型工作流程。与那些专注于检索或生成的框架不同,txtai 通过将向量存储、文本处理流水线和 LLM 编排功能整合到一个统一的软件包中,为 RAG 实现提供了完整的生态系统。其精简的 API 使其特别适合那些希望构建生产级 RAG 应用程序,而无需集成多个独立工具的开发者。
txtai 提供了一套全面的功能,使其能够灵活适用于 RAG 应用程序:
- 嵌入数据库——通过语义理解来存储、索引和搜索文本和文档
- 管道组件——访问预先构建的组件,用于摘要、翻译、转录等
- LLM 集成- 使用各种语言模型进行文本生成和完成
- 工作流编排——将组件链接在一起形成复杂的 NLP 工作流
- 多模式支持——在统一的管道中处理和分析文本、图像和音频
- API 和服务层- 以最少的配置部署为 REST API 服务
- 容器化——使用提供的配置在 Docker 中运行以实现可扩展性
该框架提供了丰富的文档和示例,包括用于构建 RAG 流程的pip install txtai专用笔记本。该示例演示了如何创建嵌入、索引文档以及构建将检索与语言模型生成相结合的完整 RAG 工作流。txtai 还提供了推荐模型指南,帮助用户根据性能和许可考虑为不同组件选择合适的模型。
12. RAGAS - ⭐️8.7k
RAGAS 是一款专为评估和优化 RAG 应用程序而设计的综合评估工具包。与专注于构建 RAG 系统的框架不同,RAGAS 提供客观指标和智能测试生成功能,帮助开发人员衡量其检索和生成组件的有效性。其主要优势在于创建数据驱动的反馈循环,通过严格的评估实现 LLM 应用程序的持续改进。
RAGAS 提供了一组强大的评估功能:
- 客观指标——使用基于 LLM 的指标和传统指标精确评估 RAG 应用程序
- 测试数据生成——自动创建涵盖多种场景的综合测试数据集
- 无缝集成- 与流行的 LLM 框架(如 LangChain)和主要的可观察性工具配合使用
- 分析仪表板- 通过 app.ragas.io 可视化和分析评估结果
- 专门的 RAG 指标——评估上下文的精确度、召回率、忠实度和响应相关性
- 多框架支持——兼容各种 LLM 模型和 RAG 实现 通过 即可轻松开始使用 RAGAS 。您可以通过app.ragas.io
pip install ragas仪表板分析结果。有关详细指导,请参阅安装指南、评估文档和测试集生成资源。
13. R2R(从 RAG 到 Riches) -⭐️6.3k
R2R 是一款先进的 AI 检索系统,它通过全面的 RESTful API 为检索增强生成 (RAG) 工作流带来可用于生产环境的功能。与许多主要专注于基本文档检索的 RAG 框架不同,R2R 在其深度研究 API中融入了代理推理功能,该 API 可以通过从知识库和外部来源获取相关数据来执行多步推理。这种传统 RAG 与智能代理行为的结合,使其在需要细致理解的复杂查询解析方面尤为强大。
R2R 提供了一系列专为生产部署而设计的令人印象深刻的功能:
- 多模式摄取——处理多种内容格式,包括文本、PDF、图像和音频文件
- 混合搜索功能——将语义和关键字搜索与相互排名融合相结合,以获得更好的相关性
- 知识图谱集成——自动提取实体和关系以构建上下文知识图谱
- 代理推理——利用深度研究代理进行复杂、多步骤的信息收集和综合
- 生产基础设施——包括用户身份验证、收集管理和全面的 API 访问
- 多种部署选项——可作为云服务或支持 Docker 的自托管解决方案
- 客户端 SDK - 提供 Python 和 JavaScript 库,以简化集成 开始使用 R2R 提供两种主要途径:使用SciPhi Cloud的托管部署(包含丰富的免费套餐,无需信用卡)或自托管。对于最快的自托管设置,您可以通过 pip (
pip install r2r) 安装,设置您的 OpenAI API 密钥,然后运行python -m r2r.serve以进行轻量级部署。或者,Docker Compose 提供功能齐全的部署docker compose -f compose.full.yaml --profile postgres up -d。Python SDK通过简洁的客户端界面,提供直观的文档操作、搜索和代理 RAG 查询方法。
14.Ragatouille- ⭐️3.4k
Ragatouille 是一个基于 ColBERT 为 RAG 应用实现后期交互检索方法的框架。与使用单向量表示的传统密集检索不同,Ragatouille 在匹配过程中保留了 token 级信息,从而提高了检索准确率。这种方法弥合了高级信息检索研究与实际 RAG 实现之间的差距,无需过多的计算需求即可提供卓越的搜索质量。
Ragatouille 提供了几个关键功能来增强检索:
- 后期交互检索- 使用 ColBERT 的标记级匹配进行更精确的文档检索
- 微调功能——支持针对特定领域数据进行训练,无需明确注释
- 元数据支持——在整个索引和检索过程中维护文档元数据
- 基于磁盘的索引- 创建可轻松与生产系统集成的压缩索引
- 集成选项- 可与 Vespa、Intel FastRAG 和 LlamaIndex 配合使用 开始使用 Ragatouille 只需简单安装 pip 即可。文档提供了全面的实施指南,示例目录包含各种用例的笔记本。特别有用的是无注释微调示例,它演示了如何使用带有 Instructor 嵌入的合成查询生成来训练特定领域的模型。
15. FlashRAG - ⭐️2.1k
FlashRAG 是一个用于检索增强生成 (RAG) 研究的 Python 工具包,它在统一的界面中提供 36 个预处理的基准数据集和 17 个最先进的 RAG 算法。与注重实现的框架不同,FlashRAG 优先考虑可重复性和实验性,使研究人员能够快速复现现有工作或开发新方法,而无需数据准备和基线实现的开销。
FlashRAG 为研究提供了几个关键功能:
- 广泛的数据集支持——可访问 36 个预处理的基准 RAG 数据集,涵盖从问答到实体链接等内容
- 算法实现——17 种最先进的 RAG 方法,通过一致的接口实现
- 模块化架构——轻松更换不同的检索器、生成器和其他组件
- Web 界面- 用于交互式实验和可视化的直观 UI
- 多模态功能——支持 RAG 管道中的文本、图像和其他模态 要开始使用 FlashRAG,需要通过 pip 安装软件包并探索其组件。该工具包在其 GitHub 代码库中提供了使用不同检索器和构建 RAG 管道的示例。预处理数据集可通过 Hugging Face 获取,Web UI 简化了实验,无需编写代码。
选择正确的 RAG 框架的对比决策表
| | | | | |
|---|
| | | Data connections, model flexibility, integrations | | |
| | Non-technical users, enterprise | Visual workflow editor, extensive model support, agent capabilities | | |
| | Complex document handling | Deep document understanding, GraphRAG, visual interface | | |
| | | Flexible connectors, customizable indexing, modular architecture | | |
| | Large-scale vector search | Advanced vector search, horizontal scalability, hybrid search | | |
| | Assistants with context retention | Multi-level memory, automatic processing, dual storage | | |
| | Systems requiring self-improvement | Modular architecture, automatic prompt optimization, evaluation | | |
| | | Flexible components, technology-agnostic, evaluation tools | | |
| | Speed-critical applications | Simple architecture, information diversity, comprehensive retrieval | | |
| | | Efficient models, comprehensive processing, parallelized parsing | | |
| | Streamlined implementation | Embeddings database, pipeline components, multimodal support | | |
| | | Objective metrics, test generation, analytics dashboard | | |
| | | Multimodal ingestion, agentic reasoning, knowledge graphs | | |
| | | Late-interaction retrieval, fine-tuning capabilities, token-level matching | | |
| | Experimentation, benchmarking | Pre-processed datasets, algorithm implementations, web interface | | |
选择标准
易于实施:选择 Dify、LlamaIndex、mem0、LightRAG 或 txtai 文档密集型应用程序:考虑使用 RAGFlow 或 LLMWare 规模化生产:参考 Milvus、Haystack 或 LangChain 有限的硬件资源:优先考虑LLMWare或LightRAG 复杂推理需求:探索 R2R 或 DSPy 评估重点:使用RAGAS 研究目的:选择 FlashRAG
结论
2025 年,RAG 框架的格局发生了显著变化,各种解决方案涵盖了 RAG 流程的各个方面,从文档提取到检索、生成和评估。选择框架时,请考虑您的具体用例需求、技术专长和部署限制。一些框架(例如 LangChain 和 LlamaIndex)提供了全面的端到端解决方案,而另一些框架(例如 Ragatouille 和 FlashRAG)则在高级检索技术或研究实验等特定领域表现出色。您的选择应与您的应用程序的规模、性能需求和开发时间表相符。