SuperAPI AI 工具集

pdf-asset-extractor

办公与效率

查看项目

更新于 10-16 11:17

技能介绍

用途

PDF Asset Extractor 是一组 MCP 工具,目标是把 PDF 文件分解为可查询的资产(图片、表格、章节),并建立跨文献知识图谱。适用于解析论文、分析文档结构、提取图表,以及跨文献比较与 RAG 查询等任务。

主要能力

  • PDF 导入:双引擎自动提取图片、表格、文字。PyMuPDF 为默认引擎,快速轻量(约 50MB);Marker 为高精度引擎,提供精确 bbox 与 section hierarchy(约 1GB,较慢)。
  • 图片提取:以 base64 返回,支持 Vision AI 分析。
  • 表格提取:转换为 Markdown 格式。
  • 章节导航:动态层级 Section Tree,支持任意深度(需 Marker 产出的 blocks.json)。
  • 知识图谱:跨文献关系查询(LightRAG)。
  • 图谱可视化:导出 Mermaid 图表。

使用方式

文件处理工具

  • ingest_documents:导入 PDF(ETL 流程),参数 file_paths: list[str], async_mode: bool, use_marker: bool。
  • parse_pdf_structure:Marker 结构化解析(单档),参数 file_path: str。
  • get_job_status:查询 ETL 进度,参数 job_id: str。
  • list_jobs:列出所有工作,参数 active_only: bool。
  • cancel_job:取消 ETL 工作,参数 job_id: str。

资产查询工具

  • list_documents:列出所有已处理文件。
  • inspect_document_manifest:查看文件结构(图/表/章节清单),参数 doc_id: str。
  • fetch_document_asset:取得特定资产,参数 doc_id, asset_type, asset_id。

章节导航(需 Marker blocks.json)

  • list_section_tree:显示完整 section hierarchy 树状结构,参数 doc_id: str。
  • get_section_detail:取得特定 section 的详细信息,参数 doc_id: str, section_path: str。
  • get_section_blocks:提取特定 section 的所有 blocks,参数 doc_id: str, section_path: str。
  • search_sections:搜索 section 名称,参数 doc_id: str, query: str。

区块搜索(Marker blocks)

  • search_source_location:在 blocks.json 中搜索特定内容,参数 doc_id: str, query: str, block_types: list。

知识图谱

  • consult_knowledge_graph:跨文献 RAG 查询,参数 query: str, mode: str。查询模式包括 local(细节查询)、global(全局模式)、hybrid(混合模式,推荐)。
  • export_knowledge_graph:导出图谱(JSON/Mermaid),参数 format: str, limit: int。format 可选 summary(统计 + 样本节点,建议 limit 50)、mermaid(建议 limit 20-30)、json(完整节点/边,建议 limit 100+)。

MCP Resources(动态更新)

Resources 会自动更新,可直接浏览文件大纲:

  • documents://list:所有已处理文件列表
  • document://{doc_id}/outline:文件完整大纲(推荐起点)
  • document://{doc_id}/manifest:完整 manifest JSON
  • document://{doc_id}/figures:图片清单(ID、页码、尺寸)
  • document://{doc_id}/tables:表格清单
  • document://{doc_id}/sections:章节层级结构
  • knowledge-graph://summary:知识图谱统计概览

标准操作流程

  1. PDF 导入(ETL):取得 PDF 绝对路径 → 呼叫 ingest_documents(默认 async_mode=True)→ 使用 get_job_status 追踪进度 → 完成后提供 doc_id。
  2. 查看文件结构:呼叫 list_documents 找到 doc_id → 呼叫 inspect_document_manifest → 列出所有 figures/tables/sections。
  3. 取得特定资产:fetch_document_asset(asset_type="figure"|"table"|"section"|"full_text")。
  4. 知识图谱查询:确认文件已 ingest 且已建立索引 → 选择查询模式 → 呼叫 consult_knowledge_graph。
  5. 知识图谱可视化:选择输出格式 → 呼叫 export_knowledge_graph → Mermaid 格式可直接渲染。

触发条件

  • 「ingest PDF」、「汇入 PDF」、「解析文件」、「分析论文」
  • 「看 manifest」、「文件结构」、「有什么图表」
  • 「取得图片」、「fetch figure」、「拿表格」、「extract」
  • 「知识图谱」、「cross-document」、「比较文献」、「RAG」
  • 「视觉化图谱」、「export graph」、「mermaid」
  • 「章节」、「section」、「导航」、「树状结构」

适用场景

  • 情境 A:分析新 PDF 论文。
  • 情境 B:提取图表。
  • 情境 C:跨文献比较。
  • 情境 D:探索知识图谱。

限制与注意事项

  • 图片 Context 限制:Base64 图片非常大,一次只处理一张。一张图片约 200KB base64,约 270K tokens。建议流程为先 inspect_document_manifest,选定目标图,一次 fetch 一张。
  • 视觉能力提醒:如果 AI 具备 Vision 能力,可直接分析返回的图片;如果是纯文字 AI,应诚实告知无法分析图片内容。
  • 图片 ID 命名规则:系统以 fig_{page}_{index} 命名,非解析图说文字,需手动对照 manifest 页码与实际 Figure 编号。
  • Marker 引擎产出额外数据 blocks.json(结构化区块,含 bbox、polygon、section_hierarchy),支持 Section Navigation 动态层级导航。

Context 预算参考

  • Section(1页):约 500-1000 tokens,建议优先使用
  • Table:约 200-500 tokens,低成本
  • Figure(base64):约 200K-500K tokens,一次一张
  • Full text(10页):约 10K-20K tokens,视需要
  • Knowledge Graph(summary):约 500 tokens,快速概览
  • Knowledge Graph(mermaid):约 1K-3K tokens,可视化

输出格式

操作后应回报:文件信息(doc_id、标题、页数)、可用资产(Figures、Tables、Sections 的数量与范例 ID)、知识图谱(节点数、关系数)。