SuperAPI AI 工具集

document-extractor

办公与效率

查看项目

更新于 10-16 09:25

技能介绍

用途

DocumentExtractor 使用 markitdown 将受支持的输入转换为 Markdown,使内容更易于检查、搜索,并接入 LLM 工作流。

主要能力

  • 将 PDF、Office 文档(如 docx、pptx、xlsx)、图片、音频、视频等受支持的输入转换为 Markdown。
  • 支持将转换结果打印到标准输出,或写入指定文件。
  • 支持管道输入二进制内容,并通过扩展名、MIME 或字符集提示辅助识别。
  • 支持保留内联 data: URI,而不是将其截断。
  • 支持通过 Azure Document Intelligence 进行提取。
  • 支持列出并使用第三方插件。
  • 提供 Python API,可在脚本中调用。

使用方式

检查与安装

检查 CLI 是否已存在:

Get-Command markitdown -ErrorAction SilentlyContinue
markitdown --version

优先使用 uv 安装:

uv tool install markitdown
uv tool install 'markitdown[pdf,docx,pptx]'
uv tool install 'markitdown[all]'

如果 uv 不可用,回退到 pipx:

pipx install markitdown
pipx install 'markitdown[pdf,docx,pptx]'
pipx install 'markitdown[all]'

如果安装时未包含所需的功能组,请按实际需要的更窄或更广的 extras 集合重新安装。

当用户只需要部分格式时,在安装 extras 前先阅读 references/feature-groups.md。

使用 CLI

转换文件并将 Markdown 打印到标准输出:

markitdown .\report.pdf

写入文件:

markitdown .\report.pdf -o .\report.md

管道输入二进制内容,并给 MarkItDown 一个扩展名提示:

Get-Content .\report.pdf -AsByteStream | markitdown -x .pdf -o .\report.md

当输入来源不明确时,使用 MIME 或字符集提示:

markitdown -x .html -m text/html .\page.bin
markitdown -x .csv -c utf-8 .\data.txt

保留内联 data: URI,而不是将其截断:

markitdown --keep-data-uris .\page.html -o .\page.md

谨慎选择 Extras

  • 对于轻量级类文本输入和通用转换,安装基础版 markitdown。
  • 当用户只需要特定格式时,安装针对性的 extras。
  • 仅当广泛覆盖比依赖体积更重要时,才安装 [all]。
  • 使用 Azure Document Intelligence 时,用 az-doc-intel 重新安装。
  • 仅在转录工作流中使用 audio-transcription 或 youtube-transcription 重新安装。

当前 extras 列表和格式映射位于 references/feature-groups.md。

常见工作流

转换 Office 或 PDF 文档:

markitdown .\slides.pptx -o .\slides.md
markitdown .\notes.docx -o .\notes.md
markitdown .\table.xlsx -o .\table.md
markitdown .\scan.pdf -o .\scan.md

在安装相关支持后,转换 YouTube URL 或归档:

markitdown "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -o .\video.md
markitdown .\bundle.zip -o .\bundle.md

使用 Azure Document Intelligence 进行提取:

markitdown .\scan.pdf -d -e "https://<resource>.cognitiveservices.azure.com/" -o .\scan.md

列出已安装的第三方插件:

markitdown --list-plugins
markitdown --use-plugins .\input.pdf -o .\input.md

使用 Python API

当用户需要在脚本中使用 MarkItDown 而不是作为独立命令时,使用 Python API:

from markitdown import MarkItDown

md = MarkItDown(enable_plugins=False)
result = md.convert("report.pdf")
print(result.markdown)

为 Document Intelligence 使用已配置的端点:

from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="https://<resource>.cognitiveservices.azure.com/")
result = md.convert("scan.pdf")
print(result.markdown)

快速排查

  • 如果缺少 markitdown,使用 uv tool install ... 或 pipx install ... 安装。
  • 如果格式不受支持,先检查是否安装了正确的 extra。
  • 如果 stdin 转换结果看起来不对,添加 -x、-m 或 -c 提示。
  • 如果 -d 失败,验证端点并确认已安装 az-doc-intel 支持。
  • 如果预期有插件行为,运行 markitdown --list-plugins,然后添加 --use-plugins。
  • 如果输出细节不清楚,运行 markitdown --help,然后查看上游文档。

最后手段

当本地行为不清楚或包发生变化时,使用以下来源:

  • CLI 帮助:markitdown --help
  • 主文档:https://github.com/microsoft/markitdown/tree/main
  • README:https://raw.githubusercontent.com/microsoft/markitdown/main/README.md

适用场景

  • 需要将 PDF、Office 文档、图片、音频、视频等受支持输入转换为 Markdown 以便检查、搜索或接入 LLM 工作流。
  • 需要在命令行中批量或单次转换文档。
  • 需要在 Python 脚本中集成文档转换能力。
  • 需要使用 Azure Document Intelligence 进行提取。
  • 需要处理 YouTube URL 或归档文件(在安装相关支持后)。

限制

  • 仅支持 markitdown 所支持的输入格式;具体格式映射见 references/feature-groups.md。
  • 部分格式需要安装对应的 extras 才能使用。
  • 使用 Azure Document Intelligence 需要安装 az-doc-intel 支持并配置有效端点。
  • 音频转录和 YouTube 转录需要安装 audio-transcription 或 youtube-transcription 支持。
  • 插件功能需要先列出并显式启用。
  • 关于收费、价格、平台、效果等更多信息,资料中暂未提供。