ml-markitdown

  1. 背景
  2. markitdown
    1. Azure + markitdown

背景

需要做一个内部的合同文档审核【图片型pdf】,输入给大模型来识别检测提取相关的字段

我测试发现 markdown格式的文本对大模型更友好比传统的ocr识别结果更好

markitdown

项目地址: microsoft/markitdown: Python tool for converting files and office documents to Markdown.

Azure + markitdown

配合Azure上的OCR服务来实现对图片型文档的markdown化

想要调用azure的服务要先注册并登录相关的应用

Azure 上的 Document Analysis

image-20250815113242280

pip install 'markitdown[all]'

需要注意的是:

我是在自己的本地windows环境中使用这个,即使用 az login 来获取权限认证的

如果在 CI/CD 或者 Linux 机器下,或者 docker 环境中需要通过Azure鉴权

az login
  • 使用az login 登录后的
from markitdown import MarkItDown
import time
# Azure的docs_ocr的ENDPOINT
DOCS_OCR_ENDPOINT=""

start_time = time.time()

# 初始化 Document Intelligence 客户端
md = MarkItDown(docintel_endpoint=DOCS_OCR_ENDPOINT)

# 转换 PDF(或其他文档)并获取结果
result = md.convert("test/1.pdf")  # 确保这里是带扩展名的文件路径

with open("1.md", "w", encoding="utf-8") as f:
    f.write(result.text_content)

print("已成功将内容输出到 1.md")

end = time.time()
print("total time:", end - start_time, "seconds")
  • 手动鉴权的方式

CLI命令模式

markitdown path-to-file.pdf > document.md

后续更新了LLM来描述图片,也是非常带劲,如果需要将文档markdown操作

github