{"data":{"slug":"vectifyai-pageindex","name":"PageIndex","tagline":"Document Index for Vectorless, Reasoning-based RAG","github_url":"https://github.com/VectifyAI/PageIndex","owner":"VectifyAI","repo":"PageIndex","owner_avatar_url":"https://avatars.githubusercontent.com/u/133959746?v=4","primary_language":"Python","stars":35705,"forks":3148,"topics":["agentic-ai","agents","ai","ai-agents","context-engineering","information-retrieval","llm","rag","reasoning","retrieval","retrieval-augmented-generation","vector-database"],"archived":false,"github_pushed_at":"2026-09-18T06:32:29+00:00","maintenance_label":"Very active","stars_delta_30d":501,"url":"https://www.graphcanon.com/tools/vectifyai-pageindex","markdown_url":"https://www.graphcanon.com/tools/vectifyai-pageindex.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/vectifyai-pageindex","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=vectifyai-pageindex","description":"📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG","homepage_url":"https://pageindex.ai","license":"MIT","open_issues":105,"watchers":145,"ai_summary":"PageIndex is a tool for indexing documents for retrieval-augmented generation (RAG) tasks, focusing on reasoning-based retrieval without heavy reliance on vector databases.","readme_excerpt":"### Local indexing cost and time\n\nBuilding 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.\n\n<div align=\"center\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/index-cost-dark.png\">\n  <img src=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/index-cost-light.png\" width=\"75%\" alt=\"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.\">\n</picture>\n</div>\n\nIndexing 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**.\n\n<div align=\"center\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/index-time-dark.png\">\n  <img src=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/index-time-light.png\" width=\"75%\" alt=\"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.\">\n</picture>\n</div>\n\n---\n\n### Query cost and accuracy\n\n[**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.\n\n<div align=\"center\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/results-dark.png\">\n  <img src=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/results-light.png\" width=\"75%\" alt=\"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.\">\n</picture>\n</div>\n\n\nFull results, data, and the runner are in the [benchmark repo](https://github.com/VectifyAI/PageIndex-OSS-Benchmark).\n\n---\n\n### Cost per query vs. native PDF input\n\nThe alternative to retrieval is handing the model the whole PDF on every question. That cost grows with the document; PageIndex's does not, because it reads only the nodes its reasoning reaches. On documents where both routes return the same answer, native PDF input costs **2.1× more at 52 pages and 16.6× more at 420** (`gpt-5.6-sol`, prompt caching excluded) — and at 805 pages the document no longer fits in the context window at all.\n\n<div align=\"center\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/query-cost-dark.png\">\n  <img src=\"https://raw.githubusercontent.com/VectifyAI/PageIndex/main/assets/query-cost-light.png\" width=\"75%\" alt=\"Cost per query relative to PageIndex retrieval, for five PDFs from 52 to 805 pages. Passing the PDF natively costs 2.1x, 3.4x, 7.8x, and 16.6x more at 52, 85, 198, and 420 pages; at 805 pages it exceeds the model's context window.\">\n</picture>\n</div>","github_created_at":"2025-04-01T10:53:54+00:00","created_at":"2026-07-07T17:31:54.081296+00:00","updated_at":"2026-09-20T04:32:40.725369+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"}],"tags":[{"slug":"agentic-ai","name":"agentic-ai"},{"slug":"agents","name":"agents"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"context-engineering","name":"context-engineering"},{"slug":"information-retrieval","name":"information retrieval"},{"slug":"llm","name":"llm"},{"slug":"rag","name":"rag"},{"slug":"reasoning","name":"reasoning"}],"trust":{"provenance":{"is_fork":false,"github_id":958531089,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-18T08:41:31.742Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":16,"days_since_push":0,"last_release_at":"2026-09-16T13:31:21Z","stars_delta_30d":501,"open_issues_delta_30d":-52},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":36,"high_count":0,"last_scan_at":"2026-09-18T08:41:33.514Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-18T08:41:30.561Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-18T08:41:30.561Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-18T08:41:30.561Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Use PageIndex when you need to index documents for retrieval-augmented generation tasks that require reasoning-based retrieval.","Use it when you want to minimize costs and time for indexing documents, as it costs about $0.001 per page and scales predictably with document length.","Use PageIndex when you want to avoid the high costs associated with handing the entire PDF to the model for each query, as it can be up to 16.6 times more expensive for larger documents."],"when_not_to_use":["Do not use PageIndex if your application heavily relies on vector databases for document retrieval, as PageIndex is designed to work without them.","Avoid PageIndex if you need to handle documents larger than the context window of the model you are using, as PageIndex may not be able to process them.","Do not use PageIndex if you require a tool that can handle documents that do not fit into the context window at all, as PageIndex may not be suitable for such cases."],"source":"enrich:decision_facts","observed_at":"2026-09-18T12:00:03.551Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"PageIndex is a Python-based tool for indexing documents for retrieval-augmented generation tasks, emphasizing reasoning-based retrieval without heavy reliance on vector databases."}]}}