r1-reasoning-rag:一種新的 RAG 思路

最近發現了一個開源項目,它提供了一種很好的 RAG 思路,它將?DeepSeek-R1?的推理能力結合?Agentic Workflow?應用于 RAG 檢索

項目地址
https://github.com/deansaco/r1-reasoning-rag.git

項目通過結合?DeepSeek-R1Tavily?和?LangGraph,實現了由 AI 主導的動態信息檢索與回答機制,利用?deepseek?的?r1?推理來主動地從知識庫中檢索、丟棄和綜合信息,以完整回答一個復雜問題

新舊 RAG 對比

傳統的 RAG(檢索增強生成)做法有點死板,通常是在處理完搜索后,通過相似性搜索找到一些內容,再按匹配度重新排個序,選出看起來靠譜的信息片段給到大型語言模型(LLM)去生成答案。但這么做特別依賴于那個重排序模型的質量,要是這模型不給力,就容易漏掉重要信息或者把錯的東西傳給 LLM,結果出來的答案就不靠譜了。

現在?LangGraph?團隊對這個過程做了大升級,用上了?DeepSeek-R1?的強大推理能力,把以前那種固定不動的篩選方式變成了一個更靈活、能根據情況調整的動態過程。他們把這個叫做“代理檢索”,這種方式讓 AI 不僅能主動發現缺少的信息,還能在找資料的過程中不斷優化自己的策略,形成一種循環優化的效果,這樣交給 LLM 的內容就更加準確了。

這種改進實際上是把測試時擴展的概念從模型內部推理應用到了 RAG 檢索中,大大提高了檢索的準確性和效率。對于搞 RAG 檢索技術的人來說,這個新方法絕對值得好好研究一下!

核心技術與亮點

DeepSeek-R1 推理能力

最新的?DeepSeek-R1?是一款強大的推理模型

  • 深度思考分析資訊內容

  • 對現有內容進行評估

  • 通過多輪推理辨別缺失的內容,以提高檢索結果的準確性

Tavily 即時資訊搜索

Tavily?提供即時的資訊搜索,能使大模型過去最新的資訊,擴展模型的知識范圍

  • 可動態檢索來鋪沖缺失的資訊內容,而非僅僅依靠靜態數據

LangGraph 遞歸檢索(Recursive Retrieval)

透過?Agentic AI?機制,讓大模型在多輪檢索與推理后形成閉環學習,大致流程如下:

  • 第一步檢索問題相關的資訊

  • 第二步分析資訊內容是否足夠以回答問題

  • 第三步如果資訊不足,則進行進一步查詢

  • 第四步過濾不相關的內容,只保留有效的資訊

這樣的?遞歸式?檢索機制,確保大模型能夠不斷優化查詢結果,使得過濾后的資訊更加完整與準確

源碼分析

從源碼上來看,就很簡單的三個文件:agentllmprompts

圖片

Agent

這部分的核心思路在于?create_workflow?這個函數

圖片

它定義了這個?workflow?的節點,其中?add_conditional_edges?部分定義的是條件邊,整個處理思路就是一開始看到的那張圖的遞歸邏輯

如果不熟悉?LangGraph?的話,可以查看一下相關的資料。
LangGraph?構造的是個圖的數據結構,有節點(node) 和邊(edge),那它的邊也可以是帶條件的。

每次檢索后,都會通過大模型進行篩查,過濾掉沒用的信息(Filter Out Irrelevant Information),保留有用的信息(Retain Useful Information),對于缺失的信息(Identify Missing Information)就再進行一次檢索,然后重復這個過程直到找到想要的答案

prompts

這里主要定義了兩個提示詞。

VALIDATE_RETRIEVAL?:它用于驗證檢索到的信息是否能夠回答給定的問題。該模板有兩個輸入變量:retrieved_context(檢索到的上下文)和 question(問題)。其主要目的是生成一個JSON格式的響應,根據提供的文本塊來判斷它們是否包含能夠回答問題的信息。

圖片

ANSWER_QUESTION:用于指導一個問答代理(question answering agent)根據提供的文本塊來回答問題。該模板同樣有兩個輸入變量:retrieved_context(檢索到的上下文)和 question(問題)。其主要目的是基于給定的上下文信息提供一個直接且簡潔的答案。

圖片

llm

這里很簡單就是定義使用的?r1?模型

圖片

可以改用其他廠商提供的模型,例如?openrouter?的免費?r1?模型

圖片

測試效果

我這里單獨寫了一個腳本,沒有使用項目中的,問一下?《哪吒2》中哪吒的師傅的師傅是誰

圖片

首先它會先調用搜索去查資料,然后開始驗證

圖片

接著它會開始分析,并得到?哪吒的師父是太乙真人?這個有效信息,而且也發現了缺失的信息?太乙真人的師父(即哪吒的師祖)的具體身份或名字

圖片

接著它就會去繼續搜索缺失的信息,并繼續對搜索回來的信息進行分析校驗

圖片

后面因為我這邊網絡斷了,就報錯了,但是從上圖可以看到,它應該是可以找到這個關鍵的信息了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71630.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務器硬件配置統計

服務器型號和SN # dmidecode -t system | grep -E "Product Name|Serial Number" | awk -F: {print $2} PowerEdge R7515 4567CPU型號和物理CPU數量 echo "$(lscpu | grep "Model name" | cut -d : -f2 | sed s/^ *//) x $(lscpu | grep "Soc…

Hadoop、Spark、Flink Shuffle對比

一、Hadoop的shuffle 前置知識: Map任務的數量由Hadoop框架自動計算,等于分片數量,等于輸入文件總大小 / 分片大小,分片大小為HDFS默認值128M,可調 Reduce任務數由用戶在作業提交時通過Job.setNumReduceTasks(int)設…

Docker的常用鏡像

Docker的常用鏡像命令主要包括鏡像的查看、搜索、拉取、刪除、構建等操作,以下是綜合多個來源的總結: 一、基礎鏡像操作 查看本地鏡像 docker images? 顯示所有本地鏡像,包含倉庫名(REPOSITORY)、標簽(TAG…

車載以太網測試-3【Wireshark介紹】

1 摘要 Wireshark 是一款開源的網絡協議分析工具,廣泛用于網絡故障排查、協議分析、網絡安全檢測等領域。它能夠捕獲網絡數據包,并以詳細的、可讀的格式顯示這些數據包的內容。廣泛應用于車載網絡測試,是車載網絡測試工程師必須掌握的工具。…

基于跨模態地圖學習的視覺語言導航

前言 本工作開展的背景: 人類和其他物種構建類似地圖的環境表示來完成尋路: (1)當人類只使用現成的駕駛或步行路徑到達目標時,構建認知地圖和獲取空間知識的能力就會下降; (2)另…

nodejs關于后端服務開發的探究

前提 在當前的環境中關于web server的主流開發基本上都是java、php之類的,其中java spring系列基本上占了大頭,而python之流也在奮起直追,但別忘了nodejs也是可以做這個服務的,只是位置有點尷尬,現在就來探究下nodejs…

Ubuntu20.04本地配置IsaacGym Preview 4的G1訓練環境(一)

Ubuntu20.04本地配置IsaacGym Preview 4的G1訓練環境 配置conda虛擬環境安裝pytorch、cuda和cudnn安裝IsaacGym Preview 4配置rsl_rl配置unitree_rl_gym配置unitree_sdk2py 寫在前面,要求完成anaconda配置,若沒完成,請參考本人其余博客&#…

RangeError: Maximum call stack size exceeded

🤍 前端開發工程師、技術日更博主、已過CET6 🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 🍚 藍橋云課簽約作者、…

八卡5090服務器首發亮相!

AI 人工智能領域熱度居高不下。OpenAI 的 GPT - 4 憑強悍語言處理能力,在內容創作、智能客服等領域廣泛應用。清華大學團隊的 DeepSeek 大模型在深度學習訓練優勢突出,正促使各行業應用端算力需求向推理主導轉變,呈爆發式增長 。 隨著 DeepS…

計算機視覺|Swin Transformer:視覺 Transformer 的新方向

一、引言 在計算機視覺領域的發展歷程中,卷積神經網絡(CNN) 長期占據主導地位。從早期的 LeNet 到后來的 AlexNet、VGGNet、ResNet 等,CNN 在圖像分類、目標檢測、語義分割等任務中取得了顯著成果。然而,CNN 在捕捉全…

【Leetcode 每日一題】2597. 美麗子集的數目

問題背景 給你一個由正整數組成的數組 n u m s nums nums 和一個 正 整數 k k k。 如果 n u m s nums nums 的子集中,任意兩個整數的絕對差均不等于 k k k,則認為該子數組是一個 美麗 子集。 返回數組 n u m s nums nums 中 非空 且 美麗 的子集數…

常見Web應用源碼泄露問題

文章目錄 前言一、常見的源碼泄露漏洞git源碼泄露SVN源碼泄露DS_Store文件泄漏網站備份壓縮文件泄露WEB-INF/web.xml泄露CVS泄露.hg源碼泄露Bazaar/bzr泄露.swp文件泄露 前言 在Web應用方面對于安全來說,可能大家對SQL注入、XSS跨站腳本攻擊、文件上傳等一些漏洞已…

記錄一次wifi版有人物聯串口服務器調試經過

1、首先買了一個華為的wifi路由器,連接上以后,設置好網絡名字和wifi密碼 2、用網線連接串口服務器,通過192.168.1.1登錄,進行配置 找到無線客戶端配置,先在基本配置中打開5G配置,然后再去5.8G配置中設置 …

Android 平臺架構系統啟動流程詳解

目錄 一、平臺架構模塊 1.1 Linux 內核 1.2 硬件抽象層 (HAL) 1.3 Android 運行時 1.4 原生 C/C 庫 1.5 Java API 框架 1.6 系統應用 二、系統啟動流程 2.1 Bootloader階段 2.2 內核啟動 2.3 Init進程(PID 1) 2.4 Zygote與System Serv…

【Windows下Gitbook快速入門使用】

Windows下Gitbook快速入門使用 1 工具安裝1.1 Node.js下載安裝1.1 環境變量1.2 npm配置1.3 安裝gitbook 2 gitbook使用2.1 gitbook 無法執行2.2 gitbook常用命令 Gitbook是一個軟件,使用Git和Markdown來編排書本; GitBook helps you pushlish beautiful …

RK3588V2--HYM8563TS RTC 實時時鐘適配移植

1. 什么是RTC RTC(Real-Time Clock,實時時鐘)是一種電子設備或芯片,它用于保持當前時間和日期,即使系統關閉或斷電也能持續計時。RTC 通常用于計算機、嵌入式系統、物聯網設備等需要精確時間管理的場景。 1.1 RTC 的…

MHA集群

一.MHA集群 MHA master high avavibility 主服務器高可用 如上圖所示,我們之前說過,如果在主從復制架構中主服務器出現故障,就需要我們將從服務器作為主服務器,等故障的主服務器修復好之后,再將修好的主服務器作為從服…

10 【HarmonyOS NEXT】 仿uv-ui組件開發之Avatar頭像組件開發教程(一)

溫馨提示:本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦! 目錄 第一篇:Avatar 組件基礎概念與設計1. 組件概述2. 接口設計2.1 形狀類型定義2.2 尺寸類型定義2.3 組件屬性接口 3. 設計原則4. 使用…

微信小程序+SpringBoot的單詞學習小程序平臺(程序+論文+講解+安裝+修改+售后)

感興趣的可以先收藏起來,還有大家在畢設選題,項目以及論文編寫等相關問題都可以給我留言咨詢,我會一一回復,希望幫助更多的人。 系統背景 (一)社會需求背景 在全球化的大背景下,英語作為國際…

鴻蒙HarmonyOS評論功能小demo

評論頁面小demo 效果展示 1.拆解組件,分層搭建 我們將整個評論頁面拆解為三個組件,分別是頭部導航,評論項,回復三個部分,然后統一在index界面導入 2.頭部導航界面搭建 Preview Component struct HmNavBar {// 屬性&a…