jev-doc-search 是什么?用 Jev 与 PageIndex 在长文档中定位答案页

VectifyAI/jev-doc-search · GitHub
RAG 知识库
Star150
近 7 天新增0
编程语言Python
开源协议Apache-2.0
创建于2026-09-30
最近更新2026-10-03

中文导读

长文档问答的一个常见做法是向量检索,但这个项目走的是另一条路:把「哪一页能回答问题」直接当成多选题交给 Jev 的 Choice,由模型为每个选项给出概率,不需要向量数据库和 embedding。问题在于文档一长,页数会超出模型一次能读的 token 上限和选项数量上限,于是项目引入 PageIndex 把文档组织成文档、章节、页面的层级树,让模型每层只在一小撮选项里做选择,逐层缩小范围直到定位到具体页面。README 提供了可直接运行的示例脚本和代码片段。

根据 GitHub 公开数据,该项目的编程语言为 Python,开源协议为 Apache-2.0,创建于 2026-09-30,最近更新于 2026-10-03,目前有 150 个 Star。

项目介绍

这个项目演示如何用 Jev 的 Choice 原语和 PageIndex 做长文档检索,不依赖向量数据库或 embedding。核心思路是把「哪一页能回答这个问题」当成一道多选题:每一页是一个选项,Jev 为每个选项返回概率,概率最高的一页就是答案。

但扁平页搜索会遇到两个限制:一是 state 加 Choice 必须放进 32k token,几十页之后就不够用;二是 Choice 最多 255 个选项,超过 255 页的文档无法一页一个选项。PageIndex 把文档转成层级树(文档—章节—页面),Jev 每层只做一次小范围选择,从而绕开这两个限制。

README 给出了 page_search.py 的用法,以及构建树、逐层搜索的完整 Python 示例代码。

主要功能

适合谁用

需要在长 PDF(如年报、手册)中定位答案页的开发者,以及想了解 Jev Choice 与 PageIndex 配合方式的人。

快速上手

  1. 安装依赖并配置 API key(见 README 的 Setup 一节)
  2. 对短 PDF 运行扁平页搜索:python page_search.py handbook.pdf "How many vacation days do new employees get?"
  3. 用 PageIndexClient 提交文档并获取树结构:doc_id = pageindex.submit_document("NVIDIA_10K.pdf", wait=True)["doc_id"]
  4. 用 TypeSafeClient(model="jev-1.13.0") 对顶层章节发起 Choice,选出最可能包含答案的章节
  5. 再对该章节的页码范围发起一次 Choice,得到最可能的页面

Star 增长趋势

150150 · 2026-10-14 至 2026-10-16

同类项目

自托管、可扩展的 AI 对话界面,支持 Ollama 与 OpenAI 兼容 API
★ 15.6万 · Python · 更新于 2026-10-16
构建智能体与 LLM 应用的开发框架
★ 14.8万 · Python · 更新于 2026-10-15
100+ 开源 AI Agent、Agent Skills 与 RAG 应用合集
★ 14.2万 · Python · 更新于 2026-10-15
把代码库与文档变成可查询的知识图谱
★ 12.7万 · Python · 更新于 2026-10-14
为 AI 编程助手提供跨会话持久记忆的压缩系统
★ 10.1万 · TypeScript · 更新于 2026-10-16
开源 RAG 引擎,融合 Agent 能力为 LLM 构建上下文层
★ 9.2万 · Go · 更新于 2026-10-15