Select Page
MarkItDown 教學:微軟開源神器,一鍵把 PDF、Word、PPT 轉成 AI 可讀 Markdown

MarkItDown 教學:微軟開源神器,一鍵把 PDF、Word、PPT 轉成 AI 可讀 Markdown

在 AI 時代,「讓 AI 看懂文件」變成一個非常關鍵的能力,但現實世界的資料格式五花八門,從 PDF、Word 到 PPT、甚至影片與音訊,這些內容對 AI 來說其實並不好直接處理。

這時候,MarkItDown 就成為一把真正的「文件瑞士刀」。

由 Microsoft 開源推出,MarkItDown 能將各種格式的檔案,一鍵轉換成乾淨、結構化、AI 友善的 Markdown,讓 ChatGPT、Claude 或各種 AI Agent 能輕鬆理解與分析。

你只要把 https://github.com/microsoft/markitdown 網址貼給 agent ,請他安裝就可以了


🚀 為什麼 MarkItDown 這麼強?

MarkItDown 最大的優勢只有一句話:

👉 幾乎什麼格式都能轉,而且還轉得漂亮

📂 支援格式(強到誇張)

🧾 辦公文件

  • PDF
  • Word(DOCX)
  • PowerPoint(PPTX)
  • Excel(XLSX / XLS)

🌐 網頁內容

  • HTML
  • 直接輸入 URL 解析整個頁面

🖼️ 影像檔

  • JPG / PNG
  • 支援 OCR 文字辨識
  • 可搭配 AI 產生圖片描述

🎧 音訊檔

  • WAV / MP3
  • 自動語音轉文字(Speech-to-Text)

📊 資料格式

  • CSV / JSON / XML

📦 其他進階格式

  • ZIP(自動解壓並轉換)
  • Outlook 郵件
  • YouTube(自動擷取字幕)
  • EPub 電子書

✨ 不只是轉檔,而是「結構理解」

很多轉檔工具的問題是:

👉 轉出來變成一坨純文字(完全不能用)

但 MarkItDown 不一樣,它會:

  • 保留標題層級(# ## ###)
  • 還原表格結構
  • 保留清單與段落
  • 維持超連結

👉 轉出來就是 AI 可以直接理解的 Markdown 結構

這對以下應用非常關鍵:

  • RAG(檢索增強生成)
  • AI 文件摘要
  • Agent 自動閱讀文件

⚡ 安裝與使用(超簡單)

安裝

pip install "markitdown[all]"

👉 如果只需要特定格式:

pip install "markitdown[pdf,docx,pptx]"

CLI 使用

markitdown 報告.pdf -o 報告.md

Python 使用

from markitdown import MarkItDownmd = MarkItDown()
result = md.convert("文件.docx")print(result.markdown)

👉 幾行程式碼就搞定


🤖 搭配 AI:威力直接翻倍

MarkItDown 真正強的地方,是它「原生為 AI 設計」。

🧠 AI 圖片理解

  • 可串接 OpenAI 視覺模型
  • 自動產生圖片描述
  • 讓 AI 看懂圖片內容

🔍 OCR 文字辨識

  • 整合 Azure Document Intelligence
  • 可讀取掃描 PDF / 圖片文字

🔌 MCP(Model Context Protocol)整合

  • 可直接接入 Claude Desktop
  • 或各種 AI Agent 系統

👉 這點對在做 AI Agent / LangChain / 自動化流程 特別重要


🧩 外掛系統

  • 可自訂格式解析
  • 支援企業客製流程

📌 實際應用場景

1️⃣ 餵 AI 吃文件(超省 Token)

👉 先轉 Markdown,再丟 AI

效果:

  • Token 減少最多可達 80%
  • AI 理解更準確

2️⃣ 建構企業知識庫(RAG)

流程:

文件 → MarkItDown → Markdown → Embedding → Vector DB

👉 完整 AI 知識庫 pipeline


3️⃣ AI Agent 文件閱讀能力

在你的 Agent 流程中加入:

文件 → MarkItDown → LLM 分析

👉 Agent 直接具備「讀文件能力」


4️⃣ 會議紀錄自動化

錄音 → 轉文字 → Markdown → AI整理

👉 自動產出結構化會議紀錄


⚠️ 不是萬能

MarkItDown 雖然強,但有幾個限制:

  • 複雜圖表(Chart / Graph)解析較弱
  • 高度排版文件可能失真
  • 不適合做「高保真排版還原」

👉 如果你要的是「完美排版還原」

建議用:
👉 Pandoc

👉 如果你要的是「讓 AI 看懂」
👉 MarkItDown 完勝


🧠 結論:AI 時代的文件標準工具

MarkItDown 解決了一個非常關鍵但常被忽略的問題:

👉 AI 看不懂文件格式

它的價值在於:

  • ✅ 超廣格式支援
  • ✅ 保留結構(不是純文字)
  • ✅ 原生為 AI 設計
  • ✅ 可整合 Agent / RAG / 自動化流程
  • ✅ 免費開源

👉 如果你正在做:

  • AI Agent
  • 文件分析
  • 自動化流程
  • 知識庫建構

MarkItDown 是 AI Agent 必裝工具。

開啟 MS SQL Server 的防火牆

開啟 MS SQL Server 的防火牆

正常情況安裝完 MS SQL SERVER 後,防火牆都還需要手動打開,SQL SERVER要去開放網路連線協定,我這邊提供一次搞定的批次檔,只要下載到電腦中,並且用管理員權限執行就可以了,以下示範一下如何打開以及注意事項

示範用的環境

  • Windows server 2022
  • SQL Server 2022

SQL Server Configuration Manager的設定

要先打開 SQL 的服務,所以先到 SQL Configuration Manager 中,把 TCP/IP 的協定打開

SQL Server Configuration Manager Network Protocols
SQL Server Configuration Manager Network Protocols TCP/IP
SQL Server Configuration Manager Network Protocols TCP/IP Enabled

防火牆設定

MS SQL SERVER 預設的 PORT 是 1433,打開這一個就可以正常連線

使用 Script 將所有的防火牆設定一次搞定

@echo =========  SQL Server Ports  ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection" 
@echo Enabling conventional SQL Server Service Broker port 4022  
netsh firewall set portopening TCP 4022 "SQL Service Broker" 
@echo Enabling Transact-SQL Debugger/RPC port 135 
netsh firewall set portopening TCP 135 "SQL Debugger/RPC" 
@echo =========  Analysis Services Ports  ==============
@echo Enabling SSAS Default Instance port 2383
netsh firewall set portopening TCP 2383 "Analysis Services" 
@echo Enabling SQL Server Browser Service port 2382
netsh firewall set portopening TCP 2382 "SQL Browser" 
@echo =========  Misc Applications  ==============
@echo Enabling HTTP port 80 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Enabling SSL port 443
netsh firewall set portopening TCP 443 "SSL" 
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh firewall set portopening UDP 1434 "SQL Browser" 
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE 

下載已經寫好的bat檔案

參考資料

http://support.microsoft.com/kb/968872/zh-tw

如何在 Azure VM中打開 ping request/ICMP Port

如何在 Azure VM中打開 ping request/ICMP Port

預設在 Microsoft Azure 的 VM 中,ICMP服務協定是關閉的,但常常有需要用ping指令來確認服務是否還存在,打開方法不講的話要找很久,原則上只要在 Azure 中設定,並且到 VM 中將防火牆打開即可

1.Azure中的設定

找到「VM」的「網路」,選擇「新增輸入連接埠規則」

並且輸入any和*

2.Windows Server Firewall 防火牆設定

新增 Inbound Rules ,把ICMPv4和ICMPv6兩個協定加入即可

ICMP 協定

EXCEL-欄位內要填寫MD5加密字串

EXCEL-欄位內要填寫MD5加密字串

偶而會需要將手上蒐集到的會員資料轉成會員資料的SQL語法,其中密碼通常是需要加密再寫入的,因為EXCEL沒有內建加解密服務,當然可以去買擴充套件,但身為RD,要自己來開發一下,可以打開EXCEL中的開發人員模式,並且將下列程式碼,複製貼上後,就可以直接在欄位中把函式當作公式來使用。

Function StringToMD5Hex(ByVal s As String) As String
Dim enc As Object
Dim bytes() As Byte
Dim pos As Long
Dim outstr As String

Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")

bytes = StrConv(s, vbFromUnicode)
bytes = enc.ComputeHash_2(bytes)

For pos = LBound(bytes) To UBound(bytes)
   outstr = outstr & LCase(Right("0" & Hex(bytes(pos)), 2))
Next pos

StringToMD5Hex = outstr
Set enc = Nothing
End Function

在欄位中當作公式直接使用

=StringToMD5Hex("string to hash")
=StringToMD5Hex(A2)

程式碼要放在開發人員的Visual Basic中

並且檔案格式要是 *.xlsm ,有啟用巨集功能的活頁簿

開啟 Visual Basic 編輯器後,要選取 Module1 也就是寫巨集的地方,然後把程式碼複製上去就可以用了