跳到主要内容

RAG 引擎横向调研报告

RAG Engine Comparison Report — Zhiheng Platform

报告日期 / Date: 2026-06-04 背景 / Context: 智恒平台已有 LightRAG (:9621) + KohakuRAG,需要更广泛的视野进行技术选型 Backend: FastAPI + PostgreSQL (pgvector) + Redis 数据源 / Data source: 中文教材 PDF(6本道德与法治教材)


一、现有方案分析 / Current Solutions Analysis

LightRAG (HKUDS/LightRAG)

维度详情
GitHub⭐ 36.1k · v1.5.0 (2026-06-03)
架构知识图谱 RAG — LLM 提取实体/关系构建图谱,双层检索(局部+全局)
存储SQLite / Neo4j / MongoDB / PostgreSQL
优势增量更新无需重建索引;跨文档实体关系;图可视化 Web UI;多模态支持
劣势索引成本高(每 chunk 一次 LLM 调用);图质量依赖 LLM(实体幻觉/重复);检索速度争议(有论文称比传统 RAG 慢 100×);换 embedding 模型需重建全索引
智恒适用性⭐⭐⭐ 已有部署,但索引成本和图质量问题在大规模教材场景可能成为瓶颈

KohakuRAG (KohakuBlueleaf/KohakuRAG)

维度详情
背景WattBot 2025 冠军(0.861 分),arXiv:2603.07612
架构4 层层次树(文档→节→段→句),自底向上 embedding 传播,多查询检索+交叉重排+集成推理
存储SQLite + sqlite-vec(零外部依赖)
优势极致精度(多查询+集成投票);BM25 混合检索;结构化 JSON 输出;Python 配置无 YAML
劣势集成推理成本极高(最佳 n=911,每次查询 911 次 LLM 调用);26.8% 无意义的 "is_blank" 拒绝率;仅适合结构化文档;无跨文档推理;无 Web UI / API 服务器;社区极小
智恒适用性⭐⭐ 适合高精度评测场景,但不适合生产环境的高并发/低延迟需求

二、RAG 框架对比 / RAG Frameworks Comparison

评分标准:⭐ 低/不适合 → ⭐⭐⭐⭐⭐ 高/强烈推荐

框架⭐ Stars架构存储多模态部署集成难度中文支持性能综合推荐
RAGFlow81.9k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
LlamaIndex49.9k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Haystack25.5k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
LangChain+Graph117k+34k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
GraphRAG33.4k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
DSPy34.8k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
MemGPT/Letta23.1k⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

说明:

  • 架构:分层索引、多路检索、重排支持
  • 存储:向量后端支持广度
  • 多模态:PDF/图片混合检索能力
  • 部署:Docker/单机/云原生,资源需求
  • 集成难度:与 FastAPI 后端的集成复杂度
  • 中文支持:中文分词、embedding 兼容性
  • 性能:检索延迟、吞吐量、扩展性

详细分析 / Detailed Analysis

1. RAGFlow ⭐⭐⭐⭐⭐ (最推荐用于生产)

  • 核心优势:深度文档解析(MinerU/Docling),最佳中文支持(中国团队),模板化分块+多路召回+融合重排,完整的生产级 API
  • 存储:Elasticsearch(默认)/ Infinity(可切换)+ MySQL + MinIO + Redis
  • 部署:Docker Compose,需 4+ CPU / 16+ GB RAM / 50+ GB 磁盘
  • 集成:有内置 RESTful API,Python SDK,可嵌入 FastAPI
  • 中文:⭐⭐⭐⭐⭐ 原生中文文档解析 + HanLP + MinerU,跨语言查询
  • 劣势:资源需求较高,对智恒的低配服务器可能偏重

2. LlamaIndex ⭐⭐⭐⭐ (最推荐的开发框架)

  • 核心优势:最丰富的索引类型(VectorStoreIndex、PropertyGraphIndex、TreeIndex、RAPTOR、分层检索),20+ 向量存储后端,RAPTOR 树形索引非常适合教材层次结构
  • 存储:pgvector/PostgreSQL 原生支持(与智恒现有 PG 完美集成)
  • 部署pip install,框架级集成(非独立服务)
  • 集成:⭐⭐⭐⭐⭐ 纯 Python 库,直接嵌入 FastAPI,零额外服务
  • 中文:bge-m3 / multilingual-e5 兼容,无专用中文分块器但足够
  • 劣势:需要自己搭建完整 pipeline(分块→索引→检索→重排)

3. Haystack ⭐⭐⭐⭐ (推荐用于明确 pipeline 控制)

  • 核心优势:管道式编排,组件级可观测性,企业级采用(Apple/Meta/Netflix),Hayhooks 一键生成 REST API
  • 存储:pgvector/Qdrant/Weaviate/Elasticsearch 等全面支持
  • 部署pip install 或 Docker
  • 集成:⭐⭐⭐⭐⭐ 管道即 API,Hayhooks 自动生成 REST 端点
  • 中文:ChineseDocumentSplitter(HanLP 驱动)
  • 劣势:学习曲线中等,企业平台功能需 Haystack Enterprise

4. LangChain + LangGraph ⭐⭐⭐

  • 核心优势:最大生态(117k stars),最多集成(50+ 存储),LangGraph 状态图编排
  • 劣势:包碎片化严重(langchain-* 上百个子包),学习曲线陡峭,对于 RAG 场景过度复杂
  • 结论:如果后续需要复杂 agent 编排才值得引入

5. GraphRAG ⭐⭐

  • 核心优势:Microsoft 知识图谱 RAG,多跳推理最强,全局查询能力
  • 劣势:索引成本极高(官方文档明确警告),Azure 依赖重,无 Docker 独立部署,无中文优化
  • 结论:适合大规模企业数据推理,不适合智恒的低配场景

6. DSPy ⭐⭐

  • 核心优势:自动 prompt 优化,代码优先,纯库无服务
  • 劣势不是检索基础设施,无内置向量存储,多模态有限
  • 结论:可作为 LlamaIndex/Haystack 之上的优化层,非独立 RAG 方案

7. MemGPT/Letta ⭐

  • 核心优势:持久化记忆分层架构(核心/归档/回忆)
  • 劣势不是传统 RAG 框架,是 agent 记忆系统;无 PDF 解析;中文无优化
  • 结论:适合长对话 agent 场景,与智恒文档检索需求不匹配

三、向量数据库对比 / Vector Database Comparison

向量库⭐ Stars延迟 (1M)吞吐量部署中文多模态混合检索FastAPI推荐度
Qdrant29.9k~3.5ms~1,238 RPSDocker 67MB⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
pgvector20.9k~15-40ms~471 QPS*PG 扩展⚠️⭐⭐⭐⭐⭐⭐⭐⭐
Milvus43.7k~18-30ms~219 RPS*Docker 888MB⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Weaviate16k~5ms~1,142 RPSDocker 82MB⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Chroma28k~10-30ms~5-8k QPSDocker 159MB⭐⭐⭐⭐⭐⭐

*pgvector QPS 基于 50M 向量 + pgvectorscale;Milvus RPS 为单机模式,集群模式更高

详细分析

1. Qdrant ⭐⭐⭐⭐⭐ (独立向量库首选)

  • 核心优势:Rust + io_uring,最低延迟(3.5ms),最小镜像(67MB),原生异步客户端
  • FastAPI 集成AsyncQdrantClient 官方支持,有 FastAPI 教程
  • 中文:存储层语言无关,配合 BGE-M3 完美
  • 混合检索:Dense + Sparse (BM25) + RRF 融合
  • 量化:Scalar/Binary/PQ 量化,内存节省 97%

2. pgvector ⭐⭐⭐⭐ (与智恒现有架构完美匹配)

  • 核心优势:PostgreSQL 扩展,零新服务,统一数据模型,ACID + JOIN
  • 智恒现状:已有 PostgreSQL,$0 额外成本
  • 扩展:pgvectorscale (DiskANN) 将 50M 向量延迟降低 28×
  • 限制:>10M 向量性能下降明显,无内置多模态
  • 结论:智恒的教材数据量(6 本教材)远小于 10M,pgvector 完全够用

3. Milvus ⭐⭐⭐

  • 核心优势:万亿级扩展,最丰富索引类型(9+),内置 BGE-M3
  • 劣势:部署重(etcd + MinIO + Milvus),888MB 镜像,学习曲线高
  • 结论:智恒不需要万亿级向量,过度设计

4. Weaviate ⭐⭐⭐

  • 核心优势:多模态第一(CLIP/ImageBind/Gemini),混合检索最强
  • 劣势:内存消耗大(HNSW 全在内存),GraphQL API 增加复杂度
  • 结论:除非需要跨模态检索,否则性价比不高

5. Chroma ⭐⭐

  • 核心优势:最简单 API(3 行代码),自动 embedding
  • 劣势:单节点上限 ~10M 向量,无原生异步客户端,非生产级
  • 结论:适合原型验证,不适合生产

四、综合评分矩阵 / Final Scoring Matrix

针对智恒平台的适配度评分 (满分 5 星)

候选方案架构适配存储兼容多模态部署成本集成难度中文支持性能总分
LightRAG (现有)434333323/35
KohakuRAG (现有)443432222/35
RAGFlow535235326/35
LlamaIndex + pgvector554554432/35
Haystack + pgvector454554431/35
RAGFlow + Qdrant535335428/35

部署成本:考虑智恒服务器资源(低配)和已有 PostgreSQL


五、推荐方案 / Recommendation

🥇 首选:LlamaIndex + pgvector

理由:

  1. 零新服务 — 直接用智恒已有的 PostgreSQL + pgvector,不增加运维复杂度
  2. 完美集成 — LlamaIndex 是纯 Python 库,直接嵌入 FastAPI 后端
  3. 索引类型丰富 — RAPTOR 树形索引天然适合教材的 章节→节→知识点 层次
  4. 中文兼容 — bge-m3 embedding 支持中文,教材 PDF 足够结构化为文本
  5. 轻量部署pip install llama-index,无额外容器
  6. 多路检索 + 重排 — 原生支持 RouterQueryEngine + 多路召回 + 重排

实施路径:

FastAPI 后端
├─ LlamaIndex
│ ├─ VectorStoreIndex (pgvector)
│ ├─ RAPTOR tree index (教材层次)
│ ├─ bge-m3 embedding
│ └─ BM25 混合检索 (可选)
└─ PostgreSQL (已有)
└─ pgvector 扩展

🥈 备选:RAGFlow(⚠️ 生产级完整方案,但 ARM64 不兼容)

理由:

  1. 最佳中文文档解析 — MinerU/Docling 对教材 PDF 的深度解析能力
  2. 开箱即用 — 完整 API + Web UI + 多路召回 + 融合重排
  3. 多模态 — 支持 PDF 中的图片、表格、公式

劣势:

  • 需要额外服务(ES/Infinity + MySQL + MinIO + Redis),资源需求较高
  • 对低配学校服务器可能偏重

⚠️ 阻塞问题:ARM64 架构不兼容

  • 实测 POC 失败:exec format error — RAGFlow Docker 镜像(infiniflow/ragflow:v0.25.6仅支持 x86_64 (linux/amd64)
  • 当前机器是 ARM64 (linux/arm64/v8),Docker 启动立即崩溃
  • 与 cold-rolling-planner 遇到的问题一致
  • 如果智恒未来迁移到 x86_64 服务器,RAGFlow 是更好的长期选择;当前 ARM64 环境无法使用

适用场景:

  • 如果智恒未来需要支持扫描版教材(OCR)、跨模态检索(图片搜索),且服务器架构为 x86_64

🥉 不推荐但在特定场景有价值

方案何时考虑
GraphRAG需要跨文档多跳推理(如"教材中所有提到'法律'的章节关联")
DSPy在 LlamaIndex 之上做 prompt 自动优化
Haystack需要组件级可观测性和管道调试
Milvus数据量达到亿级(目前不需要)

六、POC 建议 / POC Plan

POC 1: LlamaIndex + pgvector(推荐首选验证)

验证内容:

  1. 用 6 本教材 PDF 构建索引
  2. 测试检索准确率(对比 LightRAG)
  3. 测量延迟和吞吐量
  4. 验证中文分块效果

预期时间: 1-2 天

POC 2: RAGFlow(可选)

验证内容:

  1. Docker Compose 部署
  2. MinerU 解析教材 PDF 质量
  3. API 检索测试
  4. 资源占用测量

预期时间: 2-3 天


七、与现有方案的迁移策略 / Migration Strategy

阶段 1: 并行运行
LightRAG (:9621) 继续服务
LlamaIndex + pgvector 并行验证

阶段 2: A/B 测试
对同一批查询比较检索质量和延迟

阶段 3: 切换
保留 LightRAG 作为实验环境
LlamaIndex + pgvector 成为生产主检索

六、POC 实测结果 / POC Results

POC 1: LlamaIndex + Qwen3-Embedding-4B ✅ 通过

使用智恒实际教材数据(6本道德与法治 PDF)进行端到端验证:

指标结果
文档数量6 本教材
总文本量312,438 中文字符
分块数 (nodes)423
分块配置chunk_size=1024, overlap=100
Embedding 模型Qwen3-Embedding-4B (:8080)
Embedding 维度1536
索引构建时间9.2s
平均检索延迟56.3ms
P95 检索延迟56.7ms
检索质量✅ 高相关性,正确定位到对应教材

检索质量示例:

查询命中文档Top 分数是否准确
什么是公民的基本权利和义务?八年级下册0.74✅ 准确
社会主义核心价值观的内容是什么?九年级上册0.64✅ 准确
七年级上册道德与法治的核心内容是什么?七年级上册0.68⚠️ 返回了版权页而非内容页

发现:

  1. 检索延迟极低(56ms),适合实时教师交互
  2. 中文文本提取质量良好(PyMuPDF 成功提取 312K 字符)
  3. 部分查询返回了教材元数据(版权页/目录)而非内容,建议添加元数据过滤
  4. 使用 Qwen3-Embedding-4B embedding 质量足够中文场景
  5. 无需每查询调用 LLM,成本可控

POC 2: RAGFlow ❌ 失败 — ARM64 架构不兼容

指标结果
镜像infiniflow/ragflow:v0.25.6 (12.6GB)
配置Infinity + CPU
错误exec format error
原因镜像仅支持 linux/amd64,机器为 linux/arm64/v8

Docker 启动后 ragflow-cpu 容器持续重启,infinity 容器同样异常。结论:RAGFlow 目前无法在 ARM64 机器上运行

三种方案对比

方案延迟索引成本每查询 LLMARM64部署复杂度
LightRAG~100ms (估)高 (LLM/chunk)
KohakuRAG是 (9-11 次!)
LlamaIndex+pgvector56ms
RAGFlow

七、迁移策略 / Migration Strategy

指标LightRAGKohakuRAGLlamaIndex+pgvectorRAGFlow
索引成本高 (LLM/chunk)低 (纯 embedding)低 (纯 embedding)
查询延迟中 (~100ms)高 (9-11 LLM 调用)低 (56ms POC实测)中 (~100ms)
中文解析⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
多模态⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
部署复杂度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
社区活跃度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
适合智恒⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ (ARM64 ❌)

参考资源