问题域/PD-318

多格式文档解析

Multi-Format Document Parsing

支持 15+ 种文档格式的统一解析框架,含 AST 级代码理解和自定义解析器扩展

子问题

1.文件类型自动检测与路由

2.代码 AST 提取与骨架生成

3.自定义解析器注册机制

4.多媒体内容理解

5.解析结果的三阶段生命周期管理(临时→语义增强→持久化)

6.PDF 双策略转换(本地 pdfplumber vs 远程 MinerU API)

各项目的解法1 solutions

Signals

横向对比

维度OpenViking
解析器架构ParserRegistry 单例 + BaseParser ABC + 扩展名路由,15 内置解析器
扩展机制双模式:Protocol-based register_custom + Callback-based register_callback
代码理解tree-sitter 7 语言 AST 提取 + CodeSkeleton 双模式输出(embedding/LLM)
降级策略三层降级:AST→LLM、local→MinerU、utf-8→latin-1→cp1252
输出结构ResourceNode 树(ROOT/SECTION 简化)+ 三阶段生命周期
多媒体支持Image/Audio/Video 独立解析器 + content_type 字段 + VikingFS 存储

最佳实践

1.Registry 单例管理解析器生命周期

2.tree-sitter 实现语言无关的代码解析

3.双模式自定义扩展:Protocol 适合复杂解析器,Callback 适合简单函数

4.AST 提取器懒加载 + 失败缓存 None 避免重复尝试

5.CodeSkeleton verbose 双模式:embedding 用首行 docstring,LLM 用完整 docstring