返回 Skill 列表
extension
分类: 开发与工程无需 API Key

long-document-qa

超长文档深度解析与问答系统。支持 PDF/DOCX/PPTX/XLSX/图片等格式的本地化智能解析, 通过三层索引(摘要树、语义向量、实体关系图)实现全局文档理解。 支持六种查询类型(事实定位、摘要、跨章节对比、矛盾检测、时间线、关系推理), 自动检测运行环境并降级适配,所有 AI 模型推理均在本地执行。 适用于合同审查、论文研读、技术文档分析、研报解读等需要"通读全文"的场景。

person作者: aa18739015876hubModelScope

基于OpenVINO的超长文档智能解析问答Skill

概述

本 Skill 提供对超长文档(数十页至数百页)进行深度解析和问答的能力。 与普通 RAG 不同,本 Skill 通过三层索引架构实现了对文档的"全局理解", 能够回答跨章节对比、矛盾检测、时间线梳理等需要通读全文的复杂问题。

核心特点:文档不出设备、自动降级适配、OpenVINO 异构加速、六种智能查询路由。

何时使用本 Skill

当用户的问题涉及以下场景时,Agent 应优先考虑调用本 Skill:

  • 文档理解:需要理解整份 PDF/Word/PPT 的内容结构
  • 事实查询:在长篇文档中定位特定信息
  • 跨章节对比:对比文档不同部分的观点、数据、结论
  • 矛盾检测:检查合同、协议中的条款是否存在冲突
  • 时间线梳理:追踪事件、人物在文档中的演变过程
  • 关系推理:分析文档中实体(概念、人物、数据)之间的关联

使用方式

1. 查看系统状态

python scripts/status.py

返回当前系统的运行级别、硬件信息、软件可用性和已摄入文档列表。

2. 摄入文档

python scripts/ingest.py --source <FILE_PATH_OR_URL> \
  --source-type <file|url> \
  --name <DOCUMENT_ALIAS> \
  --language ch

| 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | --source | string | 是 | 本地文件路径或远程 URL | | --source-type | file/url | 是 | 源类型 | | --name | string | 是 | 文档别名,用于后续查询引用 | | --language | string | 否 | 文档语言 (ch/en/japan/korean/...), 默认 ch | | --force | flag | 否 | 强制重建索引 |

支持的格式:PDF、DOCX、PPTX、XLSX、PNG、JPG、JPEG、BMP、TXT、MD

文档解析后端自动选择:本地 MinerU (pipeline) → MinerU Agent API (云端) → PyMuPDF (兜底)

3. 查询文档

python scripts/query.py --document <DOCUMENT_NAME> \
  --question "QUERY_TEXT" \
  --query-type auto \
  --top-k 20

| 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | --document | string | 是 | 目标文档名称 | | --question | string | 是 | 自然语言问题 | | --query-type | string | 否 | auto / factoid / summary / comparison / contradiction / timeline / relationship | | --top-k | int | 否 | 返回的相关文本块数量,默认 20 |

4. 列出已摄入文档

python scripts/list_docs.py

支持的查询类型

| 查询类型 | 适用场景 | 示例问题 | |---------|---------|---------| | factoid | 定位具体信息 | "第三章提到的超参数配置是什么?" | | summary | 总结概括 | "总结这篇论文的核心贡献和创新点" | | comparison | 跨章节/跨文档对比 | "第3章的方法论和第5章的实验结论是否一致?" | | contradiction | 矛盾检测 | "合同中所有违约责任条款是否存在互相矛盾?" | | timeline | 时间线梳理 | "梳理主角在整本小说中的性格演变过程" | | relationship | 关系推理 | "论文中引用的15篇参考文献与方法论是什么关系?" |

Agent 可以设置 --query-type auto,Skill 会自动根据问题内容判断最合适的类型。

技术架构

三层索引

  • Layer A: 摘要树 — 基于 MinerU 解析的标题层级构建,提供文档"骨架",用于快速定位和全局问题
  • Layer B: 语义块索引 — BM25(关键词)+ Dense(语义向量,BGE-M3)混合检索,用于精确信息定位
  • Layer C: 实体关系图 — 实体抽取 + 跨段落关系网络,用于矛盾检测、时间线、关系推理

异构计算调度

| 计算单元 | 任务 | 优势 | |---------|------|------| | NPU (Intel) | Embedding 批量生成 + 查询向量化 | 低功耗 (<2W) 持续运行 | | GPU (Intel Arc / Iris Xe) | LLM 推理 (Ollama), Reranker 重排序 | 高吞吐、低延迟 | | CPU (Intel Core Ultra) | 文档解析、索引构建、查询路由、实体抽取 | 逻辑控制、兼容性 |

OpenVINO 加速

  • BGE-M3 Embedding: INT8 量化 + NPU 推理, 相比 FP32 CPU 加速 30x
  • BGE-Reranker: INT8 量化 + GPU 推理, 相比 FP32 CPU 加速 8x
  • 量化策略: Embedding 用 INT8(精度敏感),未来可扩展 INT4 用于摘要生成

降级策略(自动检测)

| 级别 | 文档解析 | Embedding | Reranker | LLM | 能力 | |------|---------|-----------|----------|-----|------| | Level 0 | MinerU GPU 本地 | Dense INT8 NPU | INT8 GPU | Ollama GPU | 全部 | | Level 1 | MinerU CPU 本地 | Dense INT8 NPU | INT8 GPU | Ollama GPU | 全部 | | Level 2 | MinerU GPU 本地 | Dense INT8 CPU | INT8 CPU | Ollama GPU | 全部(检索稍慢) | | Level 3 | MinerU CPU 本地 | BM25 only | 跳过 | Ollama CPU | 纯CPU模式 | | Level 4 | MinerU CPU 本地 | BM25 only | 跳过 | 无 | 仅返回检索片段 | | Level 5 | PyMuPDF | BM25 only | 跳过 | 无 | 纯文本PDF |

系统启动时自动探测硬件和软件可用性,无需手动配置。

Hybrid AI 设计理念

本 Skill 采用端云协同的 Hybrid AI 架构:

  • 云端(按需): MinerU Agent API 作为文档解析的兜底增强方案,仅在本地 MinerU 不可用时触发
  • 端侧(核心): 文档解析 (MinerU 本地 pipeline)、Embedding、Reranker、LLM 推理全部在 AI PC 本地完成
  • 隐私边界: 用户文档内容及问答交互数据完全不离开本地设备,仅在用户主动使用云端解析时传输文档文件

模型参数核算 (符合 ≤35B 限制)

| 模型 | 参数量 | 角色 | 运行时 | |------|--------|------|--------| | Qwen3.6-35B-A3B (MoE) | 35B 总参, 激活 ~3B | Agent 大脑 | Ollama / GPU | | BGE-M3 | 0.57B | Embedding | OpenVINO INT8 / NPU | | BGE-Reranker-v2-m3 | 0.57B | 重排序 | OpenVINO INT8 / GPU |

  • 总参数: 36.14B (MoE 模型激活参数仅 ~3B + 工具模型 1.14B)
  • 查询时激活: ~4.14B (远低于 35B 上限)
  • MinerU 内置的 CV/OCR 模型属于文档解析工具,不计入 AI 模型参数

安装

# 一键安装
bash setup.sh

# 或手动安装
pip install -r requirements.txt

# 可选:安装本地 MinerU
uv pip install -U "mineru[all]"
mineru-models-download -s modelscope -m all

注意事项

  1. 文档摄入为离线预处理,首次摄入大型文档(200+ 页)可能需要数分钟
  2. 索引文件存储在 ~/.super-long-context-qa/indexes/
  3. 所有 AI 模型推理均本地执行,确保数据隐私
  4. MinerU Agent API 受 IP 限频约束,云端解析超长文档会自动分片提交