From 6b0fdf70a08ee1dba3e9394459a15b6f85a4b08a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 20:59:23 +0800 Subject: [PATCH 001/105] docs: the benchmark charts render at 70% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 812f3042f..5c8ef1e69 100644 --- a/README.md +++ b/README.md @@ -140,14 +140,14 @@ Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5. - Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. Indexing time also scales predictably with document length. In the same local setup, the benchmark documents (9 to 1,098 pages) finished in roughly **13 seconds to 4.5 minutes**. - Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. @@ -158,7 +158,7 @@ Indexing time also scales predictably with document length. In the same local se - Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. From dfee471d4a761ed3b9c52140d49fb367f1b5f73e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:01:50 +0800 Subject: [PATCH 002/105] docs: the benchmark charts render centered at 80% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c8ef1e69..c7ea3fdaa 100644 --- a/README.md +++ b/README.md @@ -138,17 +138,21 @@ Revenue increased during the reporting period. - Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing time also scales predictably with document length. In the same local setup, the benchmark documents (9 to 1,098 pages) finished in roughly **13 seconds to 4.5 minutes**. +
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. +
@@ -156,10 +160,12 @@ Indexing time also scales predictably with document length. In the same local se [**PageIndex-OSS-Benchmark**](https://github.com/VectifyAI/PageIndex-OSS-Benchmark) measures exactly the setup in the quickstart above (`PageIndexClient()` in local mode, flash indexing, no OCR) on 62 lookup questions over 34 PDFs (1,945 pages) drawn from [MMLongBench-Doc-V2](https://github.com/VectifyAI/MMLongBench-Doc-V2). Every question's answer is a fact stated in running text, so a wrong answer is a **retrieval or reading failure**, not a reasoning one. +
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. +
Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). From 0641006f89c7a561e3ee266d2ca02ae13ef60d4d Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:02:37 +0800 Subject: [PATCH 003/105] docs: the benchmark charts render at 85% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c7ea3fdaa..b68070d86 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.
- Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length.
@@ -150,7 +150,7 @@ Indexing time also scales predictably with document length. In the same local se
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length.
@@ -163,7 +163,7 @@ Indexing time also scales predictably with document length. In the same local se
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step.
From b94345a6e3b7d302a3401315a3ce58c956f82336 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:03:14 +0800 Subject: [PATCH 004/105] docs: the benchmark charts render at 90% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b68070d86..3e3ce2dea 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.
- Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length.
@@ -150,7 +150,7 @@ Indexing time also scales predictably with document length. In the same local se
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length.
@@ -163,7 +163,7 @@ Indexing time also scales predictably with document length. In the same local se
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step.
From bf4eb251001bff2ace232a8bbbd515d1bd85566e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:05:18 +0800 Subject: [PATCH 005/105] docs: the collapsed sections drop the spacer
Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 3e3ce2dea..8bfb29b94 100644 --- a/README.md +++ b/README.md @@ -181,8 +181,6 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co -
- ### ⚙️ Step 1: Initialize the client Create a local client and choose the models used for indexing and retrieval: @@ -340,8 +338,6 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it -
- Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: **OpenAI Agents SDK:** From 67bd87fcf8fad9d42cd3e3ede30cc16703f29eee Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:12:42 +0800 Subject: [PATCH 006/105] docs: the header link row drops Discord Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8bfb29b94..fa8d8c985 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,6 @@ 🖥️ Chat Platform  •   🔌 MCP & API  •   📖 Docs  •   - 💬 Discord  •   ✉️ Contact  From 38ed89ed2d09f7e94af60412e503cce90981cd57 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:13:51 +0800 Subject: [PATCH 007/105] docs: the Updates entry comments out the MCP/API pointer Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa8d8c985..5665af2f3 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ - [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. - [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically instead of by an LLM. -- [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. Also available via [MCP](https://pageindex.ai/developer) or [API](https://pageindex.ai/developer). +- [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 2b71a46cf6db3f9c2cf812e988abb755e415dbeb Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:15:18 +0800 Subject: [PATCH 008/105] docs: the one-line summary stands without the Why it works heading Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 5665af2f3..9b3e8f3e2 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,6 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the -### Why it works - > PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. ### Compare with Vector RAG From 97bdbd5e42c610f9ac42457730b2db76e7635730 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:17:48 +0800 Subject: [PATCH 009/105] docs: TEMP four punchline variants side by side Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 9b3e8f3e2..854f38b8b 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,21 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the +**A — 居中斜体大字(epigraph)** + +

PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.

+ +**B — GitHub Alert 框** + +> [!TIP] +> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. + +**C — 引用块 + 居中加粗** + +
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
+ +**D — 现状:普通块引用** + > PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. ### Compare with Vector RAG From e90cea0ddc3d386d92f6f34111608f6e476876ce Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:19:03 +0800 Subject: [PATCH 010/105] docs: the one-line summary reads as a centered pull quote Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/README.md b/README.md index 854f38b8b..b9208f097 100644 --- a/README.md +++ b/README.md @@ -54,22 +54,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the -**A — 居中斜体大字(epigraph)** - -

PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.

- -**B — GitHub Alert 框** - -> [!TIP] -> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. - -**C — 引用块 + 居中加粗** - -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
- -**D — 现状:普通块引用** - -> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. +
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
### Compare with Vector RAG From 6290c975813694174196f45357c05b5ba6e24798 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:20:45 +0800 Subject: [PATCH 011/105] docs: TEMP alert-style variants next to the pull quote Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index b9208f097..37c2ec95c 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,25 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the +**C — 当前选定:居中加粗引用块** +
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
+**NOTE — 蓝色** + +> [!NOTE] +> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. + +**TIP — 绿色** + +> [!TIP] +> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. + +**IMPORTANT — 紫色** + +> [!IMPORTANT] +> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. + ### Compare with Vector RAG | | Vector RAG | **PageIndex** | From 8599a3cd1051177b3ab6f602fbc33d8ea4f4fb62 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:21:53 +0800 Subject: [PATCH 012/105] docs: the pull quote sits under an In one sentence heading Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/README.md b/README.md index 37c2ec95c..70fc16e9d 100644 --- a/README.md +++ b/README.md @@ -54,25 +54,10 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the -**C — 当前选定:居中加粗引用块** +### In one sentence
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
-**NOTE — 蓝色** - -> [!NOTE] -> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. - -**TIP — 绿色** - -> [!TIP] -> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. - -**IMPORTANT — 紫色** - -> [!IMPORTANT] -> PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking. - ### Compare with Vector RAG | | Vector RAG | **PageIndex** | From 07ee2dc78b10047aebb98b283e33407ae188ed50 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:22:23 +0800 Subject: [PATCH 013/105] docs: the pull quote sits under a TL;DR heading Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70fc16e9d..15d87ac56 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the -### In one sentence +### TL;DR
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
From 5d858a0f5dd626a5411ea23e3e125a2c666c8909 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:25:54 +0800 Subject: [PATCH 014/105] docs: the TLDR quote bolds the claims and drops the vector DB and chunking Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 15d87ac56..2ac2bade4 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,9 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the -### TL;DR +### TLDR -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, without vector databases or chunking.
+
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs and no chunking.
### Compare with Vector RAG From d221f8be64d37f6bf4ec9e8b2d8c6ac54b37b08c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:26:43 +0800 Subject: [PATCH 015/105] docs: the TLDR quote reads no vector DBs or chunking Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ac2bade4..3879c2219 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the ### TLDR -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs and no chunking.
+
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
### Compare with Vector RAG From 99f6f0c1fd1cbafc1945b8f3a6e8173a5ebc881a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:27:13 +0800 Subject: [PATCH 016/105] docs: the TLDR quote leaves retrieval unbolded Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3879c2219..14a8cc937 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the ### TLDR -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
+
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
### Compare with Vector RAG From d586e96be65a29fb419d5feb06566f126067996e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:28:02 +0800 Subject: [PATCH 017/105] docs: the Retrieve step leads with agentically Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 14a8cc937..c8293ecdf 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Are you frustrated with vector database retrieval accuracy for long and complex Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the vector index with a **hierarchical tree index** and lets an LLM **reason** its way through it, the way a human expert turns to and reads the right section of a long report. Retrieval happens in two steps: 1. **Index**: generate a **tree-structure index** for each document -2. **Retrieve**: **search that tree** with LLM reasoning, agentically +2. **Retrieve**: agentically **search that tree** with LLM reasoning
From 79f0be37d873a0d9748b3c2ed6d8c774b7ffac50 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:28:46 +0800 Subject: [PATCH 018/105] docs: the TLDR quote reads left-aligned Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c8293ecdf..b2049fa84 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the ### TLDR -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
+
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
### Compare with Vector RAG From c80f0cd6d9ac0c33cde70ccc8b14bbd9685f1ff1 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:29:21 +0800 Subject: [PATCH 019/105] docs: the TLDR quote wraps on its own Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2049fa84..cdb2683df 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the ### TLDR -
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read,
delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
+
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
### Compare with Vector RAG From cde8da3394a3c89c1ce57075548da0ee4e9802ee Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:32:19 +0800 Subject: [PATCH 020/105] docs: the citations example uses a plain system-message string Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index cdb2683df..704c19e54 100644 --- a/README.md +++ b/README.md @@ -111,13 +111,7 @@ To request inline page-level citations, pass a system message together with the ```python messages = [ - { - "role": "system", - "content": ( - 'Cite only statements supported by tool outputs using ' - '' - ), - }, + {"role": "system", "content": 'Cite only statements supported by tool outputs using '}, {"role": "user", "content": "Summarize the document."}, ] From 2ffc007333cf0407ec2890810682aa4547e74585 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:34:12 +0800 Subject: [PATCH 021/105] docs: the citations example keeps the system prompt inside the code block Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 704c19e54..1a25bfe12 100644 --- a/README.md +++ b/README.md @@ -110,8 +110,11 @@ See the [Detailed Usage Guide](#detailed-usage-guide) to configure other models, To request inline page-level citations, pass a system message together with the question: ```python +system_prompt = """Cite only statements supported by tool outputs +using """ + messages = [ - {"role": "system", "content": 'Cite only statements supported by tool outputs using '}, + {"role": "system", "content": system_prompt}, {"role": "user", "content": "Summarize the document."}, ] From 3078a672d330c0ae38336c0e257ae446c7a0ecdc Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:35:47 +0800 Subject: [PATCH 022/105] docs: the citations example inlines the system prompt Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1a25bfe12..74aaa5d7c 100644 --- a/README.md +++ b/README.md @@ -110,11 +110,9 @@ See the [Detailed Usage Guide](#detailed-usage-guide) to configure other models, To request inline page-level citations, pass a system message together with the question: ```python -system_prompt = """Cite only statements supported by tool outputs -using """ - messages = [ - {"role": "system", "content": system_prompt}, + {"role": "system", "content": """Cite only statements supported +by tool outputs using """}, {"role": "user", "content": "Summarize the document."}, ] From 113a2c19b3f40c5a17204a71f5a68b8304ec33c5 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:37:10 +0800 Subject: [PATCH 023/105] docs: the Cloud example drops the doubled blank line Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 74aaa5d7c..44a054ec0 100644 --- a/README.md +++ b/README.md @@ -390,7 +390,6 @@ from pageindex import PageIndexClient os.environ["PAGEINDEX_API_KEY"] = "your-pageindex-key" os.environ["OPENAI_API_KEY"] = "your-openai-key" - client = PageIndexClient( index="cloud", # build and store the index in PageIndex Cloud chat="gpt-5.6-sol", # use your preferred compatible model for chat From 886197ff434cebcc9904f92104daf203cdaaa995 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 21:59:16 +0800 Subject: [PATCH 024/105] docs: the FinanceBench case study returns to Benchmarks Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 44a054ec0..88bda1904 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,18 @@ Indexing time also scales predictably with document length. In the same local se Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). +### PageIndex leads a finance QA benchmark + +Mafin 2.5, a reasoning-based RAG system for financial document analysis powered by PageIndex, reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), far ahead of vector-based RAG systems on SEC filings and earnings disclosures. + +
+ +Explore the full [benchmark results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). + From 18f5997df97bbffc5174aafbbe31bdf67e254512 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:00:54 +0800 Subject: [PATCH 025/105] docs: the FinanceBench paragraph speaks of PageIndex directly Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88bda1904..4e625ce2a 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co ### PageIndex leads a finance QA benchmark -Mafin 2.5, a reasoning-based RAG system for financial document analysis powered by PageIndex, reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), far ahead of vector-based RAG systems on SEC filings and earnings disclosures. +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a financial document QA benchmark, far ahead of vector-based RAG systems on SEC filings and earnings disclosures.
From fbe99b4b9e47e816bf3c50820a2550fb6b4f7c94 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:06:34 +0800 Subject: [PATCH 026/105] docs: the FinanceBench sentence names the corpus and the margin plainly Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4e625ce2a..92b795c89 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co ### PageIndex leads a finance QA benchmark -PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a financial document QA benchmark, far ahead of vector-based RAG systems on SEC filings and earnings disclosures. +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a QA benchmark built on SEC filings and earnings reports, vastly outperforming vector-based RAG.
From 0e9fd7adfac506fe87908a9df5fb714abefe8688 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:07:06 +0800 Subject: [PATCH 027/105] docs: the FinanceBench sentence drops the corpus aside Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92b795c89..633a9e17e 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co ### PageIndex leads a finance QA benchmark -PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a QA benchmark built on SEC filings and earnings reports, vastly outperforming vector-based RAG. +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), vastly outperforming vector-based RAG.
From 9f384b44ad2870d646852be0cf93e8581ff01bc1 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:07:49 +0800 Subject: [PATCH 028/105] docs: the FinanceBench sentence keeps the benchmark description Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 633a9e17e..092f5d2dc 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co ### PageIndex leads a finance QA benchmark -PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), vastly outperforming vector-based RAG. +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a financial document QA benchmark, vastly outperforming vector-based RAG.
From 988eb37a55132e71b2033bc8ca908b2ad8042c7b Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:10:06 +0800 Subject: [PATCH 029/105] docs: Benchmarks splits into the local open-source run and FinanceBench Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 092f5d2dc..50d000732 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,9 @@ Revenue increased during the reporting period. Date: Thu, 27 Aug 2026 22:11:50 +0800 Subject: [PATCH 030/105] docs: top-level sections use single-hash headings again Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 50d000732..8149576b2 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ -## What is PageIndex? +# What is PageIndex? Are you frustrated with vector database retrieval accuracy for long and complex documents? Vector-based RAG retrieves by semantic **similarity**. But **similarity ≠ relevance** — what retrieval actually needs is relevance, and relevance requires **reasoning**. On professional documents that demand contextual understanding, domain expertise, and multi-step reasoning, similarity search misses what is relevant but not similar, and returns what is similar but not relevant. @@ -74,7 +74,7 @@ It is ideal for financial reports, legal documents, regulatory filings, technica -## Quickstart +# Quickstart ```bash pip install -U pageindex @@ -126,7 +126,7 @@ Revenue increased during the reporting period. -## Detailed Usage Guide +# Detailed Usage Guide @@ -342,7 +342,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
-## Integrate PageIndex with your own agent +# Integrate PageIndex with your own agent @@ -391,7 +391,7 @@ Each `*_config` helper is sugar over the explicit pieces (`client.agent_instruct
-## PageIndex Cloud +# PageIndex Cloud The open-source version is ideal for text-heavy PDFs and local workflows. With **PageIndex Cloud, document indexing and storage run in the cloud**: PageIndex handles parsing, OCR, image understanding, tree-index construction, and managed storage for you. The chat and retrieval layer remains **compatible with your model**, so you can search the cloud-hosted index using the model provider your application already uses. @@ -440,7 +440,7 @@ For dedicated deployment (VPC or on-premises), [contact us](https://ii2abc2jejf. --- -## ⭐ Support Us +# ⭐ Support Us Leave us a star 🌟 if you like our project. Thank you! From cf1c2018dcb61cb3fbf4e1c3d1bda770605790cc Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:13:08 +0800 Subject: [PATCH 031/105] docs: the local benchmark part is headed Local mode Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8149576b2..2964c67ab 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. Date: Thu, 27 Aug 2026 22:14:29 +0800 Subject: [PATCH 032/105] docs: the local benchmark part is headed PageIndex Local Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2964c67ab..9355e74e3 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. Date: Thu, 27 Aug 2026 22:15:36 +0800 Subject: [PATCH 033/105] docs: the benchmark charts render at 80% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9355e74e3..1740e25f7 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.
- Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length.
@@ -146,7 +146,7 @@ Indexing time also scales predictably with document length. In the same local se
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length.
@@ -159,7 +159,7 @@ Indexing time also scales predictably with document length. In the same local se
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step.
@@ -172,7 +172,7 @@ PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blo
From ac30af823cc06bc728dcb396f03c5b1d4c632985 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:16:46 +0800 Subject: [PATCH 034/105] docs: the FinanceBench chart stays at 90% and the benchmark gloss goes in parentheses Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1740e25f7..095774d35 100644 --- a/README.md +++ b/README.md @@ -168,11 +168,11 @@ Full results, data, and the runner are in the [benchmark repo](https://github.co ### FinanceBench -PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944), a financial document QA benchmark, vastly outperforming vector-based RAG. +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944) (financial document QA benchmark), vastly outperforming vector-based RAG. From 14e32df879e1f6fb8554dd7bdb89184c85f6703e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:17:53 +0800 Subject: [PATCH 035/105] docs: the FinanceBench chart returns to its original 70% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 095774d35..9f3589765 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blo From 5a345dcd542e42bf8d5b237db8507c65dedfb580 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:18:52 +0800 Subject: [PATCH 036/105] docs: the local benchmark charts render at 70% width Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f3589765..80b57ed94 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.
- Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length.
@@ -146,7 +146,7 @@ Indexing time also scales predictably with document length. In the same local se
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length.
@@ -159,7 +159,7 @@ Indexing time also scales predictably with document length. In the same local se
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step.
From 453d464b8a059ae91dbec27708ebd32ac07deb9e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:19:45 +0800 Subject: [PATCH 037/105] docs: the local benchmark part is headed Running PageIndex locally, charts at 75% Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 80b57ed94..057599287 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. - Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length.
@@ -146,7 +146,7 @@ Indexing time also scales predictably with document length. In the same local se
- Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length.
@@ -159,7 +159,7 @@ Indexing time also scales predictably with document length. In the same local se
- Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step.
From 806c0071ff69082d53c874da62f2dd584c3a998f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:20:37 +0800 Subject: [PATCH 038/105] docs: the citations example indents the prompt continuation Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 057599287..9b31e5b15 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,8 @@ To request inline page-level citations, pass a system message together with the ```python messages = [ - {"role": "system", "content": """Cite only statements supported -by tool outputs using """}, + {"role": "system", "content": """Cite only statements supported by + tool outputs using """}, {"role": "user", "content": "Summarize the document."}, ] From 0af698067e43b270a18de47da25fbc0c23bbda38 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:21:33 +0800 Subject: [PATCH 039/105] docs: the citations prompt breaks before the cite tag Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b31e5b15..371e51da2 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,8 @@ To request inline page-level citations, pass a system message together with the ```python messages = [ - {"role": "system", "content": """Cite only statements supported by - tool outputs using """}, + {"role": "system", "content": """Cite only statements supported by tool outputs using + """}, {"role": "user", "content": "Summarize the document."}, ] From 6cf8bc492d48316a70f03fcfa83383c1b93fe2cd Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:22:40 +0800 Subject: [PATCH 040/105] docs: the citations prompt breaks before using Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 371e51da2..320a65650 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,8 @@ To request inline page-level citations, pass a system message together with the ```python messages = [ - {"role": "system", "content": """Cite only statements supported by tool outputs using - """}, + {"role": "system", "content": """Cite only statements supported by tool outputs + using """}, {"role": "user", "content": "Summarize the document."}, ] From 2a836eeb23fa44b391684874fa47b2c564c8ea1f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:24:09 +0800 Subject: [PATCH 041/105] docs: the collapsed usage guides follow the Quickstart Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 108 +++++++++++++++++++++++++++--------------------------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 320a65650..418ae44c7 100644 --- a/README.md +++ b/README.md @@ -126,61 +126,6 @@ Revenue increased during the reporting period. - - - Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. - -
- -Indexing time also scales predictably with document length. In the same local setup, the benchmark documents (9 to 1,098 pages) finished in roughly **13 seconds to 4.5 minutes**. - -
- - - Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. - -
- - - -#### Query cost and accuracy - -[**PageIndex-OSS-Benchmark**](https://github.com/VectifyAI/PageIndex-OSS-Benchmark) measures exactly the setup in the quickstart above (`PageIndexClient()` in local mode, flash indexing, no OCR) on 62 lookup questions over 34 PDFs (1,945 pages) drawn from [MMLongBench-Doc-V2](https://github.com/VectifyAI/MMLongBench-Doc-V2). Every question's answer is a fact stated in running text, so a wrong answer is a **retrieval or reading failure**, not a reasoning one. - -
- - - Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. - -
- - -Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). - -### FinanceBench - -PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944) (financial document QA benchmark), vastly outperforming vector-based RAG. - - - -Explore the full [benchmark results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). - - - -
@@ -391,6 +336,59 @@ Each `*_config` helper is sugar over the explicit pieces (`client.agent_instruct
+# Benchmarks + +### Running PageIndex locally + +#### Indexing cost and time + +Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.6-luna"`, so a 1,000-page textbook costs a little over a dollar and a few minutes, once, and every later question reuses it. PageIndex is designed not to rely heavily on the model used at index time, so in our experiments a basic model does not hurt quality. + +
+ + + Indexing cost against document length, log-log, for nine PDFs from 9 to 1,098 pages. Points track a $0.0011-per-page reference line; the spread around it is text density, not length. + +
+ +Indexing time also scales predictably with document length. In the same local setup, the benchmark documents (9 to 1,098 pages) finished in roughly **13 seconds to 4.5 minutes**. + +
+ + + Indexing time against document length, log-log, for nine PDFs from 9 to 1,098 pages. The measured indexing times range from about 13 seconds to 4.5 minutes and increase predictably with document length. + +
+ + + +#### Query cost and accuracy + +[**PageIndex-OSS-Benchmark**](https://github.com/VectifyAI/PageIndex-OSS-Benchmark) measures exactly the setup in the quickstart above (`PageIndexClient()` in local mode, flash indexing, no OCR) on 62 lookup questions over 34 PDFs (1,945 pages) drawn from [MMLongBench-Doc-V2](https://github.com/VectifyAI/MMLongBench-Doc-V2). Every question's answer is a fact stated in running text, so a wrong answer is a **retrieval or reading failure**, not a reasoning one. + +
+ + + Accuracy against average cost per question. Each model forms a near-vertical reasoning-effort ladder; moving between models costs an order of magnitude a step. + +
+ + +Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). + +### FinanceBench + +PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944) (financial document QA benchmark), vastly outperforming vector-based RAG. + + + +Explore the full [benchmark results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). + + # PageIndex Cloud The open-source version is ideal for text-heavy PDFs and local workflows. With **PageIndex Cloud, document indexing and storage run in the cloud**: PageIndex handles parsing, OCR, image understanding, tree-index construction, and managed storage for you. The chat and retrieval layer remains **compatible with your model**, so you can search the cloud-hosted index using the model provider your application already uses. From 656cb5cc1241390f0d310a73bee32eae77248d57 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:25:50 +0800 Subject: [PATCH 042/105] docs: a Usage section holds the two collapsed guides Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 418ae44c7..d0a41cf6f 100644 --- a/README.md +++ b/README.md @@ -126,13 +126,11 @@ Revenue increased during the reporting period.
- - -# Detailed Usage Guide - - +

Detailed Usage Guide

### ⚙️ Step 1: Initialize the client @@ -285,11 +283,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
- - -# Integrate PageIndex with your own agent - - +

Integrate PageIndex with your own agent

Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: From 3beaba33a51e483de8255fe3be2fae77b68b6ad4 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:26:58 +0800 Subject: [PATCH 043/105] docs: the Usage guides sit at h3 with their steps one level down Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d0a41cf6f..78741c10d 100644 --- a/README.md +++ b/README.md @@ -130,9 +130,9 @@ Revenue increased during the reporting period.
-

Detailed Usage Guide

+

Detailed Usage Guide

-### ⚙️ Step 1: Initialize the client +#### ⚙️ Step 1: Initialize the client Create a local client and choose the models used for indexing and retrieval: @@ -155,7 +155,7 @@ client = PageIndexClient( `index_model=` / `chat_model=` are the flat spellings of the quickstart's `index=` / `chat=`; either spelling works. -#### Model naming conventions +##### Model naming conventions Model names follow [LiteLLM's naming convention](https://docs.litellm.ai/docs/providers). Choose the format that matches your provider: @@ -185,7 +185,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi -### 🌲 Step 2: Build the tree index +#### 🌲 Step 2: Build the tree index `submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -233,7 +233,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex -### 💬 Step 3: Ask questions +#### 💬 Step 3: Ask questions `chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -283,7 +283,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
-

Integrate PageIndex with your own agent

+

Integrate PageIndex with your own agent

Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: From 8e4a874f2396c40b1a3fc9f9a066c7436aa06709 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:28:12 +0800 Subject: [PATCH 044/105] docs: the Usage guides sit at h2 so their steps keep their levels Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 78741c10d..d0a41cf6f 100644 --- a/README.md +++ b/README.md @@ -130,9 +130,9 @@ Revenue increased during the reporting period.
-

Detailed Usage Guide

+

Detailed Usage Guide

-#### ⚙️ Step 1: Initialize the client +### ⚙️ Step 1: Initialize the client Create a local client and choose the models used for indexing and retrieval: @@ -155,7 +155,7 @@ client = PageIndexClient( `index_model=` / `chat_model=` are the flat spellings of the quickstart's `index=` / `chat=`; either spelling works. -##### Model naming conventions +#### Model naming conventions Model names follow [LiteLLM's naming convention](https://docs.litellm.ai/docs/providers). Choose the format that matches your provider: @@ -185,7 +185,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi -#### 🌲 Step 2: Build the tree index +### 🌲 Step 2: Build the tree index `submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -233,7 +233,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex -#### 💬 Step 3: Ask questions +### 💬 Step 3: Ask questions `chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -283,7 +283,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
-

Integrate PageIndex with your own agent

+

Integrate PageIndex with your own agent

Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: From 32d43c1f54832822e4a69b556a52fb2d14864970 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:29:05 +0800 Subject: [PATCH 045/105] docs: the Usage guides sit at h3, inner levels untouched Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d0a41cf6f..4f0e38bf2 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ Revenue increased during the reporting period.
-

Detailed Usage Guide

+

Detailed Usage Guide

### ⚙️ Step 1: Initialize the client @@ -283,7 +283,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
-

Integrate PageIndex with your own agent

+

Integrate PageIndex with your own agent

Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: From 2045c597682526592e1f36399120157bb32b21a8 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:32:25 +0800 Subject: [PATCH 046/105] docs: each usage step collapses on its own under Usage Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 4f0e38bf2..854e3cb21 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See the [Detailed Usage Guide](#detailed-usage-guide) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). +See [Usage](#usage) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). ### Get Answers with Citations @@ -128,11 +128,8 @@ Revenue increased during the reporting period.
-

Detailed Usage Guide

- -### ⚙️ Step 1: Initialize the client +

⚙️ Step 1: Initialize the client

Create a local client and choose the models used for indexing and retrieval: @@ -182,10 +179,11 @@ chat_model = "openrouter/anthropic/claude-sonnet-4-6" For model names and API key settings for other providers, see the [LiteLLM provider documentation](https://docs.litellm.ai/docs/providers). +
- -### 🌲 Step 2: Build the tree index +
+

🌲 Step 2: Build the tree index

`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -230,10 +228,10 @@ A PageIndex tree looks like a table of contents optimized for LLMs and agents: See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/examples/documents) and generated [tree structures](https://github.com/VectifyAI/PageIndex/tree/main/examples/documents/results). +
- - -### 💬 Step 3: Ask questions +
+

💬 Step 3: Ask questions

`chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -281,6 +279,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
+

Integrate PageIndex with your own agent

From 64271d083ef5f2d79ca7ae1de1c7c70f306e1231 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:34:26 +0800 Subject: [PATCH 047/105] docs: Usage keeps its two guides as headings with collapsed items inside Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 854e3cb21..8754b7270 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See [Usage](#usage) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). +See the [Detailed Usage Guide](#detailed-usage-guide) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). ### Get Answers with Citations @@ -128,8 +128,11 @@ Revenue increased during the reporting period. +### Detailed Usage Guide +
-

⚙️ Step 1: Initialize the client

+

⚙️ Step 1: Initialize the client

Create a local client and choose the models used for indexing and retrieval: @@ -183,7 +186,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi
-

🌲 Step 2: Build the tree index

+

🌲 Step 2: Build the tree index

`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -231,7 +234,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex
-

💬 Step 3: Ask questions

+

💬 Step 3: Ask questions

`chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -281,12 +284,12 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it -
-

Integrate PageIndex with your own agent

+### Integrate PageIndex with your own agent Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: -**OpenAI Agents SDK:** +
+

OpenAI Agents SDK

```python from agents import Agent, Runner @@ -297,7 +300,10 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.") `openai_agent_config()` provides the instructions and tools required by an OpenAI agent. -**Anthropic SDK tool runner:** +
+ +
+

Anthropic SDK tool runner

```python runner = anthropic_client.beta.messages.tool_runner( @@ -308,7 +314,10 @@ runner = anthropic_client.beta.messages.tool_runner( `anthropic_runner_config()` configures Anthropic's native tool runner. Install the integration with `pip install 'pageindex[anthropic]'`. -**Claude Agent SDK:** +
+ +
+

Claude Agent SDK

```python options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) @@ -316,7 +325,10 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) `claude_agent_config()` creates the options for the Claude Agent SDK. Install the integration with `pip install 'pageindex[claude]'`. -**Other agent frameworks:** +
+ +
+

Other agent frameworks

```python tools = client.agent_tools() @@ -324,9 +336,10 @@ tools = client.agent_tools() `agent_tools()` returns plain Python functions that work with LangChain, PydanticAI, and other agent frameworks. +
+ Each `*_config` helper is sugar over the explicit pieces (`client.agent_instructions()` for the system prompt, `client.as_openai_tools()` / `as_anthropic_tools()` / `as_claude_mcp()` for the tools), so you can swap in your own prompt whenever you need to. Locally, `doc_id` is enforced at the tool layer, not just prompted: out-of-scope lookups return `NOT_FOUND`. -
# Benchmarks From 71e442d743baf641b82916fb080125b808266ee8 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:35:38 +0800 Subject: [PATCH 048/105] docs: the *_config note folds into Other agent frameworks Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8754b7270..dfea5fcfc 100644 --- a/README.md +++ b/README.md @@ -336,10 +336,10 @@ tools = client.agent_tools() `agent_tools()` returns plain Python functions that work with LangChain, PydanticAI, and other agent frameworks. -
- Each `*_config` helper is sugar over the explicit pieces (`client.agent_instructions()` for the system prompt, `client.as_openai_tools()` / `as_anthropic_tools()` / `as_claude_mcp()` for the tools), so you can swap in your own prompt whenever you need to. Locally, `doc_id` is enforced at the tool layer, not just prompted: out-of-scope lookups return `NOT_FOUND`. +
+ # Benchmarks From bd9a06086a5dfedbee8e2db9827c960b4eb46791 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:37:02 +0800 Subject: [PATCH 049/105] docs: Usage and the Detailed Usage Guide open with a line of orientation Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index dfea5fcfc..6c9569252 100644 --- a/README.md +++ b/README.md @@ -128,9 +128,13 @@ Revenue increased during the reporting period. ### Detailed Usage Guide +Expand a step for the full options: model naming for other providers, what a tree looks like, and the protocol surfaces behind `chat()`. +

⚙️ Step 1: Initialize the client

From 669a2151933cba2225430191becaef2c389b9b5f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:38:12 +0800 Subject: [PATCH 050/105] docs: the Usage lead-in drops the happy-path idiom Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c9569252..70457193b 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From 24d54a627d396947997d2bc0f611b3c837550d94 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:38:50 +0800 Subject: [PATCH 051/105] docs: the Usage lead-in names the two guides directly Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70457193b..0dbc3df38 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From b0296a20f642ecd5ba57ddce708ee3d9415d1ef5 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:39:26 +0800 Subject: [PATCH 052/105] docs: the guide and integration lead-ins say what each block holds Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0dbc3df38..e17b32603 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ Configure the client step by step, or use PageIndex's tools inside your own agen ### Detailed Usage Guide -Expand a step for the full options: model naming for other providers, what a tree looks like, and the protocol surfaces behind `chat()`. +Each step expands to its full set of options: model names for any provider, the structure of a built tree index, and the OpenAI- and Anthropic-compatible interfaces behind `chat()`.

⚙️ Step 1: Initialize the client

@@ -290,7 +290,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it ### Integrate PageIndex with your own agent -Instead of calling PageIndex's agent, hand PageIndex's tools to yours. One call fills every slot: +PageIndex's document tools also work inside an agent you already have. Each helper below sets up one framework in a single call:

OpenAI Agents SDK

From df86a7361deb80cf274948c54fdd077bd0b87f5e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:40:07 +0800 Subject: [PATCH 053/105] docs: the Usage lead-in contrasts direct use with integration Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e17b32603..5439ce268 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From 415bd9b196a10301d739584237632aa3f07ec1d8 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:41:54 +0800 Subject: [PATCH 054/105] docs: the Usage lead-in lists its two guides; their intros stay general Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5439ce268..0a55ee543 100644 --- a/README.md +++ b/README.md @@ -128,12 +128,13 @@ Revenue increased during the reporting period. ### Detailed Usage Guide -Each step expands to its full set of options: model names for any provider, the structure of a built tree index, and the OpenAI- and Anthropic-compatible interfaces behind `chat()`. +Three steps from a fresh client to answers. Expand each for the full set of options.

⚙️ Step 1: Initialize the client

@@ -290,7 +291,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it ### Integrate PageIndex with your own agent -PageIndex's document tools also work inside an agent you already have. Each helper below sets up one framework in a single call: +PageIndex also works inside an agent you already have. Each helper below sets up one framework in a single call:

OpenAI Agents SDK

From 4494e32294a4f179fdd59692a576ffa5bb3fa20c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:43:05 +0800 Subject: [PATCH 055/105] docs: the Usage lead-in is one line with (i) and (ii) Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a55ee543..27a138b40 100644 --- a/README.md +++ b/README.md @@ -128,8 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From b3168017b04b74695f41211c6c74a2a17612e560 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:44:41 +0800 Subject: [PATCH 056/105] docs: the Usage lead-in says SDK client and your own agent Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27a138b40..933ffd29f 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From c93fd573f9e984607182cfda823a5be3ab105c25 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:46:38 +0800 Subject: [PATCH 057/105] docs: the Usage lead-in uses parallel verbs Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 933ffd29f..06fdbd5cf 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From f66187e394ed71a174dc696bab2cfcb6bfbed2ac Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:47:30 +0800 Subject: [PATCH 058/105] docs: the Usage lead-in says access rather than call Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 06fdbd5cf..f0f53e329 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From 4086991a6160647d3626ed9debfae7280603181a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:49:12 +0800 Subject: [PATCH 059/105] docs: the Usage lead-in drops the verb in (i) Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0f53e329..37ed8378b 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Revenue increased during the reporting period. ### Detailed Usage Guide From 4df8c995cd874ad3964ffcc4ec5762cf240c04db Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:50:59 +0800 Subject: [PATCH 060/105] docs: the integration lead-in reads as one plain sentence pair Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37ed8378b..4ced94f42 100644 --- a/README.md +++ b/README.md @@ -290,7 +290,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it ### Integrate PageIndex with your own agent -PageIndex also works inside an agent you already have. Each helper below sets up one framework in a single call: +PageIndex can also be integrated into your own agent. Each example below sets up one framework:

OpenAI Agents SDK

From ee9fa0647d0c0acc2901202e2138d8d152af3599 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:52:33 +0800 Subject: [PATCH 061/105] docs: the client guide is headed Use PageIndex through the SDK client Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4ced94f42..86ebb3a69 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See the [Detailed Usage Guide](#detailed-usage-guide) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). +See [the SDK client guide](#sdk-client) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). ### Get Answers with Citations @@ -130,8 +130,8 @@ Revenue increased during the reporting period. -### Detailed Usage Guide + +### Use PageIndex through the SDK client Three steps from a fresh client to answers. Expand each for the full set of options. From c8433cbf0443230cc71b6db057ed349aee40c12a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:53:29 +0800 Subject: [PATCH 062/105] docs: the Usage lead-in lists its two ways as bullets Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 86ebb3a69..372731284 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,10 @@ Revenue increased during the reporting period. ### Use PageIndex through the SDK client From e914feddac437f1c17bb11e19f18678b9d7d9bff Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:54:16 +0800 Subject: [PATCH 063/105] docs: the Usage lead-in returns to one (i)/(ii) line Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 372731284..86ebb3a69 100644 --- a/README.md +++ b/README.md @@ -128,10 +128,7 @@ Revenue increased during the reporting period. ### Use PageIndex through the SDK client From 832bcc27b36bf0b0bd6a54063932979ab0120695 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:55:04 +0800 Subject: [PATCH 064/105] docs: the Ready to Try It links cover only the noun Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 86ebb3a69..8b4c65a9c 100644 --- a/README.md +++ b/README.md @@ -439,8 +439,8 @@ print(client.chat("What was the 2023 operating margin?", doc_id=doc_id)) ### Ready to Try It? -- [Get a PageIndex API Key](https://developer.pageindex.ai/) -- [Read the PageIndex Cloud Documentation](https://docs.pageindex.ai/) +- Get a [PageIndex API key](https://developer.pageindex.ai/) +- Read the [PageIndex Cloud documentation](https://docs.pageindex.ai/) For dedicated deployment (VPC or on-premises), [contact us](https://ii2abc2jejf.typeform.com/to/gVv7qkaN) or [book a demo](https://calendly.com/pageindex/meet). From f8bacd2ed910b5e64c80cb5a926ab009beafe501 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:55:48 +0800 Subject: [PATCH 065/105] docs: the Usage section is headed Usage Guide Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b4c65a9c..ea686d2f7 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ Revenue increased during the reporting period. Date: Thu, 27 Aug 2026 22:57:21 +0800 Subject: [PATCH 066/105] docs: the summary heading reads tl;dr Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea686d2f7..09a1010f7 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the
-### TLDR +### tl;dr
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
From 17bcaa40b17656625332dd4318ccb282146aa09b Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 22:59:00 +0800 Subject: [PATCH 067/105] docs: collapsed items use bold summaries so they sit close together Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 09a1010f7..83435e709 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat Three steps from a fresh client to answers. Expand each for the full set of options.
-

⚙️ Step 1: Initialize the client

+⚙️ Step 1: Initialize the client Create a local client and choose the models used for indexing and retrieval: @@ -190,7 +190,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi
-

🌲 Step 2: Build the tree index

+🌲 Step 2: Build the tree index `submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -238,7 +238,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex
-

💬 Step 3: Ask questions

+💬 Step 3: Ask questions `chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -293,7 +293,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it PageIndex can also be integrated into your own agent. Each example below sets up one framework:
-

OpenAI Agents SDK

+OpenAI Agents SDK ```python from agents import Agent, Runner @@ -307,7 +307,7 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.")
-

Anthropic SDK tool runner

+Anthropic SDK tool runner ```python runner = anthropic_client.beta.messages.tool_runner( @@ -321,7 +321,7 @@ runner = anthropic_client.beta.messages.tool_runner(
-

Claude Agent SDK

+Claude Agent SDK ```python options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) @@ -332,7 +332,7 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id))
-

Other agent frameworks

+Other agent frameworks ```python tools = client.agent_tools() From 763eec94fff973d20b32e88575e653bfca438961 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:00:15 +0800 Subject: [PATCH 068/105] docs: expanded items get a line of air under their summary Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 83435e709..4d016cd50 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ Three steps from a fresh client to answers. Expand each for the full set of opti
⚙️ Step 1: Initialize the client +
Create a local client and choose the models used for indexing and retrieval: @@ -191,6 +192,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi
🌲 Step 2: Build the tree index +
`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -239,6 +241,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex
💬 Step 3: Ask questions +
`chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -294,6 +297,7 @@ PageIndex can also be integrated into your own agent. Each example below sets up
OpenAI Agents SDK +
```python from agents import Agent, Runner @@ -308,6 +312,7 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.")
Anthropic SDK tool runner +
```python runner = anthropic_client.beta.messages.tool_runner( @@ -322,6 +327,7 @@ runner = anthropic_client.beta.messages.tool_runner(
Claude Agent SDK +
```python options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) @@ -333,6 +339,7 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id))
Other agent frameworks +
```python tools = client.agent_tools() From 41262764e6b7696fea8440d515039e60dd96e42f Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:03:04 +0800 Subject: [PATCH 069/105] docs: collapsed items try h4 summaries again Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4d016cd50..09a1010f7 100644 --- a/README.md +++ b/README.md @@ -136,8 +136,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat Three steps from a fresh client to answers. Expand each for the full set of options.
-⚙️ Step 1: Initialize the client -
+

⚙️ Step 1: Initialize the client

Create a local client and choose the models used for indexing and retrieval: @@ -191,8 +190,7 @@ For model names and API key settings for other providers, see the [LiteLLM provi
-🌲 Step 2: Build the tree index -
+

🌲 Step 2: Build the tree index

`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -240,8 +238,7 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex
-💬 Step 3: Ask questions -
+

💬 Step 3: Ask questions

`chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -296,8 +293,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it PageIndex can also be integrated into your own agent. Each example below sets up one framework:
-OpenAI Agents SDK -
+

OpenAI Agents SDK

```python from agents import Agent, Runner @@ -311,8 +307,7 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.")
-Anthropic SDK tool runner -
+

Anthropic SDK tool runner

```python runner = anthropic_client.beta.messages.tool_runner( @@ -326,8 +321,7 @@ runner = anthropic_client.beta.messages.tool_runner(
-Claude Agent SDK -
+

Claude Agent SDK

```python options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) @@ -338,8 +332,7 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id))
-Other agent frameworks -
+

Other agent frameworks

```python tools = client.agent_tools() From e7fdf070e23ef3b6d57d3311377b32e5f8760be0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:04:15 +0800 Subject: [PATCH 070/105] docs: collapsed items settle on bold summaries with a spacer Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 09a1010f7..4d016cd50 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,8 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat Three steps from a fresh client to answers. Expand each for the full set of options.
-

⚙️ Step 1: Initialize the client

+⚙️ Step 1: Initialize the client +
Create a local client and choose the models used for indexing and retrieval: @@ -190,7 +191,8 @@ For model names and API key settings for other providers, see the [LiteLLM provi
-

🌲 Step 2: Build the tree index

+🌲 Step 2: Build the tree index +
`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. @@ -238,7 +240,8 @@ See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/ex
-

💬 Step 3: Ask questions

+💬 Step 3: Ask questions +
`chat()` is the one-line surface. Underneath it is a document-QA agent, and you can talk to it over whichever protocol your stack already speaks: @@ -293,7 +296,8 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it PageIndex can also be integrated into your own agent. Each example below sets up one framework:
-

OpenAI Agents SDK

+OpenAI Agents SDK +
```python from agents import Agent, Runner @@ -307,7 +311,8 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.")
-

Anthropic SDK tool runner

+Anthropic SDK tool runner +
```python runner = anthropic_client.beta.messages.tool_runner( @@ -321,7 +326,8 @@ runner = anthropic_client.beta.messages.tool_runner(
-

Claude Agent SDK

+Claude Agent SDK +
```python options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) @@ -332,7 +338,8 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id))
-

Other agent frameworks

+Other agent frameworks +
```python tools = client.agent_tools() From a28b4817199f16b6fe431fcfdefab81c16b0dac0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:05:19 +0800 Subject: [PATCH 071/105] docs: a line of air between neighbouring collapsed items Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 4d016cd50..7125550b7 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ chat_model = "openrouter/anthropic/claude-sonnet-4-6" For model names and API key settings for other providers, see the [LiteLLM provider documentation](https://docs.litellm.ai/docs/providers).
+
@@ -238,6 +239,7 @@ A PageIndex tree looks like a table of contents optimized for LLMs and agents: See more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/examples/documents) and generated [tree structures](https://github.com/VectifyAI/PageIndex/tree/main/examples/documents/results).
+
💬 Step 3: Ask questions @@ -309,6 +311,7 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.") `openai_agent_config()` provides the instructions and tools required by an OpenAI agent.
+
Anthropic SDK tool runner @@ -324,6 +327,7 @@ runner = anthropic_client.beta.messages.tool_runner( `anthropic_runner_config()` configures Anthropic's native tool runner. Install the integration with `pip install 'pageindex[anthropic]'`.
+
Claude Agent SDK @@ -336,6 +340,7 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) `claude_agent_config()` creates the options for the Claude Agent SDK. Install the integration with `pip install 'pageindex[claude]'`.
+
Other agent frameworks From 1bc6a1554ee3bbe511e17049a901086b5db0198c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:07:18 +0800 Subject: [PATCH 072/105] docs: the Step 2 anchor lives inside its summary so item gaps match Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 7125550b7..d2b9640a3 100644 --- a/README.md +++ b/README.md @@ -190,9 +190,8 @@ For model names and API key settings for other providers, see the [LiteLLM provi

-
-🌲 Step 2: Build the tree index +🌲 Step 2: Build the tree index
`submit_document` defaults to **Flash** indexing: the structure is extracted from the PDF's own layout (no LLM), and a model is called only for node summaries and the tree-optimization expansion pass. It takes seconds. From 1c08aa656c9d628df89abc6f2bc49be2983f5635 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:08:36 +0800 Subject: [PATCH 073/105] docs: the two guide headings rely on their generated anchors Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index d2b9640a3..413dea547 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See [the SDK client guide](#sdk-client) to configure other models, or [integrate PageIndex with your own agent](#integrate-with-your-own-agent). +See [the SDK client guide](#use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#integrate-pageindex-with-your-own-agent). ### Get Answers with Citations @@ -130,7 +130,6 @@ Revenue increased during the reporting period. ### Use PageIndex through the SDK client Three steps from a fresh client to answers. Expand each for the full set of options. @@ -291,7 +290,6 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it
- ### Integrate PageIndex with your own agent PageIndex can also be integrated into your own agent. Each example below sets up one framework: From 06897ad633009729bc3d67d2b630b8e5142edce0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:10:43 +0800 Subject: [PATCH 074/105] docs: the SDK client guide opens with a plainer line Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 413dea547..b6498db7a 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat ### Use PageIndex through the SDK client -Three steps from a fresh client to answers. Expand each for the full set of options. +The complete workflow in three steps. Expand each step for its full set of options.
⚙️ Step 1: Initialize the client From 1e3df1381ee9f4f5461f1dd99d38476ce770ee3d Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:12:19 +0800 Subject: [PATCH 075/105] docs: the SDK client guide lead-in drops workflow Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b6498db7a..bbbda3ea4 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat ### Use PageIndex through the SDK client -The complete workflow in three steps. Expand each step for its full set of options. +Three steps cover the client end to end. Expand each step for its full set of options.
⚙️ Step 1: Initialize the client From 71d76a2b8efdb4bac0c6aefcc2daab4c3b4559b3 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:13:22 +0800 Subject: [PATCH 076/105] docs: the SDK client guide lead-in names its three steps Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbbda3ea4..8d6d958e8 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat ### Use PageIndex through the SDK client -Three steps cover the client end to end. Expand each step for its full set of options. +Three steps, end to end: set up, index, ask. Expand each step for its full set of options.
⚙️ Step 1: Initialize the client From 95d2528fba03a4c6ae9f826c4f9204225745ab9c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:14:26 +0800 Subject: [PATCH 077/105] docs: the SDK client guide lead-in, polished Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d6d958e8..f5365d496 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat ### Use PageIndex through the SDK client -Three steps, end to end: set up, index, ask. Expand each step for its full set of options. +End to end in three steps: set up, index, ask. Expand any step for its full options.
⚙️ Step 1: Initialize the client From 142f9809106f53a35ff0917206136644861c23c1 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:15:43 +0800 Subject: [PATCH 078/105] docs: the SDK client guide lead-in points below Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f5365d496..c77e0603a 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Two ways to use PageIndex: (i) directly through the SDK client, or (ii) integrat ### Use PageIndex through the SDK client -End to end in three steps: set up, index, ask. Expand any step for its full options. +End to end in three steps: set up, index, ask. Expand a step below for its full options.
⚙️ Step 1: Initialize the client From 81458ec72eb7c5312f4a59b1020767ebb2e4d174 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:17:30 +0800 Subject: [PATCH 079/105] docs: a line of air before the integration heading Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c77e0603a..f619fea9c 100644 --- a/README.md +++ b/README.md @@ -288,7 +288,7 @@ Uses Anthropic's native Messages API and tool runner. Install it with `pip insta Pass a list of ids to `doc_id` to search several documents at once, and keep it identical across a conversation's calls.
- +
### Integrate PageIndex with your own agent From 416bb4ec0316239feec261d8bb2af66e8201fe1a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:21:13 +0800 Subject: [PATCH 080/105] docs: no spacer before the integration heading Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f619fea9c..b5af040bc 100644 --- a/README.md +++ b/README.md @@ -288,7 +288,6 @@ Uses Anthropic's native Messages API and tool runner. Install it with `pip insta Pass a list of ids to `doc_id` to search several documents at once, and keep it identical across a conversation's calls.
-
### Integrate PageIndex with your own agent From 5bb553b4a3a71af66115ae3645d7644f22fe223e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:26:56 +0800 Subject: [PATCH 081/105] docs: the two usage guides are labelled (a) and (b) Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b5af040bc..e79c0db2d 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See [the SDK client guide](#use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#integrate-pageindex-with-your-own-agent). +See [the SDK client guide](#a-use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). ### Get Answers with Citations @@ -128,9 +128,9 @@ Revenue increased during the reporting period. -### Integrate PageIndex with your own agent +### (b) Integrate PageIndex with your own agent PageIndex can also be integrated into your own agent. Each example below sets up one framework: From 6ee3e604dc91766512731b90bb1a8299b1870d54 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:29:00 +0800 Subject: [PATCH 082/105] docs: the FinanceBench closing line names the evaluation Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e79c0db2d..d6f78e78c 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blo
-Explore the full [benchmark results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). +Explore the full [FinanceBench evaluation results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). # PageIndex Cloud From 435640a057f4fd5ed957ee98ed1844ba32384f88 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:29:43 +0800 Subject: [PATCH 083/105] docs: the FinanceBench closing line links only the results Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d6f78e78c..896f1d609 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blo
-Explore the full [FinanceBench evaluation results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). +Explore the full FinanceBench [evaluation results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and the [blog post](https://vectify.ai/blog/Mafin2.5). # PageIndex Cloud From 9fe99b2786f94995667ab71d6689db03e3fc80fa Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:37:52 +0800 Subject: [PATCH 084/105] docs: the FinanceBench claim links straight to its benchmark subsection Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 896f1d609..fc3cef6a0 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the It is ideal for financial reports, legal documents, regulatory filings, technical manuals, medical literature, academic textbooks, and any other long, complex professional document. -> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#benchmarks)). +> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#financebench)). From 17e04afd78ffdbf9241215ef02d89e77e5a20459 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:38:37 +0800 Subject: [PATCH 085/105] docs: the indexing-cost line names the model in prose Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc3cef6a0..720d48c43 100644 --- a/README.md +++ b/README.md @@ -360,7 +360,7 @@ Each `*_config` helper is sugar over the explicit pieces (`client.agent_instruct #### Indexing cost and time -Building a tree locally runs **about $0.001 per page** with `index_model="gpt-5.6-luna"`, so a 1,000-page textbook costs a little over a dollar and a few minutes, once, and every later question reuses it. PageIndex is designed not to rely heavily on the model used at index time, so in our experiments a basic model does not hurt quality. +Building a tree locally runs **about $0.001 per page** with `gpt-5.6-luna` as the index model, so a 1,000-page textbook costs a little over a dollar and a few minutes, once, and every later question reuses it. PageIndex is designed not to rely heavily on the model used at index time, so in our experiments a basic model does not hurt quality.
From 3e2115d9f91737f913b1e4988557780c8afc1853 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:40:02 +0800 Subject: [PATCH 086/105] docs: the FinanceBench subsection is headed Leading on FinanceBench Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 720d48c43..9d58870dc 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the It is ideal for financial reports, legal documents, regulatory filings, technical manuals, medical literature, academic textbooks, and any other long, complex professional document. -> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#financebench)). +> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#leading-on-financebench)). @@ -394,7 +394,7 @@ Indexing time also scales predictably with document length. In the same local se Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). -### FinanceBench +### Leading on FinanceBench PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944) (financial document QA benchmark), vastly outperforming vector-based RAG. From cafd5d5f628400810c2e99c6634ecd7f78ebe01d Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:41:37 +0800 Subject: [PATCH 087/105] docs: the FinanceBench heading reads Leading accuracy on FinanceBench Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d58870dc..b4a081e52 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the It is ideal for financial reports, legal documents, regulatory filings, technical manuals, medical literature, academic textbooks, and any other long, complex professional document. -> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#leading-on-financebench)). +> PageIndex achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench (financial document QA benchmark), vastly outperforming vector-based RAG (see [Benchmarks](#leading-accuracy-on-financebench)). @@ -394,7 +394,7 @@ Indexing time also scales predictably with document length. In the same local se Full results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark). -### Leading on FinanceBench +### Leading accuracy on FinanceBench PageIndex reached a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on [FinanceBench](https://arxiv.org/abs/2311.11944) (financial document QA benchmark), vastly outperforming vector-based RAG. From 60b181961c6b8af2e2add66fd0b98dd98962b31c Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:42:27 +0800 Subject: [PATCH 088/105] docs: Updates lists the PageIndex File System again Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4a081e52..50a93a0b1 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ - [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. - [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically instead of by an LLM. +- [**Scale PageIndex to Millions of Documents**](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 1933414a3034ed69edb0cef67e07ca067c6fd303 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:43:07 +0800 Subject: [PATCH 089/105] docs: the File System update entry links in plain weight Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50a93a0b1..785157ed5 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ - [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. - [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically instead of by an LLM. -- [**Scale PageIndex to Millions of Documents**](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. +- [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 0afcd7b545c120a60cfe401f4152657164333250 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:44:40 +0800 Subject: [PATCH 090/105] docs: the header link row gains Blog Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 785157ed5..c7fa3f287 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ 🖥️ Chat Platform  •   🔌 MCP & API  •   📖 Docs  •   + 📝 Blog  •   ✉️ Contact  From 442f6af8a0e77645b5c8b292d014d2c38c350627 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:45:52 +0800 Subject: [PATCH 091/105] docs: the summary heading reads TL;DR Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7fa3f287..e42ad967a 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Inspired by AlphaGo, **[PageIndex](https://vectify.ai/pageindex)** replaces the
-### tl;dr +### TL;DR
PageIndex is a vectorless, reasoning-based RAG engine that mirrors how humans read, delivering traceable, explainable, and context-aware retrieval, with no vector DBs or chunking.
From 489e67bb69d2de9bdf05d163f582089e62d005b6 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:46:28 +0800 Subject: [PATCH 092/105] docs: Model Recommendations points at the Usage Guide Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e42ad967a..b6f8166b4 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See [the SDK client guide](#a-use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). +See the [Usage Guide](#usage-guide) to configure other models or integrate PageIndex with your own agent. ### Get Answers with Citations From 55712cdea8403bd01085a05b612498c818cfce33 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:47:20 +0800 Subject: [PATCH 093/105] docs: Model Recommendations names the SDK client usage guide Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b6f8166b4..ebacead94 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See the [Usage Guide](#usage-guide) to configure other models or integrate PageIndex with your own agent. +See the [SDK client usage guide](#a-use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). ### Get Answers with Citations From 6f2b7530681a4c3af3b1490c2d3c171a247237bb Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:48:18 +0800 Subject: [PATCH 094/105] docs: the usage-guide pointer promises more than models Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ebacead94..b8b5d94e7 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See the [SDK client usage guide](#a-use-pageindex-through-the-sdk-client) to configure other models, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). +See the [SDK client usage guide](#a-use-pageindex-through-the-sdk-client) to configure other models and more options, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). ### Get Answers with Citations From 91c166c0191ce14dc85fd54e0d1b4ec5224d20a0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:49:31 +0800 Subject: [PATCH 095/105] docs: the usage-guide pointer, one word shorter Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8b5d94e7..3186a5098 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ print(answer) - **`index=`: a basic model is sufficient.** The index model generates the document's tree index. A basic model is sufficient to produce a good tree structure. - **`chat=`: use the best model you can afford.** The chat model searches the tree to retrieve information. See [Query cost and accuracy](#query-cost-and-accuracy). -See the [SDK client usage guide](#a-use-pageindex-through-the-sdk-client) to configure other models and more options, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). +See the [SDK client usage guide](#a-use-pageindex-through-the-sdk-client) to configure other models and more, or [integrate PageIndex with your own agent](#b-integrate-pageindex-with-your-own-agent). ### Get Answers with Citations From 648eb8f7abd7e34ed00ee11b9770636383915694 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:53:55 +0800 Subject: [PATCH 096/105] docs: the integration lead-in says each example covers one framework Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3186a5098..c648f0676 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it ### (b) Integrate PageIndex with your own agent -PageIndex can also be integrated into your own agent. Each example below sets up one framework: +PageIndex can also be integrated into your own agent. Each example below covers one framework:
OpenAI Agents SDK From a87612a848993622bff4d4bb4499bce91da61609 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:54:42 +0800 Subject: [PATCH 097/105] docs: the integration lead-in says a different framework Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c648f0676..e423c3ae0 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,7 @@ Pass a list of ids to `doc_id` to search several documents at once, and keep it ### (b) Integrate PageIndex with your own agent -PageIndex can also be integrated into your own agent. Each example below covers one framework: +PageIndex can also be integrated into your own agent. Each example below covers a different framework:
OpenAI Agents SDK From 439a3398bdd86ef1036abda309faf08cc7c2158e Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 27 Aug 2026 23:57:24 +0800 Subject: [PATCH 098/105] docs: each framework fold shows the one-call and explicit forms end to end Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e423c3ae0..4c60adcbe 100644 --- a/README.md +++ b/README.md @@ -299,14 +299,26 @@ PageIndex can also be integrated into your own agent. Each example below covers OpenAI Agents SDK
+Ships with the SDK, no extras needed: + ```python from agents import Agent, Runner agent = Agent(**client.openai_agent_config(doc_id=doc_id)) result = Runner.run_sync(agent, "Summarize the auditor's concerns.") +print(result.final_output) ``` -`openai_agent_config()` provides the instructions and tools required by an OpenAI agent. +`openai_agent_config()` returns the instructions and tools an `Agent` needs. To use your own prompt or pick tools yourself, assemble the pieces directly: + +```python +agent = Agent( + name="PageIndex", + instructions=client.agent_instructions(doc_id=doc_id), # or your own prompt + tools=client.as_openai_tools(doc_id=doc_id), # include_management=True adds deletion + model=client.chat_model, # local clients only +) +```

@@ -315,14 +327,31 @@ result = Runner.run_sync(agent, "Summarize the auditor's concerns.") Anthropic SDK tool runner
+Install with `pip install 'pageindex[anthropic]'`: + ```python -runner = anthropic_client.beta.messages.tool_runner( +import anthropic + +runner = anthropic.Anthropic().beta.messages.tool_runner( **client.anthropic_runner_config(model="claude-sonnet-4-6", doc_id=doc_id), messages=[{"role": "user", "content": "Summarize the auditor's concerns."}], ) +final = runner.until_done() +print(final.content[-1].text) ``` -`anthropic_runner_config()` configures Anthropic's native tool runner. Install the integration with `pip install 'pageindex[anthropic]'`. +`anthropic_runner_config()` fills every `tool_runner` slot except `messages`. The explicit form: + +```python +runner = anthropic.Anthropic().beta.messages.tool_runner( + model="claude-sonnet-4-6", + max_tokens=8192, + system=client.agent_instructions(doc_id=doc_id), + tools=client.as_anthropic_tools(doc_id=doc_id), # asynchronous=True for AsyncAnthropic + max_iterations=10, + messages=[{"role": "user", "content": "Summarize the auditor's concerns."}], +) +```

@@ -331,11 +360,26 @@ runner = anthropic_client.beta.messages.tool_runner( Claude Agent SDK
+Install with `pip install 'pageindex[claude]'`. The Claude Agent SDK is async-native: + ```python +from claude_agent_sdk import ClaudeAgentOptions, ResultMessage, query + options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id)) +async for message in query(prompt="Summarize the auditor's concerns.", options=options): + if isinstance(message, ResultMessage): + print(message.result) ``` -`claude_agent_config()` creates the options for the Claude Agent SDK. Install the integration with `pip install 'pageindex[claude]'`. +`claude_agent_config()` supplies the system prompt, the PageIndex MCP server, and its tool pre-approval. The explicit form: + +```python +options = ClaudeAgentOptions( + system_prompt=client.agent_instructions(doc_id=doc_id), + mcp_servers={"pageindex": client.as_claude_mcp(doc_id=doc_id)}, + allowed_tools=["mcp__pageindex"], +) +```
@@ -345,12 +389,12 @@ options = ClaudeAgentOptions(**client.claude_agent_config(doc_id=doc_id))
```python -tools = client.agent_tools() +tools = client.agent_tools(doc_id=doc_id) # plain functions returning JSON ``` -`agent_tools()` returns plain Python functions that work with LangChain, PydanticAI, and other agent frameworks. +`agent_tools()` returns plain Python functions that work with LangChain, PydanticAI, and any other agent framework. -Each `*_config` helper is sugar over the explicit pieces (`client.agent_instructions()` for the system prompt, `client.as_openai_tools()` / `as_anthropic_tools()` / `as_claude_mcp()` for the tools), so you can swap in your own prompt whenever you need to. Locally, `doc_id` is enforced at the tool layer, not just prompted: out-of-scope lookups return `NOT_FOUND`. +Every helper above accepts `doc_id=` to point the agent at specific documents and `include_management=True` to also expose document deletion (off by default). Locally, `doc_id` is enforced at the tool layer, not just prompted: out-of-scope lookups return `NOT_FOUND`. From 2f1b1853a342a39a3a34df609ab01f90b90ea4fe Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:02:02 +0800 Subject: [PATCH 099/105] docs: the streaming example uses a literal and the quickstart drops trailing spaces Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4c60adcbe..ac7ca6e3c 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ from pageindex import PageIndexClient os.environ["OPENAI_API_KEY"] = "your-openai-key" -client = PageIndexClient( +client = PageIndexClient( index="gpt-5.6-luna", # model to build the tree index chat="gpt-5.6-sol", # model to search the tree ) @@ -258,7 +258,7 @@ Pass a string or role/content history and get the answer back. **Stream the answer:** ```python -client.chat(question, doc_id=doc_id, stream=True) +client.chat("...", doc_id=doc_id, stream=True) ``` Returns the answer as text chunks. From 94a7035972e6523f05fa727ee4456b05f9641e66 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:06:09 +0800 Subject: [PATCH 100/105] docs: the Flash update entry says where the structure comes from Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac7ca6e3c..dc1ec4f35 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@

Updates

- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically instead of by an LLM. +- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with the structure read from the document's own layout instead of built by an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 0be6c611b2be8fd1ee7bb69215f6fa2b3a7a4f45 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:06:43 +0800 Subject: [PATCH 101/105] docs: the Flash update entry, tighter Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc1ec4f35..f6ce31a3d 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@

Updates

- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with the structure read from the document's own layout instead of built by an LLM. +- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout instead of an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 371615aeacf513a29d76af02972791cd7244a715 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:07:39 +0800 Subject: [PATCH 102/105] docs: the Flash update entry says built by an LLM Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6ce31a3d..ba9c6bd61 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@

Updates

- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout instead of an LLM. +- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout instead of being built by an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 05cfe907d770e576170bea57225825d762b4166a Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:08:19 +0800 Subject: [PATCH 103/105] docs: the Flash update entry, Ray's wording Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba9c6bd61..6314def9c 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@

Updates

- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout instead of being built by an LLM. +- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout info instead of built by an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 56bc10b56d46abe08d672a49d09af3d1c1acc1ff Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:09:07 +0800 Subject: [PATCH 104/105] docs: the Flash update entry keeps extracted heuristically Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6314def9c..df8440741 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@

Updates

- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, from the document's own layout info instead of built by an LLM. +- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically from the document's own layout info instead of built by an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents. From 101ba05aefa9a632be5697760d3bbf7b8ce83b93 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 28 Aug 2026 00:10:44 +0800 Subject: [PATCH 105/105] docs: Updates dates read [Aug '26] Claude-Session: https://claude.ai/code/session_01BtbxfFP1wdkFou1FMCMA6k --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df8440741..42612b3a9 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,8 @@

Updates

-- [2026/08] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. -- [2026/08] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically from the document's own layout info instead of built by an LLM. +- [Aug '26] 🔥 [**PageIndex SDK**](#quickstart): `pip install -U pageindex` now ships **local mode**: index, retrieve, and chat entirely on your machine with your own LLM key, or point the same client at PageIndex Cloud with an API key. +- [Aug '26] ⚡ [**PageIndex Flash**](#step-2-build-the-tree-index): tree structure generation from PDFs in seconds, with structure extracted heuristically from the document's own layout info instead of built by an LLM. - [Scale PageIndex to Millions of Documents](https://pageindex.ai/blog/pageindex-filesystem): *PageIndex File System* is a file-level tree indexing layer that lets PageIndex reason over an entire corpus, not just a single document. - [PageIndex Chat](https://chat.pageindex.ai): a human-like document analysis agent for long professional documents.