体验下微软开源的Markdown转换工具Markitdown
这个工具的来源是看到了大神的个人知识库的文章,比之以前可能都是以rag的形式,现在是通过直接让大模型学习提取原始知识文档,来给自己做个人知识库的索引和整理,那么有一个前提是大模型更擅长的文档格式是纯文本的,或者说就是以Markdown的形式,因为既有段落格式,又是相对纯文本的,便于输入大模型.
那很多情况我们就需要把我们现有的文档转换成Markdown形式,便于大模型去分析理解
刚好想起来前阵子微软开源了这么个工具,
仓库在这里
我们就来简单的使用体验下1
2
3git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip3 install -e 'packages/markitdown[all]'
我们不去具体阅读代码,就是来使用体验下
可以直接把仓库Clone下来,然后安装就可以了
简单的使用说明是1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26usage: SYNTAX:
markitdown <OPTIONAL: FILENAME>
If FILENAME is empty, markitdown reads from stdin.
EXAMPLE:
markitdown example.pdf
OR
cat example.pdf | markitdown
OR
markitdown < example.pdf
OR to save to a file use
markitdown example.pdf -o example.md
OR
markitdown example.pdf > example.md
Convert various file formats to markdown.
我们可以用最贱的方式1
markitdown path-to-file.pdf > document.md
我在网上找了个transformer的论文中文版pdf
来转换成markdown试一下
发现其实这个转换还是限制挺大的,并没有非常全能
比如pdf中是文本的表格
也会错乱的比较多
| 模型 | BLEU | 训练成本(FLOPs) | |
|---|---|---|---|
| cmidrule | |||
| EN-DE EN-FR | EN-DE | EN-FR | |
| ———— | ———– | —– | —– |
| ByteNet [18] | 23.75 | ||
| 1.0 ⋅ 1020 | |||
| Deep-Att + PosUnk [39] | 39.2 | ||
| ——————————- | ———– | ———- | ———- |
| GNMT + RL [38] | 24.6 39.92 | 2.3 ⋅ 1019 | 1.4 ⋅ 1020 |
| 9.6 ⋅ 1018 | 1.5 ⋅ 1020 | ||
| ConvS2S [9] | 25.16 40.46 | ||
| MoE [32] | 26.03 40.56 | 2.0 ⋅ 1019 | 1.2 ⋅ 1020 |
| Deep-Att + PosUnk Ensemble [39] | 40.4 | 8.0 ⋅ 1020 | |
| 1.8 ⋅ 1020 | 1.1 ⋅ 1021 | ||
| GNMT + RL Ensemble [38] | 26.30 41.16 | ||
| ConvS2S Ensemble [9] | 26.36 41.29 | 7.7 ⋅ 1019 | 1.2 ⋅ 1021 |
| 第6张的表就变成了这样子,可能还是主体的文本稍微好一点 | |||
| 但是论文相对来说结构也不是那么已读也是个原因 | |||
| 另外如果是非文本型的可能还是需要结合外部的ocr和大模型来辅助提取内容 | |||
| 可以用markitdown的插件系统 | |||
| markitdown-ocr Plugin | |||
| The markitdown-ocr plugin adds OCR support to PDF, DOCX, PPTX, and XLSX converters, extracting text from embedded images using LLM Vision — the same llm_client / llm_model pattern that MarkItDown already uses for image descriptions. No new ML libraries or binary dependencies required. |
1 | pip install markitdown-ocr |
然后通过代码设置1
2
3
4
5
6
7
8
9
10from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(
enable_plugins=True,
llm_client=OpenAI(),
llm_model="gpt-4o",
)
result = md.convert("document_with_images.pdf")
print(result.text_content)
这样就能把包含图片的信息也进行转换,迫于没有外国信用卡,我就没法演示了
