Advanced-QA-and-RAG-Series
8种主流RAG技术对比平台,LangChain/LangGraph驱动,Gradio交互界面,支持SQL/图谱/多Agent协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
8种主流RAG技术对比平台,LangChain/LangGraph驱动,Gradio交互界面,支持SQL/图谱/多Agent协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你在一家客服部门工作,每天面对上百个来自客户的技术问题——有的需要查数据库,有的需要检索文档,有的需要跨多个数据源联合查询。传统 RAG 只能做简单的文档匹配,答案要么不完整,要么答非所问。而 Farzad Roozitalab(GitHub ID @Farzad-R)推出的 Advanced-QA-and-RAG-Series 仓库,正在将 RAG 技术推向一个系统化的新高度。

这个仓库不是单一工具,而是一个模块化的 RAG 技术演示平台,涵盖了从最基础的 Naive RAG 到前沿的 Speculative RAG、Agentic RAG 在内的 8 种主流技术方案,每个方案都配有独立的 Gradio 可交互界面、完整的源码和配套视频教程。作者本人还在 YouTube 频道上逐个讲解每个技术的原理与实现细节,形成了"理论 + 代码 + 演示"三位一体的学习闭环。
RAG(Retrieval-Augmented Generation,检索增强生成)是当前 LLM 落地最主流的工程范式之一。简单来说,就是让大语言模型在回答问题前,先从外部知识库检索相关文档,再基于检索结果生成答案。这一机制有效缓解了 LLM"幻觉"和"知识过时"两大痛点。
然而,基础的 Naive RAG(直接检索-拼接-生成)存在明显局限:检索质量参差不齐时,生成的答案可能引用了不相关的内容;当用户问题涉及多个数据源时,单一检索路径难以覆盖完整上下文;对话场景下,缺乏记忆机制导致每次交互都从零开始。这些问题催生了 RAG 技术的持续进化。
Farzad-R 的仓库正是这一进化的缩影。他本人是深度学习和 AI Agent 系统研究者,在 GitHub 上还维护着 LLM-Zero-to-Hundred 等系列项目,专注于从零到生产级别的 LLM 应用构建。Advanced-QA-and-RAG-Series 的设计理念是通过对比学习——将 8 种 RAG 变体放在同一个技术框架下,让开发者能够直观感受每种策略的优劣与适用场景。
仓库由 5 个独立子项目组成,每个项目对应一类典型应用场景:
RAG-Evolution-8-SOTA-Techniques 是整个仓库的核心模块,系统实现了 8 种 RAG 策略:
| 策略 | 核心原理 | 典型优势 |
|---|---|---|
| Standard RAG | 向量检索 + LLM 生成 | 基准方案 |
| Conversational RAG | 添加会话记忆 | 支持多轮对话 |
| Fusion RAG | 多路检索融合 | 覆盖孤岛数据源 |
| HyDE | 假设性文档嵌入 | 提升检索召回 |
| Self-RAG | LLM 自我反思检索质量 | 事实性鲁棒 |
| Adaptive RAG | 动态调整检索深度 | 效率与效果平衡 |
| Corrective RAG (CRAG) | 评估检索结果质量 | 可靠性增强 |
| Speculative RAG | 小模型草稿 + 大模型验证 | 成本与速度控制 |
| Agentic RAG | LLM Agent 自主决策检索策略 | 复杂多跳推理 |
每种策略在 src/rag_techniques/ 目录下都有独立的 Python 模块。以 Self-RAG 为例,核心流程包含三个阶段:检索阶段调用 ChromaDB 向量数据库执行相似度搜索;评分阶段使用专门的 Grader LLM 对每个检索结果打分,判断其是否与问题相关;生成阶段结合评分结果选择性参考相关文档。Speculative RAG 则引入双模型协作——先用 GPT-3.5 生成草稿,再用 GPT-4 进行验证和质量提升,兼顾了成本与效果。

Q&A-and-RAG-with-SQL-and-TabularData 针对数据库场景设计。用户可以用自然语言查询 SQLite 数据库、CSV 和 Excel 文件,系统借助 LangChain 的 SQL Agent 能力将自然语言转换为 SQL 查询,同时结合 ChromaDB 向量检索实现混合问答。安全设计方面,README 特别强调了"只读权限"原则——连接数据库时必须使用 READ ONLY 模式,防止 Agent 误操作删除数据。
KnowledgeGraph-Q&A-and-RAG-with-TabularData 则将知识图谱引入 RAG 流程。使用 Neo4j 图数据库存储结构化知识,结合 Cypher 查询语言和 LangChain Graph Agent,支持跨表关联查询。当用户询问涉及多个实体的复杂关系时,知识图谱能够清晰呈现数据之间的关联路径,答案的可解释性远高于纯向量检索。
LangGraph_1o1_Agentic_Customer_Support 展示了如何用 LangGraph 构建客服 Agent 工作流。LangGraph 是 LangChain 官方推出的图状态机框架,将 Agent 的决策过程建模为状态图,每个节点代表一个动作(检索、查询、生成),边代表状态转移。这比传统的链式调用更具表达力,可以优雅地处理条件分支、循环和并行任务。

AgentGraph-Intelligent-Q&A-and-RAG-System 是仓库中最复杂的系统,集成了 SQL Agent、旅行预订 SQL Agent、Tavily 网络搜索、RAG 检索等多个工具,通过图结构编排多 Agent 协作。当用户提出复杂问题时,系统自动选择合适的工具组合,形成动态工具链。
从技术栈来看,整个项目以 LangChain/LangGraph 作为核心编排框架。LangChain 提供了 RAG 流程中所有关键组件的抽象——Embedding 模型、向量存储、检索器、提示模板、输出解析器。LangGraph 在此基础上增加了状态机建模能力,支持 Agent 的复杂决策逻辑。
向量存储采用 ChromaDB,这是一个专为 LLM 应用设计的轻量级向量数据库,支持本地持久化和元数据过滤。配置管理通过 YAML 文件(configs/ 目录)集中管理,包含模型选择、温度参数、Embedding 配置等。
Gradio 作为唯一的 UI 层,每个子项目都提供一个独立的 Gradio 界面,用户可以在浏览器中切换不同的 RAG 策略、选择不同的数据集(tech_docs、faq_data、news_articles),实时观察不同策略的输出差异和中间日志。

代码结构高度模块化——所有子项目遵循统一的目录规范(src/utils、configs、explore、data),每个模块都可以独立运行或替换。Python 文件共 69 个,Jupyter Notebook 42 个,涵盖了从生产代码到教学演示的完整生态。
对于普通 AI 爱好者,Gradio 界面极大降低了体验门槛——只需配置 .env 中的 OpenAI API Key,即可通过浏览器体验 8 种 RAG 策略的对比效果。配套的 Jupyter Notebook(explore/ 目录)提供了逐步教学,每个 Notebook 对应一段 YouTube 视频讲解,非常适合边看边学。
对于开发者,项目代码质量较高——使用类型注解(from typing import List, Tuple, Dict, Any)、配置类(APPConfig)、日志记录(self.logs 追踪每步推理过程),但缺少单元测试(pytest 测试文件未找到)和 GitHub Actions CI/CD 配置。这意味着在生产环境使用前,需要自行补充测试用例和安全审计。
主要依赖:LangChain 0.2.x、LangGraph 0.2.x、OpenAI 1.40+、ChromaDB 0.5+、Gradio 4.44+。项目使用 pyprojroot 处理路径,确保在任何子目录运行都指向正确的项目根目录。
必须承认,这个仓库也存在一些值得注意的问题。
API 成本风险:所有策略默认调用 GPT-4/gpt-3.5 Turbo,在生产环境中高频使用会产生显著费用。Speculative RAG 尤其如此——每个问题都会触发多次 LLM 调用。缺乏本地模型(如 Llama 3、Qwen)支持,限制了其在隐私敏感或离线场景的应用。
缺乏生产级组件:没有 Docker 部署配置、没有 Docker Compose 一键启动、没有 CI/CD 流水线、没有监控告警。这意味着从 Demo 到生产的路需要开发者自己铺设。
评估体系不完善:虽然有多个 RAG 策略变体,但缺少自动化评估指标(如 RAGAS、F1、Recall@K)的集成演示,无法量化对比各策略的实际效果差异。
维护活跃度:作为教程性质的项目,更新频率与实际生产需求可能存在脱节,部分依赖版本(如 LangChain 0.2.x)已不是最新。
Advanced-QA-and-RAG-Series 的价值在于它提供了一张完整的技术地图。RAG 领域发展迅速,从 Naive RAG 到 Agentic RAG 的演进路线,反映了整个 AI Agent 领域从"工具调用"向"自主规划"升级的大趋势。Speculative RAG 的双模型协作模式,也预示了未来 LLM 推理将走向"小模型快草稿 + 大模型精验证"的混合架构。
从 GitHub 增长曲线看,RAG 相关项目的 star 增速在过去一年持续攀升,说明市场对高质量 RAG 工程实践的需求依然旺盛。在企业落地场景中,RAG 与知识图谱的结合(GraphRAG)正成为新热点——微软的 GraphRAG、Neo4j 的 LangChain 集成都是这一趋势的佐证。
对于想在 AI 应用开发领域深耕的开发者,这个仓库是一份值得细读的技术参考。对于 AI 爱好者,它是理解 RAG 演进历程的最佳实践教材。