一個由微軟開源的 Python 工具,用于將多種文件格式轉換為 Markdown 格式

📚 Markitdown

由微軟開源的 Python 工具,用于將多種文件格式轉換為 Markdown 格式
支持:PDF、PowerPoint、Word、Excel、圖像、音頻、HTML、文本格式(CSV、JSON、XML)、ZIP 文件的轉換。
它旨在提供一個簡單且靈活的解決方案,以便在您的應用程序中輕松集成 Markdown 渲染功能。

🌟 核心功能

  • 多格式支持: 一鍵轉換 PDF/PPT/Word/Excel/圖像/音頻/HTML 等12+格式

  • 智能處理:

  • 圖像 OCR文字識別 (支持中文掃描件)

  • 音頻 語音轉文字 (支持英文優先)

  • 集成 GPT-4o 生成圖像描述

  • 開發者友好: 提供Python API及Docker部署方案

  • 🚀 特性

  • 輕量級:小巧的庫,易于集成。

  • 快速:高效的 Markdown 解析和渲染。

  • 可擴展:支持自定義插件和擴展功能。

  • 易于使用:簡單的 API,快速上手。

🔧 典型應用場景

  • 文檔歸檔: 批量轉換Office文件為Markdown
  • 知識庫構建: 整合OCR文本+語音轉錄內容
  • 自動化流程: 結合CI/CD實現文檔發布流水線

🛠? 快速安裝

# 基礎安裝 (Python 3.10+)
pip install markitdown[all]

或從源碼安裝

git clone https://github.com/microsoft/markitdown
cd markitdown
pip install -e .

🛠? 使用

📖 使用示例

命令行工具

# 轉換PDF到Markdown
markitdown input.pdf -o output.md
# 管道操作
cat input.docx | markitdown > output.md
或者使用-o指定輸出文件:
markitdown path-to-file.pdf -o document.md

可選依賴項

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 還支持第三方插件。插件默認禁用。
以下操作可列出已安裝的插件:

markitdown --list-plugins

啟用插件使用:

markitdown --use-plugins path-to-file.pdf

要查找可用的插件,請在GitHub上搜索該標簽#markitdown-plugin。

Azure 文檔智能

要使用 Microsoft 文檔智能進行轉換:

markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"

Python 應用程序編程接口

在 Python 中的基本用法:

from markitdown import MarkItDownmd = MarkItDown(enable_plugins=False) # Set to True to enable plugins
result = md.convert("test.xlsx")
print(result.text_content)

Python中的文檔智能轉換:

from markitdown import MarkItDownmd = 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 OpenAIclient = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)

📚 運行測試和檢查

導航到 MarkItDown 包:

cd packages/markitdown

安裝 hatch 在您的環境中并運行測試:

pip install hatch  # Other ways of installing hatch: https://hatch.pypa.io/dev/install/
hatch shell
hatch test

(替代方案)使用已安裝所有依賴項的Devcontainer:

Reopen the project in Devcontainer and run:
hatch test

在提交 PR 之前運行預提交檢查:pre-commit run --all-files

5、每日資源 在這里

💯 👉【我的更新匯總】

👉項目直達

關注我的CSDN博客

更多資源可以查看我的CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81920.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81920.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux的進程概念

目錄 1、馮諾依曼體系結構 2、操作系統(Operating System) 2.1 基本概念 2.2 目的 3、Linux的進程 3.1 基本概念 3.1.1 PCB 3.1.2 struct task_struct 3.1.3 進程的定義 3.2 基本操作 3.2.1 查看進程 3.2.2 初識fork 3.3 進程狀態 3.3.1 操作系統的進程狀態 3.3…

export和import的書寫方式

一、導出模塊&#xff08;export&#xff09; 1. 命名導出&#xff08;Named Exports&#xff09; // math.js export const PI 3.14159; // 導出單個常量 export function sum(a, b) { return a b; } // 導出單個函數 export class Calculator { /* ..…

HOW - 結合 AI 進行 Tailwind 樣式開發

文章目錄 情況 1&#xff1a;使用 Tailwind CSS 與手寫傳統 CSS 的開發效率對比情況 2&#xff1a;AI Tailwind 自動生成 UI 的效率如何&#xff1f;總結 在 WHAT - Tailwind 樣式方案&#xff08;不寫任何自定義樣式&#xff09; 中我們已經簡單介紹過 Tailwind。今天主要認識…

java面試每日一背 day1

1.什么是緩存穿透 緩存穿透是指查詢一個數據庫中根本不存在的數據&#xff0c;導致這個查詢請求繞過緩存直接訪問數據庫的情況。這種情況如果頻繁發生&#xff0c;會對數據庫造成不必要的壓力。 典型特征&#xff1a; &#xff08;1&#xff09;查詢的數據在數據庫和緩存中都…

ngx_http_realip_module 模塊概述

一、使用場景 日志記錄 記錄真實客戶端 IP 而非反向代理的 IP&#xff0c;有助于流量分析和安全審計。訪問控制 基于真實 IP 實現防火墻規則&#xff08;allow/deny&#xff09;或限流&#xff0c;而非誤將上游 IP 視為客戶端。GeoIP、WAF、限速等功能 模塊化的上游真實 IP 支…

實戰5:個性化數字藝術生成與銷售

盈利思路 數字藝術銷售&#xff1a; 平臺銷售&#xff1a;將生成的數字藝術作品上傳到像OpenSea、Foundation等NFT平臺進行售賣。每一件獨特的藝術品可以通過NFT技術保證其唯一性&#xff0c;吸引收藏家和投資者。 定價策略&#xff1a;根據作品的復雜度、創意性以及市場需求來…

游戲引擎學習第303天:嘗試分開對Y軸和Z軸進行排序

成為我們自己的代碼精靈α 所以現在應該可以正常使用了。不過&#xff0c;這兩周我們沒辦法繼續處理代碼里的問題&#xff0c;而之前留在代碼里的那個問題依然存在&#xff0c;沒有人神奇地幫我們修復&#xff0c;這讓人挺無奈的。其實我們都希望有個神奇的“代碼仙子”&#…

InetAddress 類詳解

InetAddress 類詳解 一、核心作用 封裝 IP 地址&#xff1a;同時支持 IPv4 和 IPv6 地址域名解析&#xff1a;將域名轉換為 IP 地址&#xff08;DNS 查詢&#xff09;地址驗證&#xff1a;檢查網絡地址的有效性無構造方法&#xff1a;通過靜態工廠方法獲取實例 二、核心方法 …

spring cloud alibaba-Geteway詳解

spring cloud alibaba-Gateway詳解 Gateway介紹 在 Spring Cloud Alibaba 生態系統中&#xff0c;Gateway 是一個非常重要的組件&#xff0c;用于構建微服務架構中的網關服務。它基于 Spring Cloud Gateway 進行擴展和優化&#xff0c;提供了更強大的功能和更好的性能。 Gat…

iOS 直播技術及優化

iOS直播技術的實現和優化涉及多個技術環節&#xff0c;需結合協議選擇、編解碼方案、播放器技術及性能調優等多方面。 一、核心技術實現 協議選擇與傳輸優化 HLS&#xff08;HTTP Live Streaming&#xff09;&#xff1a;蘋果官方推薦&#xff0c;基于HTTP分片傳輸&#xff0c…

目標檢測135個前沿算法模型匯總(附源碼)!

目標檢測是計算機視覺核心方向之一&#xff0c;也是發論文的熱門領域&#xff01; 近來不僅YOLO算法迎來了新突破&#xff0c;迭代出YOLOv12&#xff01;Mamba、大模型等新技術的發展&#xff0c;也給該領域注入了全新的力量&#xff0c;取得了諸多顯著成果。比如性能飆升82.3…

期刊采編系統安裝升級錯誤

我們以ojs系統為例&#xff1a; PHP Fatal error: Uncaught Error: Call to a member function getId() on null in /esci/data/html/classes/install/Upgrade.inc.php:1019 Stacktrace: #0 /esci/data/html/lib/pkp/classes/install/Installer.inc.php(415): Upgrade->con…

淺談無服務器WebSocket的優勢

實際上&#xff0c;一個實用的解決方案是將構建業務關鍵型實時平臺的復雜性卸載到專門的云服務中。 完全托管的無服務器 WebSocket 解決方案為事件驅動的消息傳遞提供了基礎結構;它使底層基礎設施成為一種商品。客戶端使用提供程序服務發送/接收低延遲消息&#xff0c;并專注于…

Python數據可視化高級實戰之二——熱力圖繪制探究

目錄 一、熱力圖的作用 二、熱力圖反映的信息類型 三、熱力圖的典型應用場景 1. 地球信息系統 (GIS) 2. 城市交通分析 3. 市場分析 4. 用戶行為分析 5. 網絡流量分析 6. 傳染病傳播分析 7. 社交媒體輿情分析 四、Python 繪制熱力圖的關鍵技術要點 1. 數據預處理 2. 顏色選擇與漸…

配電網運行狀態綜合評估方法研究

1評估指標體系的構建 [1]冷華,童瑩,李欣然,等.配電網運行狀態綜合評估方法研究[J].電力系統保護與控制,2017,45(01):53-59. 1.1評估范圍 圖1為配電系統組成示意圖&#xff0c;其中A、B、C分別表示高、中、低壓配電系統。高壓配變(也稱主變)將35kV或110kV的電壓降到10kV&#…

Docker安裝MinIO對象存儲中間件

MinIO 是一個高性能、分布式的對象存儲系統&#xff0c;兼容 Amazon S3 云存儲服務協議&#xff0c;廣泛應用于企業存儲、大數據、機器學習和容器化應用等領域。以下是詳細介紹&#xff1a; 核心特點 兼容 S3 API &#xff1a;全面兼容 Amazon S3 API&#xff0c;這意味著使用…

HTML回顧

html全稱:HyperText Markup Language(超文本標記語言) 注重標簽語義,而不是默認效果 規則 塊級元素包括: marquee、div等 行內元素包括: span、input等 規則1:塊級元素中能寫:行內元素、塊級元素(幾乎什么都能寫) 規則2:行級元素中能寫:行內元素,但不能寫:塊…

JAVA Spring MVC+Mybatis Spring MVC的工作流程*,多表連查

目錄 注解總結 將傳送到客戶端的數據轉成json數據 **描述一下Spring MVC的工作流程** 1。屬性賦值 BeanUtils.copyProperties(addUserDTO,user); 添加依賴&#xff1a; spring web、mybatis framework、mysql driver Controller和ResponseBody優化 直接改成RestControl…

H2數據庫中一條insert語句到生成java對象到數據寫入磁盤的完整步驟

H2 數據庫將 SQL 語句轉換為磁盤存儲的全過程可以分為以下 8 個關鍵步驟&#xff0c;我們以 INSERT INTO users (id, name) VALUES (1, Alice) 為例詳細說明&#xff1a; 1. SQL 解析與語法樹生成 詞法分析&#xff1a;拆分語句為 INSERT、INTO、users 等 Token語法分析&#…

重磅升級!Google Play商店改版上線

5 月 21 日消息&#xff0c;Android Headline 今天&#xff08;5 月 21 日&#xff09;發布博文&#xff0c;報道稱在 2025 年 I/O 開發者大會上&#xff0c;谷歌宣布更新 Google Play 應用商店&#xff0c;在優化用戶體驗的同時&#xff0c;提升開發者收益。 本次更新中&…