前言
microsoft markitdown 学习笔记。
用于将文件和办公文档转换为Markdown的Python工具。
Operating System: Ubuntu 22.04.4 LTS
参考文档
介绍
MarkItDown是一个轻量级的Python实用程序,用于将各种文件转换为Markdown,以便与LLM和相关的文本分析管道一起使用。为此,它与textract最具可比性,但侧重于将重要的文档结构和内容保留为Markdown(包括:标题、列表、表格、链接等)。虽然输出通常相当漂亮且人性化,但它旨在被文本分析工具使用——并且可能不是供人类使用的高保真文档转换的最佳选择。
目前,MarkItDown支持:
- PowerPoint (reading in top-to-bottom, left-to-right order)
- Word
- Excel
- Images (EXIF metadata and OCR)
- Audio (EXIF metadata and speech transcription)
- HTML
- Text-based formats (CSV, JSON, XML)
- ZIP files (iterates over contents)
- Youtube URLs
- … and more!
为什么Markdown?
Markdown非常接近纯文本,具有最少的标记或格式,但仍然提供了一种表示重要文档结构的方法。主流LLM,如OpenAI的GPT-4o,本身就“说话”Markdown,并且经常在没有提示的情况下将Markdown合并到他们的响应中。这表明他们已经接受了大量Markdown格式文本的训练,并且很好地理解了它。作为一个附带的好处,Markdown约定也具有很高的令牌效率。
安装
要安装MarkItDown,请使用pip:pip install ‘markitdown[all]~=0.1.0a1’。或者,你也可以从源代码安装:
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip install -e packages/markitdown[all]
使用
命令行
markitdown path-to-file.pdf > document.md
或者使用-o指定输出文件:
markitdown path-to-file.pdf -o document.md
您还可以通过管道传输内容:
cat path-to-file.pdf | markitdown
可选依赖项
MarkItDown具有用于激活各种文件格式的可选依赖项。在本文档的前面部分,我们使用[all]选项安装了所有可选依赖项。但是,您也可以单独安装它们以获得更多控制。例如:
pip install markitdown[pdf, docx, pptx]
将仅安装PDF、DOCX和PPTX文件的依赖项。
目前,以下可选依赖项可用:
- [all] 安装所有可选依赖项
- [pptx] 安装PowerPoint文件的依赖项
- [docx] 安装Word文件的依赖项
- [xlsx] 安装Excel文件的依赖项
- [xls] 安装旧版Excel文件的依赖项
- [pdf] 安装PDF文件的依赖项
- [outlook] 安装Outlook邮件的依赖项
- [az-doc-intel] 安装Azure文档智能的依赖项
- [audio-transcription] 安装wav和mp3文件音频转录的依赖项
- [youtube-transcription] 安装获取YouTube视频转录的依赖项
插件
MarkItDown还支持第3方插件。默认情况下禁用插件。要列出已安装的插件:
markitdown --list-plugins
要启用插件,请使用:
markitdown --use-plugins path-to-file.pdf
要查找可用的插件,请在GitHub上搜索标签#markitdown-plugin
。要开发一个插件,请参阅packages/markitdown-sample-plugin
。
Azure文档智能
要使用Microsoft Document Intelligence进行转换:
markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"
关于如何设置Azure文档智能资源的更多信息,可以在这里找到。
Python API
Python中的基本用法:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False) # Set to True to enable plugins
result = md.convert("test.xlsx")
print(result.text_content)
Python中的文档智能转换:
from markitdown import MarkItDown
md = MarkItDown(docintel_endpoint="<document_intelligence_endpoint>")
result = md.convert("test.pdf")
print(result.text_content)
要使用大型语言模型进行图像描述,请提供llm_client和llm_model:
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)
Docker
docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md
结语
第三百零三篇博文写完,开心!!!!
今天,也是充满希望的一天。