Skip to content

智能路由

需要处理用户输入的文档知识内容,存在两种方式

  • 解析PDF内容并直接作为系统提示词(全文传递)
  • 解析PDF内容并存入向量数据库,通过检索相关片段来构建提示词

方案一(全文注入)

  • 优势:完整上下文,适合需要全局理解的任务
  • 劣势:受token限制,成本高,可能存在信息过载

方案二(向量检索)

  • 优势:处理长文档,成本可控
  • 劣势:检索质量依赖query与内容的语义匹配,无法处理结构性查询

路由思想

路由的核心是「查询意图分类」—— 通过 NLP 判断用户查询属于 “结构型”“语义型” 还是 “混合型”,再匹配对应处理流程

查询意图分类

查询类型识别特征(规则 + 大模型判断)示例
结构型查询含 “页码、章节、段落、目录” 等结构关键词;无明确语义关联需求“总结第 3 页内容”“第二章讲了什么”“提取目录中的所有小节标题”
语义型查询不含结构关键词;核心是 “内容关联”(如提问、总结、对比)“文档中关于数据安全的解决方案有哪些”“总结 AI 技术的应用场景”
混合型查询同时含结构关键词和语义需求(先定位结构,再筛选语义)“总结第三章中关于 AI 伦理的内容”“提取第 5 页中提到的 3 个核心观点”

先通过规则匹配(如检测 “第 X 页”“第 X 章”“段落” 等关键词)快速分类,规则不确定时(如模糊表述 “前面提到的 XX”),用大模型轻量判断(如给模型 prompt:“判断以下用户查询是否需要基于页码、章节等结构信息回答:{用户问题},输出:是 / 否 / 混合”)

按类型路由到对应处理流程

查询类型路由流程核心逻辑解决痛点
结构型查询结构化索引 → 提取目标文本块 → 自适应分块(如需) → 模型生成结果1. 按 “页码 / 章节” 从结构化索引中提取所有对应文本块;2. 若文本块总 token 数≤模型上限,直接传给模型;3. 若超限,按 token 拆分文本块,先生成各块小摘要,再汇总总摘要结构准确性 + 长文本 token 超限
语义型查询向量库检索(含元数据过滤) → 提取相关语义块 → 模型生成结果1. 用用户问题检索向量库,筛选 Top5-10 个相关语义块(可按 “最近章节” 等元数据过滤,提高准确性);2. 将语义块文本 + 元数据(如 “页码 3”)传给模型,生成带来源标注的答案语义相关性 + 可追溯性
混合型查询结构化索引定位范围 → 语义检索筛选 → 自适应分块(如需) → 模型生成结果1. 先按结构关键词(如 “第三章”)从结构化索引中提取该范围的所有文本块;2. 对这些文本块做语义检索(如 “AI 伦理”),筛选相关块;3. 若超限,分块汇总摘要结构定位 + 语义筛选 + token 兼容

token超限的兜底方案

无论哪种查询类型,若提取的文本块总 token 数超过模型上限(如 4096token),采用以下逻辑:

  • 按「模型 token 上限的 70%」拆分文本块(预留 30% token 给 prompt 和总结)
  • 每个文本块单独传给模型,生成「局部小摘要」(如 “第 3 页文本块 1 摘要:XXX”)
  • 收集所有局部小摘要,传给模型,生成「全局总摘要」(提示词:“以下是文档目标范围的分块摘要,请合并为一个连贯、完整的总结,不遗漏关键信息:{小摘要列表}”)

降低路由误判风险

  • 模糊意图处理:若查询意图分类不确定(如 “总结前面提到的 XX”),采用「混合路径」—— 同时从结构化索引(按 “最近章节 / 页码” 默认提取)和向量库(语义检索)各取结果,模型融合后输出
  • 结果校验:模型生成结果后,若涉及结构信息(如页码、章节),自动校验结构化索引中的文本块是否匹配,避免错误标注
  • 元数据过滤增强:向量库支持按 “页码、章节” 过滤检索(如用户问 “第 3 页的相关内容”,先过滤向量库中 “页码 = 3” 的语义块,再做语义匹配,提高准确性)

整体流程

用户上传PDF → 结构化解析 → 双轨存储(向量库+结构化索引)

用户查询 → 意图分类(结构型/语义型/混合型) → 智能路由

- 结构型:结构化索引提取 → 自适应分块 → 模型总结
- 语义型:向量库检索 → 相关块提取 → 模型回答
- 混合型:结构定位 → 语义筛选 → 自适应分块 → 模型总结

输出结果(标注来源:页码/章节)

基本策略

分层处理

  • 小文档(<2K字):直接全文处理
  • 中文档(2K-8K字):智能路由
  • 大文档(>8K字):主要依赖向量检索+位置查询补充

用户体验优化

  • 对于长文档,且用户的对话内容无法获取到对应的知识库内容,设置系统提示词告知AI,由AI引导:
接收到您输入的长知识内容,但无法通过您的问题检索到相应的知识,您如果想让我引用文档中的知识进行对话,您可以尝试提高问题的相关度。