多格式文档解析
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