from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False) # True 則開啟外掛
result = md.convert("test.xlsx")
print(result.text_content)
result.markdown — 原始 Markdown 字串result.text_content — 與 markdown 同義的別名(歷史命名)result.title — 文件標題(部分 converter 會填,如 EPUB)| 方法 | 輸入 | 何時用 |
|---|---|---|
convert() | str 路徑/URL、Path、requests.Response、BinaryIO | 最通用,自動分派到下面四個 |
convert_local() | 本機檔案路徑 | 只處理本機檔案(最窄、最安全) |
convert_stream() | BinaryIO(bytes 流) | 你已 open 一個 stream,且不需要本地路徑 |
convert_uri() | file: / data: / http: / https: URI | 從 URI 讀取(含網址);convert_url() 是它的別名 |
convert_response() | requests.Response | 你自己控制 HTTP 請求(proxy、驗證、快取…),再把 response 交給它 |
convert_local();需要控制抓取就自己 requests.get() 再 convert_response()。詳見安全模型。當來源缺少副檔名/MIME 線索(例如裸 stream),可以手動提供 stream_info 提示:
from markitdown import StreamInfo
md = MarkItDown()
result = md.convert_stream(
my_bytes_io,
stream_info=StreamInfo(extension=".docx", mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
)
CLI 的 -x / -m / -c 旗標背後就是建一個 StreamInfo。
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(
llm_client=client,
llm_model="gpt-4o",
llm_prompt="optional custom prompt", # 預設 "Write a detailed caption for this image."
)
result = md.convert("example.jpg")
print(result.text_content)
任何 OpenAI 相容 client 都行(OpenAI、AzureOpenAI、本地 OpenAI-compatible server)。
md = MarkItDown(enable_plugins=True, llm_client=OpenAI(), llm_model="gpt-4o")
result = md.convert("document_with_images.pdf")
# Document Intelligence
md = MarkItDown(docintel_endpoint="<endpoint>")
result = md.convert("test.pdf")
# Content Understanding(零設定自動依檔案類型選 analyzer)
md = MarkItDown(cu_endpoint="<endpoint>")
result = md.convert("report.pdf") # 文件 → prebuilt-documentSearch
result = md.convert("meeting.mp4") # 影片 → prebuilt-videoSearch
print(result.markdown) # 含 YAML front matter