微信扫码
添加专属顾问
我要投稿
Markitdown 除了支持转换微软自家的 Office 文件格式,其他常见的 PDF、HTML 格式都可以处理,甚至还能够处理 Audio 文件,自动转译为文本。图像类的文件,可以配置大模型自动生成描述文本。
介绍完毕,开始测试
安装很简单,执行如下命令即可。
pip install markitdown
使用起来也很简单,使用命令或者 API。
markitdown path-to-file.pdf > document.md
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("exmaple.pdf")
print(result.text_content)
我最关注的还是 PDF 文本的转换,之前的测评文章有讨论过 PDF 解析主要是表格和布局的问题,文本提取基本问题不大。那么 markitdown 的表格提取表现如何?我们尝试转换 LightRAG 的论文。
markitdown lightrag.pdf > lightrag.md
LightRAG 里有一个复杂表格,这里就不演示了,使用最简单的表格。
可以说完全丢弃 Style,连表格的样式都没有,最重要的是文字的顺序也没有排对。为什么这么差?这和 markitdown 的实现有关,让我们扒一扒咋实现的
markitdown 的代码非常少,核心代码就两个文件:入口文件__main__.py
和具体实现__markitdown.py
。 入口代码很简单,就是接收文件然后调用 convert。
parser.add_argument("filename", nargs="?") args = parser.parse_args() if args.filename is None: markitdown = MarkItDown() result = markitdown.convert_stream(sys.stdin.buffer) print(result.text_content) else: markitdown = MarkItDown() result = markitdown.convert(args.filename) print(result.text_content)
markitdown 会根据文件的扩展名自动选择转换工具,让我们重点看一下 PDF 的转换器。
class PdfConverter(DocumentConverter):
"""
Converts PDFs to Markdown. Most style information is ignored, so the results are essentially plain-text.
"""
def convert(self, local_path, **kwargs) -> Union[None, DocumentConverterResult]:
# Bail if not a PDF
extension = kwargs.get("file_extension", "")
if extension.lower() != ".pdf":
return None
return DocumentConverterResult(
title=None,
text_content=pdfminer.high_level.extract_text(local_path),
)
是的,你没看错,它其实只是调用 pdfminer 来提取。所以这个工具的目的是集成开源工具包,统一 Markdown 文件转换。从两个文件的实现就知道了。所以对于 Markitdown 不要抱有它解析某某文件是不是更厉害?它只是一个 Wrapper 而不是 Parser。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-07-02
别再只盯着分数线!手把手教你用AI挖掘最适合你的大学和专业(附提问模板)
2025-07-01
悟空Agent实战:LLaMA-Factory高危0day漏洞挖掘与修复
2025-07-01
Google 开源全球首个实时音乐大模型
2025-06-30
重磅!百度文心一言4.5开源,包含2个多模态大模型,4个大语言模型,最大参数量4240亿!完全免费商用授权!
2025-06-28
卷疯了!这个清华系Agent框架开源后迅速斩获1.9k stars,还要“消灭”Prompt?
2025-06-28
刚刚,马斯克宣布:Grok 4 将于7月4日后发布!
2025-06-27
Local MCP时代来临:一键集成AI的Desktop Extensions(.dxt)深度解析
2025-06-27
PaddleOCR 3.0重磅发布!OCR精度跃升13%,多场景文档解析全面升级
2025-06-17
2025-06-17
2025-04-13
2025-04-29
2025-04-12
2025-04-10
2025-04-29
2025-04-29
2025-04-15
2025-05-29
2025-06-28
2025-06-25
2025-06-25
2025-06-21
2025-06-16
2025-06-15
2025-06-14
2025-06-10