下面用“流程图 + 六阶段拆解”的方式,把 RAGFlow 的完整流程逐层剖开,力求把每一步的输入、输出、可选策略、内部机制都讲清楚。

────────────────────────
一、总览图(先建立体感)

用户提问

├─→【阶段1 查询理解】意图解析、关键词扩展、槽位抽取

├─→【阶段2 路由与任务编排】简单问句⇒轻量流程;复杂问句⇒激活多轮/多路/Graph 检索

├─→【阶段3 混合检索】向量+全文+图关系 三路并行召回

├─→【阶段4 精排与重排】粗排→精排→多样性/去重→Top-K 切片

├─→【阶段5 上下文组装】Prompt 模板+引用标注+长度截断策略

├─→【阶段6 答案生成与后处理】LLM 生成、幻觉检测、引用回链、敏感词过滤

回答返回
────────────────────────
二、六阶段详细拆解

阶段1 查询理解(Query Understanding)

  1. 输入:原始用户问句 + 会话历史(多轮场景)。
  2. 关键动作
    • 意图分类:使用轻量模型(如 BERT-mini)把问句分到“事实问答 / 摘要 / 比较 / 分析”等桶;不同意图会触发不同后续工作流。
    • 关键词扩展:内置实体链接模块,把“苹果”⇒{Apple Inc., 苹果水果, 苹果手机} 等候选实体,并计算消歧置信度。
    • 时空间抽取:对“2024 年 Q1 财报”这类时间表达做归一化(“2024-01-01~2024-03-31”)。
  3. 输出:结构化 Query Object(意图标签、扩展关键词列表、时间区间、地点实体、必须包含/排除词)。

阶段2 路由与任务编排(Router & Workflow Orchestration)

  1. 规则+模型双重决策
    • 简单事实 → 单路向量检索 + 1-shot LLM 回答;
    • 复杂分析 → 激活“Agentic RAG”子流程:并行调用多路检索器、SQL 检索器、外部 API(如财报 API)。
  2. Graph Workflow 描述:RAGFlow 用一张 DAG(有向无环图)描述任务依赖;节点可以是“向量检索”“SQL 查询”“调用外部工具”“LLM 生成”等,边表示数据流向。该 DAG 可在 Web UI 里拖拽生成。
  3. 动态扩展:若第一次召回结果置信度低,DAG 会自动插入“二次检索”节点,扩大时间窗口或更换索引空间。

阶段3 混合检索(Hybrid Retrieval)

  1. 三路召回并行
    • 向量召回:基于嵌入模型(e5-large-v2、BGE 等)把 Query Object 变成向量,在 Milvus/Qdrant 中做 ANN 搜索,召回 top 100。
    • 全文召回:Elasticsearch 做 BM25 + 扩展关键词,召回 top 100。
    • 图谱召回:在 Neo4j 中执行 Cypher,利用实体 ID 做多跳查询(例如“公司→高管→履历→学历”),召回与实体关联的文档 ID 列表。
  2. 结果融合:使用 Reciprocal Rank Fusion (RRF) 把三路分数归一化,取前 N。

阶段4 精排与重排(Rerank & Filtering)

  1. 精排模型:Cross-Encoder(如 BAAI/bge-reranker-large)对 Query-Object 与候选片段逐一打分,输出相关性概率。
  2. 多样性策略:MMR(最大边际相关性)去冗余,保证切片之间信息不重复。
  3. 长度截断:按 token 预算(如 4k)选 Top-K 个片段,K 动态计算:K = min(K_max, floor(预算 / 平均片段长度))。

阶段5 上下文组装(Context Assembly)

  1. Prompt 模板化:系统内置多种模板(“你是某领域专家,请基于以下资料回答…引用的段落请以[^id]结尾…”)。
  2. 引用溯源:每个片段附带元数据(文件名、页码、段落 ID),在 Prompt 里显式标注,方便 LLM 在回答里插入引用。
  3. 长度控制:若片段总长度仍超预算,优先保留高相关片段;对长片段做滑动窗口二次切分。

阶段6 答案生成与后处理(Generation & Post-processing)

  1. 生成:调用 LLM(OpenAI GPT-4、DeepSeek、本地 Llama-3 等),temperature 按意图动态调整:事实问答 0.1,创意写作 0.7。
  2. 幻觉检测:基于“自洽性检查”——让 LLM 再生成一次,比较两次回答的引用片段是否一致;若差异大,触发重试。
  3. 回链高亮:前端把返回的 [^id] 渲染成可点击锚点,用户点击即可跳转到原文高亮段落,实现“可解释性”。
  4. 敏感词/合规过滤:正则 + 词典双重过滤;不合规内容打码并提示“涉及敏感信息已隐藏”。

────────────────────────
三、可插拔组件与配置要点

  1. 文档解析
    • DeepDoc 解析器支持 PDF、扫描件、图片、表格;表格自动转 Markdown 表格,数字保留两位小数。
    • 支持用户手动调整切片:在 Chunk 页面双击即可修改分块边界、添加关键词权重。

  2. 索引策略
    • “RAPTOR” 召回增强:先在段落级向量检索,再对命中的段落做二次句子级检索,提高细粒度命中率。
    • 图索引:实体-关系三元组实时写 Neo4j,并同步到 Elasticsearch 做全文混合召回。

  3. 部署与扩展
    • Docker Compose 一键启动,支持 GPU 镜像;对外暴露 REST API、WebSocket 流式接口。
    • 多知识库隔离:每个团队独立 ES Index + 向量库,权限粒度到文件级。

────────────────────────
四、小结

RAGFlow 的最大特色是把传统 RAG“两段式”(检索→生成)拆成了“可编排、可观测、可干预”的多阶段流水线。
• 对开发者:提供 DAG 工作流画布,像搭积木一样组合“检索器-重排器-工具-LLM”。
• 对业务:每个阶段的结果都可查看、可人工纠正,大幅降低幻觉,提升最终答案的可信度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96387.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96387.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96387.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言中的迭代器模式与安全访问实践

Go语言中的迭代器模式与安全访问实践 1. 迭代器模式在Go中的演进 1.1 传统迭代器模式回顾 在传统面向对象语言中,迭代器模式通常涉及三个核心组件:可迭代集合接口(Iterable)迭代器接口(Iterator)具体实现类// 传统迭代器模式示例 type Iterator interfac…

从零开始:JDK 在 Windows、macOS 和 Linux 上的下载、安装与环境变量配置

前言 在进入 Java 世界之前,搭建一个稳定、可用的开发环境是每个开发者必须迈过的第一道门槛。JDK(Java Development Kit)作为 Java 程序开发的核心工具包,其正确安装与环境变量配置直接关系到后续编译、运行、调试等所有开发流程…

【音视频】芯片、方案、市场信息收集

系统级芯片安霸(Ambarella)Ambarella H22/H32:高端方案,支持8K/4K高帧率录制,低功耗,广泛用于GoPro Hero 11/12、Insta360等旗舰机型。 Ambarella A12/A10:早期主流方案,支持4K60fps…

中科米堆CASAIM提供机加工件来料自动化测量尺寸方案

机加工行业面临日益严格的质量追溯要求,来料质量的稳定性直接影响着后续生产效率与成品合格率。传统人工检测方式受限于接触式工具的测量精度与操作效率,难以应对小批量、多品种的现代生产需求。传统机加工件来料检测长期面临这些问题:其一&a…

MySQL只操作同一条记录也会死锁吗?

大家好,我是锋哥。今天分享关于【MySQL只操作同一条记录也会死锁吗?】面试题。希望对大家有帮助; MySQL只操作同一条记录也会死锁吗? 超硬核AI学习资料,现在永久免费了! 在 MySQL 中,死锁通常是由于多个事务对不同…

知识蒸馏 Knowledge Distillation 论文 Generalized Knowledge Distillation (GKD) 乘法法则、全概率公式、贝叶斯定理

知识蒸馏 Knowledge Distillation 论文 Generalized Knowledge Distillation (GKD) 乘法法则、全概率公式、贝叶斯定理 flyfish 代码实践 On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes 设定(方便算数)&#x…

Fastjson 2.x踩坑——序列化Java字段为null值默认输出

先上无法实现效果的代码,我的目的是序列化时如果数字型字段为null则填0,尽可能保证数据整齐。 Data NoArgsConstructor AllArgsConstructor ToString JSONType(serializeFeatures {JSONWriter.Feature.WriteNulls,JSONWriter.Feature.WriteMapNullValue…

4G高负荷解决方案

4G高负荷解决方案 一、网络优化手段(低成本优先)参数优化 调整功率控制、负荷均衡参数。优化小区重选与切换参数,避免高负荷小区拥塞。负荷均衡 开启 MLB(Mobility Load Balancing,移动负荷均衡)。引导用户…

K8S 安装部署 Rocky Linux 10.0 + Docker + Containerd + Calico

Docker Containerd Flannel 安装部署K8S 系统环境准备 # 1. 设置主机名 hostnamectl set-hostname k8s-n1 && bash# hostnamectl set-hostname k8s-n2 && bash # hostnamectl set-hostname k8s-n3 && bash# 2. 删除系统自带的容器软件(可…

新华三H3CNE网络工程师认证—等价路由

等价路由就是“去同一个地方有多条路,时间一样近,快递站聪明地分拨送货”的技术!(网络不堵车,速度翻倍爽!)路由表中存在等价路由之后,前往该目的网段的IP报文路由器辉通过所有有效的…

DBLens 业界首创AI表结构变更审查,智能评估影响,助力开发效率跃升。

智能守护每一次变更:dblens AI 审查流程详解 在快速迭代的软件开发过程中,数据库结构变更是常见却高风险的操作。一次不经意的字段调整,可能引发线上故障、数据不一致甚至业务中断。为应对这一挑战,dblens 率先引入AI驱动的表结构…

窗口看门狗(WWDG)

窗口看门狗(WWDG)1. WWDG 简介作用:在应用跑飞、死循环、长时间被中断占用等异常时,强制复位 MCU,提高系统可靠性。时钟来源:来自 APB1 时钟 (PCLK1) 的分频(与 IWDG 的 LSI 独立时钟不同&#…

PyTorch API 6

文章目录torch.onnx概述基于 TorchDynamo 的 ONNX 导出器基于TorchScript的ONNX导出器贡献与开发torch.optim如何使用优化器构建优化器每个参数的选项执行优化步骤optimizer.step()optimizer.step(closure)基类算法如何调整学习率如何利用命名参数加载优化器状态字典权重平均法…

2025年09月计算机二级MySQL选择题每日一练——第二期

计算机二级中选择题是非常重要的,所以开始写一个每日一题的专栏。 答案及解析将在末尾公布! 今日主题:SQL 交互操作基础 1、有如下创建表的语句: CREATE TABLE tb_gs( gno CHAR(10) NOT NULL, sno CHAR(10) NOT NULL, gjob CH…

MySQL诊断系列(5/6):表结构与元数据查询——快速掌握数据库“DNA”

🔗 接上一篇《MySQL性能瓶颈定位》,今天我们来学习如何像查字典一样,快速、精准地了解任何数据库的内部结构。 当你接手一个新项目,或者需要排查一个不熟悉的模块时,你最需要的是什么? 不是代码&#xff0…

精准评估新纪元:AI得贤招聘官AI面试智能体6.3,重新定义AI面试

随着生成式AI技术爆发式发展,人力资源管理正经历从“信息化”到“智能化”的跃迁。据Gartner预测,2025年60%的企业将使用AI完成HR基础事务性工作。在这场变革中,AI得贤招聘官以其卓越的技术实力和产品能力,已成为行业智能化转型的…

MinerU:重新定义PDF智能提取的开源利器

MinerU:重新定义PDF智能提取的开源利器 ——告别传统工具的“鸡肋”体验,让文档处理真正高效智能 在数字化时代,PDF、Word等文档已成为信息传递的主要载体,但如何从这些格式中精准提取数据,却成了困扰无数人的难题。…

电脑芯片其实更偏向MPU不是CPU,GPU CPU NPU MPU MCU的区别

现代电脑的处理器(如 Intel i5)本质上是 MPU,因为它集成了 CPU 核心、缓存、定时器等,但我们日常仍习惯称其为 “CPU”电脑里的芯片(如 Intel i5、AMD Ryzen)通常被通俗地称为 “CPU”,但严格来…

Python爬虫XPath实战:电商商品ID的精准抓取策略

1. 引言 在电商数据爬取过程中,商品ID(Product ID)是最关键的字段之一,它通常用于唯一标识商品,并可用于构建商品详情页URL、价格监控、库存查询等场景。然而,不同电商网站的HTML结构差异较大,…

Web3:重构互联网秩序的下一代范式革命

Web3(即 Web 3.0)作为互联网发展的第三代形态,并非简单的技术迭代,而是一场围绕 “数据主权” 与 “价值分配” 的底层逻辑重构。它以区块链为核心骨架,融合分布式存储、密码学、人工智能等技术,旨在打破 W…