掌握检索增强生成 (Retrieval-Augmented Generation) 的 10 佳 RAGFlow 教程
如果您曾经尝试让大型语言模型回答特定领域的问题,却眼睁睁地看着它自信地产生幻觉,那么您一定体会过 想要解决的痛点。检索增强生成 (RAG) 将搜索层与生成相结合,使您的模型能够引用您自己数据中的事实。 是一种开放的、可视化的、管道驱动的方式,用于构建端到端的系统——从文档摄取到分块、嵌入、向量搜索和基于事实的响应。
在本指南中,我们汇总了您可以立即学习的最佳 教程,以及如何为您的技术栈选择合适的教程,并提供一个从“hello world”到生产环境的实用路线图。我们将保持实用性,提供示例、陷阱以及一些您在基本演练中找不到的技巧。
我们采用实用且以解决方案为导向的方法:简短的解释,清晰的步骤和可复制粘贴的代码片段。 让我们开始构建一个能够正确回答问题的 应用程序。
什么样的教程才能称得上“最佳 RAGFlow 教程”?
并非所有教程都一样。 最佳 教程具有以下几个共同特征:
- 端到端流程: 摄取 → 分块 → 嵌入 → 索引 → 检索 → 生成,全部在一个路径中。
- 真实的文档: PDF、HTML、幻灯片或混乱的日志,而不仅仅是玩具 markdown。
- 内置评估: 它们会教你如何衡量真实性、延迟和答案质量。
- 可扩展: 展示在哪里可以交换模型、分块策略或向量存储。
在选择学习路径时,请牢记这些标准。
目前 10 佳 RAGFlow 教程
以下是一个从初级到高级的精选列表。每个条目都包含它为什么有用,您将构建什么以及它适合谁。
1) RAGFlow 快速入门:您的第一个端到端管道
- 优点: 了解各个活动部件的最快方法,非常适合解除阻塞。
- 您将构建: 一个最小的管道: 上传 PDF,自动分块,嵌入,索引,并使用引用进行查询。
- 插入一个分块器(例如,递归 + 标题)和一个嵌入模型节点。
- 连接到向量存储,然后添加检索和 LLM 生成节点。
2) RAGFlow + 多个数据源: PDF、网页和 Notion
- 优点: 大多数实际项目都结合了杂乱的来源; 本教程展示了如何操作。
- 您将构建: 一个管道,用于摄取 PDF、抓取 URL 并按计划同步 Notion 页面。
3) 分块大师班: 从朴素分割到语义窗口
- 优点: 分块是赢得或失去大部分 RAG 质量的地方。
- 您将构建: 使用 grounding 指标对分块策略进行并排评估。
- 提示: 保持块足够小以保证相关性,但又足够大以保证上下文(通常为 300–700 个 token,重叠 10–20%)。
4) 大规模嵌入: 交换模型和向量存储
- 您将构建: 一种管道变体,用于交换嵌入(例如,
text-embedding-3-large、BGE、E5)和向量存储(FAISS、Milvus、PGVector)。
5) RAGFlow 中的防护措施和幻觉缓解
- 您将构建: 具有答案约束、拒绝策略和引用检查的检索增强管道。
- 添加答案验证器节点以确保每个答案至少引用 N 个来源。
- 使用禁止猜测并要求在缺少证据时说“我不知道”的指令模板。
6) 结构化数据的 RAGFlow: SQL + 文本混合检索
- 您将构建: 一个双重检索器管道: 用于文档的语义检索和用于 SQL 的工具调用。
- 将 SQL 结果表作为上下文人工产物包含到 LLM 中。
7) 使用黄金数据集和人工审核评估 RAG 质量
- 您将构建: 一种评估工具,用于衡量真实性、引用覆盖率和帮助性。
8) 生产中的 RAGFlow: 缓存、超时和可观察性
- 您将构建: 具有请求缓存、重试和跟踪仪表板的强大管道。
- 发出检索延迟和 token 使用情况的跨度/指标。
9) 特定领域的剧本: 法律、医疗保健和支持
- 您将构建: 模板,用于遵守每个领域的合规性、词汇和推理模式。
10) RAGFlow + 函数调用: 行动,而不仅仅是答案
- 优点: 最强大的 RAG 系统可以读取、推理和行动。
- 您将构建: 一个管道,其中 LLM 检索文档,然后调用工具——发送电子邮件、打开工单或安排作业。
实用路线图: 30 天内从教程到生产
在此 4 阶段计划中使用上面的教程。 将其视为您的“ 训练营”。
第 1 周: 基础知识和首次成功
- 完成教程 1(快速入门)和教程 3(分块大师班)。
- 发布一个概念验证,回答来自您文档的 20–30 个测试问题。
第 2 周: 数据深度和可靠性
- 交换嵌入和向量存储(教程 4); 选择成本/质量的获胜者。
第 3 周: 评估、防护措施和领域适应
第 4 周: 混合检索和可操作性
- 连接 SQL/工具调用(教程 6)以进行混合查询。
- 添加函数调用和批准(教程 10),以便您的 应用程序可以采取行动。
- 检测可观察性仪表板; 设置准确性和延迟的 SLO。
您必须了解的 RAGFlow 概念
即使是最好的 教程也假设了一些核心思想。 这是一个快速回顾。
- 检索增强生成 (RAG): 使用从您的知识库中检索到的块来扩充 LLM 的上下文,以便答案以证据为基础。
- 分块: 将文档拆分为可检索的单元。 重叠保留上下文; 标题创建边界; 语义方法使用嵌入来查找自然断点。
- 嵌入: 块和查询的向量表示。 更好的嵌入可以提高检索相关性并减少幻觉。
- 向量存储: 具有相似性搜索的向量数据库。 选择会影响速度、召回率和规模。
- 重新排序: 可选的第二阶段评分器,用于按相关性重新排序检索到的块。
- 提示工程: 明确的指令,要求引用、禁止猜测和格式化输出。
- 评估: 使用黄金数据集、人工审核和自动指标进行系统测量。
复制粘贴启动器: 基线 RAG 提示模板
在您的生成节点中使用此模板以减少幻觉并强制执行引用。
您是一位细心的助手,只使用在检索到的上下文中找到的信息来回答问题。
规则:
- 在每个声明后使用 [source_name:page_or_section] 引用证据。
- 如果答案不在上下文中,请说“我不知道基于提供的来源。”
- 定义首选直接引用; 总结程序。
上下文:
{{retrieved_context}}
问题:
{{user_query}}
回答:
示例: 交换嵌入并衡量影响
# 伪代码,说明您将在高级教程中看到的实验逻辑
from ragflow import Pipeline, EmbeddingNode, VectorStoreNode, EvalHarness
pipelines = []
for model in ["text-embedding-3-large", "bge-large", "e5-large"]:
emb = EmbeddingNode(model=model)
vs = VectorStoreNode(kind="milvus", metric="cosine")
pl = Pipeline.add_nodes([
"ingest", "chunk", emb, vs, "retrieve", "generate"
])
pipelines.append((model, pl))
h = EvalHarness(goldset="gold_qa.jsonl")
results = {}
for model, pl in pipelines:
results[model] = h.run(pl, metrics=["groundedness", "citation_coverage", "latency"])
print(results)
解释备忘单:
- 如果在模型交换后 groundedness 跳跃,请保留它——即使 token 成本略高。
- 如果延迟飙升,请添加缓存或将最大检索块从 8 减少到 5。
这些教程可帮助您避免的常见陷阱
- 过度分块: 太小的块会导致缺少上下文和嘈杂的答案。
- 欠分块: 巨大的块会用不相关的文本污染上下文窗口。
- 一刀切的嵌入: 领域语言(法律、临床)可能需要领域调整的模型。
- 没有评估: 在没有基线的情况下更改任何内容都会产生虚幻的回归。
- 跳过防护措施: 如果没有拒绝规则,您的模型会猜测。
为您的用例选择正确的教程
- 受监管的行业: 首先是教程 5 和 9,然后是 7。
顺便说一句: 使用 Sider.AI 更快地制作原型
在您学习 教程时,将其用作您的草稿纸; 然后在您的管道中编纂获胜者。
故障排除指南: 快速修复中断的问题
- 修复: 在提示中强制执行引用要求并添加验证器节点。
- 修复: 增加块重叠,切换到更好的嵌入模型或添加重新排序。
- 修复: 缓存向量结果,限制检索到的块并使用流式 token。
- 修复: 规范化元数据,删除近乎相同的重复块,增加新文档的权重。
主要收获
- 生产成功需要缓存、可观察性、防护措施和黄金数据集。
- 使用领域剧本和函数调用超越问答,进入实际工作流程。
下一步做什么
- 选择两个符合您当前需求的教程(例如,快速入门 + 分块大师班)。
- 从您自己的文档中组装一个黄金问答集(从 50 个问题开始)。
- 一次运行一个更改; 测量每次更改后的真实性和延迟。
- 当您的评估稳定时,使用缓存和防护措施移动到生产模板。
- 一旦您的基线可靠,就可以分层进行函数调用和领域策略。
常见问题解答
问题 1:对于绝对初学者来说,最好的 RAGFlow 教程是什么?
从 RAGFlow 快速入门教程开始,该教程涵盖摄取 PDF、分块、嵌入、索引、检索以及生成引用。 它可以让您快速获得端到端的体验,并为您设置更深入的 RAGFlow 教程。
问题 2:如何在基本教程之外提高 RAGFlow 的准确性?
关注分块策略、嵌入质量和重新排序。 高级 RAGFlow 教程还展示了如何添加防护措施和评估工具,以减少幻觉并量化真实性。
问题 3:哪些嵌入最适合 RAGFlow 用于企业文档?
尝试强大的通用模型,如 text-embedding-3-large、E5 或 BGE,然后在您的数据上测量检索指标。 最好的 RAGFlow 教程建议在模型和向量存储之间进行 A/B 测试,以选择获胜者。
问题 4:RAGFlow 可以处理像 SQL 这样的结构化数据以及文档吗?
可以。 RAGFlow 的混合检索教程展示了如何通过函数调用将定量查询路由到 SQL,同时仍然使用语义检索来处理非结构化文档,然后在生成时合并结果。
问题 5:如何在上线之前评估 RAGFlow 管道?
遵循以评估为重点的 RAGFlow 教程:创建一个带有来源的黄金问答集,在更改后运行自动化测试,并跟踪真实性、引用覆盖率、延迟和帮助性。 仅在指标稳定时才部署。