RAGchain
Langchain 上的 RAG 专用开发框架,支持混合检索、重排序、OCR 文档处理与标准化效果评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Langchain 上的 RAG 专用开发框架,支持混合检索、重排序、OCR 文档处理与标准化效果评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:某医疗问答团队在构建基于内部医学文献的 AI 助手,他们尝试用 Langchain 搭建 RAG 流程,却发现文档格式五花八门——有扫描的 PDF、病历表格、甚至手写处方。简单分块后检索,回答总是不着边际。更头疼的是,他们需要评估不同配置的实际效果,但现有的工具根本没法量化比较。
这就是 RAGchain 诞生的背景。RAGchain 是韩国团队 Marker-Inc-Korea 开发的 RAG 专用开发框架,定位上它并非要替代 Langchain 或 LlamaIndex,而是专注解决"高级 RAG 工作流"的构建难题——在检索层加入重排序(Re-ranker)、支持多路混合检索、甚至引入时间感知和重要性感知机制。
传统 RAG 的局限——当你用 Langchain 或 LlamaIndex 快速搭建一个基础 RAG 流程时,实际上只是:文档切块 → 向量检索 → 直接返回结果。这个流程对简单场景足够,但一旦面对以下需求就会力不从心:
RAGchain 正是为解决这些问题而设计,它在 Langchain 的基础上做了大量检索增强方向的专项扩展。
RAGchain 的检索模块支持四种策略,可以单独使用也可以混合:
| 检索策略 | 原理 | 适用场景 |
|---|---|---|
| Vector DB | 传统向量相似度检索 | 语义相近的查询 |
| BM25 | 经典关键词检索(Elasticsearch 底层算法) | 专业术语、缩写、拼写变体 |
| Hybrid | RRF + CC 融合算法,同时使用向量和 BM25 | 通用场景,效果通常最优 |
| HyDE | 用 LLM 生成"假设答案",再检索匹配真实文档 | 抽象/模糊问题 |
混合检索(Hybrid)是其中最有价值的功能。RRF(Reciprocal Rank Fusion)算法将不同检索器的结果按排名融合,比单独使用向量检索在多数 Benchmark 上有明显提升。
检索到的候选文档不直接使用,而是经过 Re-ranker 重新打分排序。RAGchain 内置了多种重排序器:
这种"先粗排再精排"的两阶段架构,是工业级 RAG 系统的标准做法。
RAGchain 支持两个 OCR 引擎:
对于需要处理扫描件、学术论文或复杂版式文档的场景,这个模块是刚需。
不想从零搭建?RAGchain 提供了四种预置流水线:
用户也可以继承 BasePipeline 自定义复杂流程。
这是 RAGchain 区别于其他框架的独特优势——内置 12 个标准数据集,涵盖机器阅读理解(MS-MARCO、Natural Questions)、多跳推理(StrategyQA)、表格问答(HybridQA)等不同类型。每个数据集都对应标准评估指标。
评估器可以自定义问题集,支持自动化测试和对比分析,让 RAG 系统调优不再是玄学。
RAGchain 将检索向量和文档内容分离存储,通过 Linker 连接:
这种设计让切换向量数据库或文档数据库变得非常方便。
RAGchain 的架构采用模块化插件式设计,各组件通过基类定义接口,扩展性良好:
RAGchain/
├── pipeline/ # 工作流编排(ingest + run)
├── retrieval/ # 検索器(向量/BM25/混合/HyDE)
├── reranker/ # 重排序列器(多种算法)
├── benchmark/ # 评估模块
├── DB/ # 数据库适配器
├── preprocess/ # 文档预处理(OCR/分块)
├── schema/ # 数据模型定义
└── utils/ # 工具函数
代码质量方面,项目有完整的测试套件(pytest)、贡献指南、类型注解,且代码结构清晰,模块边界明确。
RAGchain 是纯 Python 库,无 Web UI、无 Docker 部署选项:
# pip 安装
pip install RAGchain
# 或从源码安装
git clone https://github.com/Marker-Inc-Korea/RAGchain.git
cd RAGchain
python3 setup.py develop
pip install dev_requirements.txt # 开发依赖
安装后需要自行配置:
由于需要 LLM API 调用,实际使用时会产生 API 费用。GPU 不是必须的,但如果使用 MonoT5 Re-ranker 则建议配备 GPU。
| 维度 | 评价 |
|---|---|
| 安装难度 | ★☆☆☆☆(pip 一行搞定) |
| 配置复杂度 | ★★★☆☆(需要理解 RAG 架构和 LLM API 配置) |
| 上手难度 | ★★☆☆☆(预置 Pipeline 降低门槛,有完整文档) |
| 生产就绪度 | ★★★☆☆(v0.2.6,仍在早期,但代码质量不错) |
对于AI 开发者而言,RAGchain 的价值在于:它把学术论文里的高级 RAG 技术(HyDE、混合検索、Re-ranker、Time-Aware)封装成了可调用的模块,降低了研究与生产之间的门槛。对于 AI 爱好者,pip 安装 + 预置 Pipeline 的组合让没有深度背景的开发者也能体验高级 RAG 的效果。
RAGchain 作为一个相对小众的框架(283 stars,Apache 2.0 许可),存在以下需要注意的问题:
v0.2.6 版本说明项目仍在早期,社区规模有限,如果主创团队停止维护,风险较高RAGchain 的核心价值不在于"替代 Langchain",而在于把 Langchain 忽略的 RAG 高级特性做深做透——混合検索、重排序、OCR 处理、标准化评估。它的定位是"RAG 工作流的开发框架",而不是通用 AI 应用框架。
如果你正在构建需要高検索精度的 AI 问答系统(尽类涉及学术文档、技术报告、医疗/法律等专业领域),RAGchain 的预置流程和评估工具能显著加速开发。如果你只是需要一个简单的 RAG 原型,Langchain 的快速起步优势更明显。
项目目前处于早期但思路清晰,适合对 RAG 有深入需求的团队跟进关注。