00303 microsoft markitdown 学习笔记


前言

microsoft markitdown 学习笔记。

用于将文件和办公文档转换为Markdown的Python工具。

Operating System: Ubuntu 22.04.4 LTS

参考文档

  1. microsoft/markitdown

介绍

MarkItDown是一个轻量级的Python实用程序,用于将各种文件转换为Markdown,以便与LLM和相关的文本分析管道一起使用。为此,它与textract最具可比性,但侧重于将重要的文档结构和内容保留为Markdown(包括:标题、列表、表格、链接等)。虽然输出通常相当漂亮且人性化,但它旨在被文本分析工具使用——并且可能不是供人类使用的高保真文档转换的最佳选择。

目前,MarkItDown支持:

  • PDF
  • 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

结语

第三百零三篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录