
PageIndex:向量无关推理型RAG如何改变检索范式副标题: 从「找什么」到「去哪找」,让LLM自主导航文档结构痛点:为什么传统RAG总是「找不准」?当前RAG系统面临一个核心问题:向量相似度 ≠ 语义相关性。问题表现影响向量匹配局限语义相似但意图不同检索结果不准确分块策略模糊分块大小无标准效果依赖经验调参检索黑盒无法解释为何选这段用户不信任一个真实案例:某团队构建的金融问答系统,使用传统RAG,FinanceBench准确率达到65%——用户问「增长了多少」,系统返回了「增长趋势」的段落,但没有具体数字。一、PageIndex:31k+ Star的RAG革命1.1 项目概况指标数据Star数31,000+FinanceBench准确率98.7%定位向量无关的推理型RAG1.2 核心转变传统RAG:用户提问 → 向量检索 → 返回相似段落 → LLM生成答案PageIndex:用户提问 → LLM分析问题制定检索策略 → 在文档目录树中定位 → LLM推理出答案核心转变:把「找什么」「去哪找」的权力从向量模型交给LLM本身。二、传统RAG的三大痛点2.1 痛点1:向量相似度 ≠ 语义相关性用户问题向量检索结果问题「增长了多少」「增长趋势分析」语义相似但缺少数字「对比A和B」「A的描述」「B的描述」没有对比分析「为什么」「原因分析」缺少具体原因根本原因:Embedding模型只捕捉语义相似性,不捕捉推理意图。2.2 痛点2:分块策略无标准分块大小优点缺点小(100-200 tokens)精确匹配上下文不完整中(500-1000 tokens)上下文完整噪声增多大(2000+ tokens)信息丰富检索效率低问题:没有统一标准,靠经验调参。2.3 痛点3:检索是黑盒问题表现无法解释用户不知道为何选这段难以调试效果不好不知道哪里出问题信任缺失用户不信任系统返回的结果三、PageIndex的核心设计3.1 目录树导航PageIndex的核心创新是目录树导航:用户提问 → LLM分析问题 → 制定检索策略 → 在目录树中定位 → 提取内容 → 推理答案3.2 工作流程# PageIndex核心工作流程classPageIndexRAG:""" 向量无关的推理型RAG 核心设计: - 不依赖向量数据库 - 利用文档原生结构(目录树) - LLM自主决定检索策略 """def__init__(self,document_tree:dict):self.tree=document_tree# 文档目录树self.llm=LLMClient()defretrieve(self,query:str)-list:"""检索相关内容"""# 1. LLM分析问题,制定检索策略strategy=self.llm.analyze(query)# 2. 在目录树中定位相关节点nodes=self._navigate_tree(strategy)# 3. 提取节点内容contents=[self._extract(node)fornodeinnodes]returncontentsdef_navigate_tree(self,strategy:dict)-list:"""在目录树中导航"""# LLM根据策略决定搜索路径path=self.llm.decide_path(strategy,self.tree)# 沿路径收集节点nodes=[]for