PageIndex:構建無需切塊向量化的 Agentic RAG

引言

你是否對長篇專業文檔的向量數據庫檢索準確性感到失望?傳統的基于向量的RAG系統依賴于語義相似性而非真正的相關性。但在檢索中,我們真正需要的是相關性——這需要推理能力。當處理需要領域專業知識和多步推理的專業文檔時,相似度搜索常常不盡人意。

基于推理的RAG提供了更好的選擇:讓大語言模型能夠思考推理,找到最相關的文檔部分。受AlphaGo啟發,Vectify AI提出使用樹搜索來執行結構化文檔檢索。

PageIndex 是一個文檔索引系統,它從長文檔構建搜索樹結構,為基于推理的RAG做好準備。

由Vectify AI開發。

PageIndex是什么

PageIndex能將冗長的PDF文檔轉換為語義樹結構,類似于*“目錄”*但專為大語言模型(LLMs)優化。
它特別適用于:財務報告、監管文件、學術教科書、法律或技術手冊,以及任何超出LLM上下文限制的文檔。

主要特點

  • 層次樹結構
    讓大語言模型能夠邏輯性地遍歷文檔——就像一個智能的、為LLM優化的目錄。

  • 精確頁面引用
    每個節點都包含其摘要和開始/結束頁面的物理索引,實現精準檢索。

  • 無需人為分塊
    不使用任意分塊。節點遵循文檔的自然結構。

  • 適用于大規模文檔
    設計用于輕松處理數百甚至上千頁的文檔。

PageIndex格式

以下是輸出示例。查看更多示例文檔和生成的樹結構。

...
{"title": "金融穩定性","node_id": "0006","start_index": 21,"end_index": 22,"summary": "美聯儲...","nodes": [{"title": "監測金融脆弱性","node_id": "0007","start_index": 22,"end_index": 28,"summary": "美聯儲的監測..."},{"title": "國內和國際合作與協調","node_id": "0008","start_index": 28,"end_index": 31,"summary": "2023年,美聯儲與..."}]
}
...

其實看到這里,我們會發現RAG之前很多框架或者算法都有類似的思想:

  • 例如LlamaIndex的Node實現
  • 比如Raptor的層級聚類
  • 還有Mineru的PDF轉換生成Markdown,然后我們可以解析成類似具有章節信息的json數據

那PageIndex的亮點在哪里呢,其實在最后一部分“使用PageIndex進行基于推理的RAG”的實現,相比之前的Advanced和Modular RAG,Agentic RAG更加智能,接著我們往下看怎么實現的?

使用方法

按照以下步驟從PDF文檔生成PageIndex樹結構。

1. 安裝依賴項

pip3 install -r requirements.txt

2. 設置OpenAI API密鑰

在根目錄創建一個.env文件并添加你的API密鑰:

CHATGPT_API_KEY=你的openai密鑰

3. 對PDF運行PageIndex

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

你可以通過額外的可選參數自定義處理過程:

--model                 使用的OpenAI模型 (默認: gpt-4o-2024-11-20)
--toc-check-pages       檢查目錄的頁數 (默認: 20)
--max-pages-per-node    每個節點的最大頁數 (默認: 10)
--max-tokens-per-node   每個節點的最大token數 (默認: 20000)
--if-add-node-id        添加節點ID (yes/no, 默認: yes)
--if-add-node-summary   添加節點摘要 (yes/no, 默認: no)
--if-add-doc-description 添加文檔描述 (yes/no, 默認: yes)

云API (測試版)

不想自己部署?試試Vectify AI的PageIndex托管API。托管版本使用Vectify AI自定義的OCR模型更準確地識別PDF,為復雜文檔提供更好的樹結構。
在這個表單留下你的郵箱,免費獲得1,000頁處理額度。

案例研究:Mafin 2.5

Mafin 2.5是一個專為財務文檔分析設計的最先進基于推理的RAG模型。它基于PageIndex構建,在FinanceBench基準測試中達到了驚人的98.7%準確率——顯著優于傳統的基于向量的RAG系統。

PageIndex的分層索引使得能夠精確導航和提取復雜財務報告(如SEC文件和財報披露)中的相關內容。

👉 查看完整基準測試結果,了解詳細比較和性能指標。

使用PageIndex進行基于推理的RAG

使用PageIndex構建基于推理的檢索系統,無需依賴語義相似度。非常適合需要細微區分的領域特定任務。

🔖 預處理工作流示例

  1. 使用PageIndex處理文檔,生成樹結構。
  2. 將樹結構及其對應的文檔ID存儲在數據庫表中。
  3. 將每個節點的內容存儲在單獨的表中,通過節點ID和樹ID進行索引。

🔖 基于推理的RAG框架示例

  1. 查詢預處理:
    • 分析查詢以確定所需知識
  2. 文檔選擇:
    • 搜索相關文檔及其ID
    • 從數據庫獲取相應的樹結構
  3. 節點選擇:
    • 搜索樹結構以識別相關節點
  4. LLM生成:
    • 從數據庫獲取所選節點的相應內容
    • 格式化并提取相關信息
    • 將組裝的上下文與原始查詢一起發送給LLM
    • 生成有依據的回答

🔖 節點選擇的示例提示

prompt = f"""
給你一個問題和一個文檔的樹結構。
你需要找出所有可能包含答案的節點。問題: {question}文檔樹結構: {structure}請用以下JSON格式回復:
{{"thinking": <關于在哪里尋找的推理過程>,"node_list": [node_id1, node_id2, ...]
}}
"""

看到合理我們自然明白了,PageIndex不需要切塊向量是因為通過將文檔轉換為節點,然后用大模型進行選擇,之前RAG是檢索+排序=現在的LLM Judge。

同時這個問題就是,當多文檔或者文檔篇幅比較多的時候,LLM去做選擇成本比較高的。

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

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

相關文章

ubuntu20.04 遠程桌面Xrdp方式

1&#xff0c;Ubuntu 安裝Xrdp 方法 1.1&#xff0c;安裝xrdp sudo apt install xrdp 1.2&#xff0c;檢查xrdp狀態 sudo systemctl status xrdp 1.3&#xff0c;加入ssl-cert sudo adduser xrdp ssl-cert 1.4&#xff0c;重啟xrdp服務 sudo systemctl restart xrdp 最后…

Java學習手冊:RESTful API 設計原則

一、RESTful API 概述 REST&#xff08;Representational State Transfer&#xff09;即表述性狀態轉移&#xff0c;是一種軟件架構風格&#xff0c;用于設計網絡應用程序。RESTful API 是符合 REST 原則的 Web API&#xff0c;通過使用 HTTP 協議和標準方法&#xff08;GET、…

Spring Boot 核心注解全解:@SpringBootApplication背后的三劍客

大家好呀&#xff01;&#x1f44b; 今天我們要聊一個超級重要的Spring Boot話題 - 那個神奇的主類注解SpringBootApplication&#xff01;很多小伙伴可能每天都在用Spring Boot開發項目&#xff0c;但你真的了解這個注解背后的秘密嗎&#xff1f;&#x1f914; 別擔心&#x…

weibo_har鴻蒙微博分享,單例二次封裝,鴻蒙微博,微博登錄

weibo_har鴻蒙微博分享&#xff0c;單例二次封裝&#xff0c;鴻蒙微博 HarmonyOS 5.0.3 Beta2 SDK&#xff0c;原樣包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2) &#x1f3c6;簡介 zyl/weibo_har是微博封裝使用&#xff0c;支持原生core使用 &a…

tomcat集成redis實現共享session

中間件&#xff1a;Tomcat、Redis、Nginx jar包要和tomcat相匹配 jar包&#xff1a;commons-pool2-2.2.jar、jedis-2.5.2.jar、tomcat-redis-session-manage-tomcat7.jar 配置Tomcat /conf/context.xml <?xml version1.0 encodingutf-8?> <!--Licensed to the A…

JavaScript 擴展Array類方法實現數組求和

題目描述&#xff1a;使用原型對象擴展Array類&#xff0c;實現返回數字型數組的和 <script>const arr [1,2,3,4,5,6]Array.prototype.sum function(){return this.reduce((prev,item)>prev item,0)}console.log(arr.sum())</script>求和函數中this 指向調用…

中間件--ClickHouse-11--部署示例(Linux宿主機部署,Docker容器部署)

一、Linux宿主機部署 1、環境準備 操作系統&#xff1a;推薦使用 CentOS 7/8 或 Ubuntu 18.04/20.04。硬件要求&#xff1a; 至少 2 核 CPU 和 4GB 內存。足夠的磁盤空間&#xff08;根據數據量評估&#xff09;。CPU需支持SSE4.2指令集&#xff08;可通過以下命令檢查&#…

鴻蒙NEXT開發權限工具類(申請授權相關)(ArkTs)

import abilityAccessCtrl, { Permissions } from ohos.abilityAccessCtrl; import { bundleManager, common, PermissionRequestResult } from kit.AbilityKit; import { BusinessError } from ohos.base; import { ToastUtil } from ./ToastUtil;/*** 權限工具類&#xff08;…

LVGL學習(二)(lv_label,lv_btn)

3-1_標簽(lv_label) 一、標簽的組成&#xff08;盒子模型&#xff09;?? 標簽由三個核心模塊構成&#xff0c;類似便簽紙的??分層設計??&#xff1a; ??LV_PART_MAIN&#xff08;主體層&#xff09;?? ??功能??&#xff1a;相當于便簽紙的"紙面"&…

深度剖析神經網絡:從基礎原理到面試要點(二)

引言 在人工智能蓬勃發展的今天&#xff0c;神經網絡作為其核心技術之一&#xff0c;廣泛應用于圖像識別、自然語言處理、語音識別等眾多領域。深入理解神經網絡的數學模型和結構&#xff0c;對于掌握人工智能技術至關重要。本文將對神經網絡的關鍵知識點進行詳細解析&#xf…

【java+Mysql】學生信息管理系統

學生信息管理系統是一種用于管理學生信息的軟件系統&#xff0c;旨在提高學校管理效率和服務質量。本課程設計報告旨在介紹設計和實現學生信息管理系統的過程。報告首先分析了系統的需求&#xff0c;包括學生基本信息管理、成績管理等功能。接著介紹了系統的設計方案&#xff0…

Linux mmp文件映射補充(自用)

addr一般為NULL由OS指明&#xff0c;length所需長度&#xff08;4kb對齊&#xff09;&#xff0c;prot&#xff08;權限&#xff0c;一般O_RDWR以讀寫&#xff09;&#xff0c; flag&#xff08;MAP_SHARED(不刷新到磁盤上&#xff0c;此進程獨有)和MAP_PRIVATE&#xff08;刷新…

Nginx openresty web服務 與 Go 原生web服務性能對比

1 概述 Nginx采用的是IO復用模型&#xff0c;能處理超高并發。 Go語言采用協程&#xff0c;能輕量級的處理超高并發。 那么在不考慮業務邏輯復雜的前提下&#xff0c;即假如將Nginx和Go都提供一個/test接口&#xff0c;并在接口邏輯中都只是讓其做20毫秒的耗時操作&#xff0c…

[創業之路-377]:企業法務 - 有限責任公司與股份有限公司的優缺點對比

有限責任公司&#xff08;簡稱“有限公司”&#xff09;與股份有限公司&#xff08;簡稱“股份公司”&#xff09;是我國《公司法》規定的兩種主要公司形式&#xff0c;二者在設立條件、治理結構、股東權利義務等方面存在顯著差異。以下從核心特征、設立條件、治理結構、股東權…

QEMU源碼全解析 —— 塊設備虛擬化(21)

接前一篇文章:QEMU源碼全解析 —— 塊設備虛擬化(20) 本文內容參考: 《趣談Linux操作系統》 —— 劉超,極客時間 《QEMU/KVM源碼解析與應用》 —— 李強,機械工業出版社 特此致謝! 上一回開始解析blockdev_init函數,講到了其中調用的blk_new_open函數,該函數的作用…

藍橋杯中的知識點

總結&#xff1a; 這次考的并不理想 比賽前好多知識點遺漏 但到此為止已經結束了 mod 是 模運算&#xff08;Modulo Operation&#xff09;的縮寫&#xff0c;表示求兩個數相除后的 余數 10mod31 (a % b) &#xff08;7%21&#xff09; 1e9代表1乘以10的9次方&#xff0c…

批量替換多個 Word 文檔中的指定圖片

在 Word 文檔中&#xff0c;我們可以插入各種各樣的圖片&#xff0c;比如插入 logo、插入設計圖、施工圖等等。在某些情況下&#xff0c;我們也會碰到需要將 Word 文檔中某張圖片替換成其它圖片的場景&#xff0c;比如將舊的 Logo 替換成新的 Logo。當我們有大量的 Word 文檔需…

基于微信小程序的中醫小妙招系統的設計與實現

hello hello~ &#xff0c;這里是 code袁~&#x1f496;&#x1f496; &#xff0c;歡迎大家點贊&#x1f973;&#x1f973;關注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者簡介&#xff1a;一名喜歡分享和記錄學習的在校大學生…

Java 8 新特性深度解析:現代編程的轉折點

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 Java 8 是 Java 發展史上的重要里程碑&#xff0c;它引入了函數式編程范式、增強了集合處理能力&#xff0c;并徹底革新了日期時間處理方式。本文將通過代碼示…

鷓鴣云平臺實時追蹤任務進度的核心機制

一、?三維可視化監控? BIMGIS融合建模?&#xff1a;通過無人機測繪與三維建模技術生成施工場地數字孿生模型&#xff0c;支持實時查看各標段三維模型與施工進度的匹配度&#xff0c;偏差超過5%自動觸發預警。 進度匹配度分析?&#xff1a;中央數據中臺整合施工規劃、資源…