这个项目能做什么
AksharaMD是一个Python命令行工具和库,用于评估文档解析器将源文件转换为适合LLM摄入的Markdown的质量。它不宣传平均准确率,而是针对您提供的特定解析器输出生成每文档的就绪判定。
核心流程接受两个输入:原始源文档(例如PDF或DOCX)以及您的解析器从中生成的Markdown。然后返回0到100的AI就绪评分,并带有质量等级(85及以上为HIGH,70为OK,50为RISKY,低于50为POOR)、每块提取置信度标签(EXTRACTED、INFERRED、AMBIGUOUS)、命名警告代码(如OCR_REQUIRED、LOW_TEXT_DENSITY、GLYPH_ARTIFACTS、REPEATED_CONTENT、W_MULTICOLUMN_ORDER、W_TABLE_MISSING、W_ENCODING_ARTIFACTS和OCR_HALLUCINATION),以及一个可选的基于源文件的评估门控,用于检查声明的字面量(日期、ID、货币金额、命名实体)是否保留在Markdown中,从而得出ACCEPT或REJECT判定。
该项目明确与解析器无关,并列出MarkItDown、Docling、marker、MinerU、LlamaParse和PyMuPDF4LLM作为可评级的解析器,以及任何输出Markdown的内部解析器。对于没有首选解析器的团队,还包含一个捆绑的参考解析器,可通过compile子命令访问;README强调该参考解析器是回退便利功能,而非产品本身。
README对其局限性异常坦诚。它指出就绪度是未校准的启发式指标,而非正确概率,高分仅意味着应用了少量建模惩罚。它明确否认对检索准确性、最终答案正确性、引用正确性、针对给定嵌入模型的最优分块以及嵌入稀释的保证。历史基准数据(输出令牌比较、噪声减少、与MarkItDown和Docling的吞吐量对比)归因于版本0.3.3的捆绑参考解析器,而非就绪评分,且README指出这些数据不会自动迁移到后续版本。
处理在本地运行。基础安装对本地文件不进行网络调用;网络访问仅发生在远程源(如HTTP/HTTPS URL或S3)或可选ML后端首次使用时下载模型权重。文档不会发送到AksharaMD运营的服务。
通过pip安装,要求Python 3.11或更高版本。基础安装覆盖原生PDF、DOCX、XLSX、PPTX、HTML、EPUB、电子邮件、归档、图像和代码,涵盖40多种文档类别和118种注册扩展名。可选附加功能添加OCR(Tesseract)、基于视觉的表格重建(Marker)、数学提取(pix2tex)、音频转录(Whisper)和S3输入。完整安装包含所有内容,首次运行需约5-6 GB模型权重。没有相关附加功能时,扫描页面会发出OCR_REQUIRED警告和低就绪评分,而非静默生成劣质输出。
CLI包含compile、assess、validate、benchmark、stats、show-manifest、corpus、mcp-config和formats子命令。assess命令是主要评分流程;compile端到端运行捆绑解析器并写入document.md、document.json、manifest.json、validation.json和分块文件。--min-readiness-score选项允许用作CI/CD摄入门控,--json生成机器可读输出。corpus命令将目录编译为令牌预算受限的分块,并带有近似重复检测。
Python API公开Compiler类,包含compile_to_string、compile、compile_to_multimodal(返回Anthropic兼容的内容数组,含内联base64图像)以及stream方法,可增量生成块以馈送RAG索引或向量存储。编译上下文对象公开清单字段,如令牌计数、令牌减少百分比、就绪评分、耗时、表格和分块计数,以及验证错误和警告。
包含一个MCP服务器,用于Claude Desktop和Cursor等MCP兼容主机,通过mcp-config子命令配置。项目采用PolyForm Noncommercial许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。