深入解析RAGFlow六階段架構

下面用“流程圖 + 六階段拆解”的方式,把 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…