An LLM 只能檢索到資料攝取步驟所保留的內容,因此 RAG 流程的第一項工作是將 Word、PDF、Excel 與電子書檔案轉換為乾淨的 Markdown。使用 GroupDocs.Markdown.Mcp,AI 代理可以在本機完成此操作,支援 Claude Desktop、Claude Code、Cursor 或任何其他 MCP 用戶端,且檔案永不離開您的機器:
將此資料夾中的每個 PDF 轉換為 Markdown,圖片以檔案形式保存,並加入 front matter。
包含設定與故障排除的逐步說明請參閱文件:如何使用 AI 代理將文件轉換為 Markdown 以用於 RAG.
為什麼大多數 RAG 流程會從錯誤的轉換步驟開始?
通常的做法是把轉換當作管線工程:把檔案送到最近的解析器,接受返回的任何文字,然後把精力放在嵌入上。這顛倒了重要性的順序。Chunker 會依標題切分,若表格以儲存格值的串流形式出現,則無法回答任何問題;而將語料庫上傳至第三方解析器則會洩露您未預期的資訊。當檢索效果不佳時,原因可能就在流程最先觸及的檔案上。
本文主張三項修正:將此步驟保留在自己的機器上、有意選擇輸出選項,並驗證結果而非盲目信任。
雲端解析器是文件攝取的合適位置嗎?
對於內部語料庫而言,通常不是。攝取是唯一會看到您所有文件的階段:政策、價目表、事後分析。若使用解析服務接收所有檔案,則該服務會看到整個檔案庫,而非單一檔案。
GroupDocs.Markdown.Mcp 使用 MCP stdio 傳輸。您的 AI 客戶端會將伺服器作為子行程啟動,資料路徑為代理 → 本機伺服器 → 本機檔案系統。伺服器沒有入站埠、外部端點,也不會收集遙測。只有代理在回覆中寫入的內容會傳送至模型提供者。計量授權是唯一需要向外發送流量的情況:它僅回報使用量,絕不傳送文件內容,且授權檔案可離線使用。
使用 Docker 啟動:
docker run --rm -i -v $(pwd)/documents:/data \
ghcr.io/groupdocs-markdown/markdown-net-mcp:latest
或使用 .NET 10 SDK,執行 dnx GroupDocs.Markdown.Mcp --yes。將 GROUPDOCS_MCP_STORAGE_PATH 指向保存語料庫的資料夾。
哪個 GroupDocs 伺服器負責轉換為 Markdown:Markdown 還是 Conversion?
兩者皆能產生 Markdown,但它們解答的問題不同。
| 您需要 | 使用 |
|---|---|
| 保留結構的 Markdown,且可控制圖片、flavor、頁面選擇與 front matter | GroupDocs.Markdown.Mcp (this server) |
| Markdown 作為多個目標之一,或在同一工作流程中將 DOCX 轉為 PDF 再轉為 XLSX | GroupDocs.Conversion.Mcp, which covers 100+ formats in both directions |
如果 Markdown 是最終目標且品質重要,請選擇專用引擎。若您在多種格式之間轉換且 Markdown 只是其中之一,則選擇通用轉換器;其 PDF 轉換方式已在 將 PDF 轉換為適合 LLM 的 Markdown 的 3 種方法(以及本機為何更優) 中說明。
為什麼 Markdown 是 RAG 攝取的最佳格式?
標題會被保留,表格仍保持為表格,清單仍保持為清單。這些正是 chunker 與 embedder 所處理的單位。伺服器透過單一工具 convert_to_markdown 轉換 DOCX、DOC、RTF、ODT、XLSX、XLS、ODS、CSV、TSV、EPUB、MOBI、TXT、CHM 等 20 多種格式。Word 系列的來源因檔案中結構明確,轉換最為乾淨。試算表工作表會變成 Markdown 表格。
索引時有三個選項很重要:
| 選項 | 攝取設定 | 原因 |
|---|---|---|
images |
"file",或僅文字時使用 "skip" |
預設的 base64 會在 chunk 中間放入多兆位元組的 data URI |
frontMatter |
true |
YAML 包含標題、作者、格式與頁數,會成為 chunk 的中繼資料,讓答案能引用文件標題而非檔名 |
flavor |
"github"(預設)或 "commonmark" |
與讀取結果的解析器相匹配 |
範例對話(節錄)
You: Before converting anything: what is the license status of the markdown server?
Agent: get_license_status -> mode: licensed, engine GroupDocs.Markdown 26.3, server 26.9.0.
You: Convert every PDF in this folder to Markdown, images as files, with front matter.
Agent: convert_to_markdown (images: "file", frontMatter: true) for each PDF.
Saved one .md per document, with extracted images alongside.
You: For each converted file, give me the source page count and the Markdown length.
Agent: get_document_info for each source, then the length of each saved .md.
One 300-page file produced only 4 KB of Markdown: likely a scan.
如何在建立索引前檢查語料庫?
在檢視之前,將執行結果視為不可信。只要使用以下提示即可捕捉大多數失敗:
對每個已轉換的檔案,告訴我來源的頁數以及產生的 Markdown 長度。
get_document_info 會在不進行轉換的情況下回傳 fileName、fileFormat、pageCount、title、author 與 isEncrypted,因此代理可以將頁數與其寫入的結果作比較。若一本 300 頁的手冊只產生 4 KB 的 Markdown,則可能是掃描檔或被截斷的執行。
掃描的 PDF 有硬性限制。它們沒有文字層,且此伺服器不具備 OCR 步驟;請將這類檔案另行處理。
誠實的限制:評估上限
若未取得授權,伺服器會以評估模式運行,僅處理前 3 頁,且每頁都會加上評估水印。輸出仍為有效的 Markdown,且不會報告其餘頁面被跳過,因此以此方式建立的索引看似完整,實際上幾乎是空的。請在每次攝取執行時先呼叫 get_license_status。
常見問題
哪種格式最適合 RAG 攝取?
Markdown 是不錯的選擇,因為 chunker 與 embedder 能很好地處理標題、清單與表格。使用 images: "file" 與 frontMatter: true,即可避免 chunk 中包含 base64,並保留來源的中繼資料。
我可以在不上傳文件的情況下將 Word 轉換為 Markdown 供 LLM 使用嗎?
可以。GroupDocs.Markdown.Mcp 以本機 stdio 程序執行,代理會從您設定的資料夾讀取檔案。
它會將 PDF 轉換為適合向量資料庫的 Markdown 嗎?
它會轉換具備文字層的 PDF,並在來源允許的情況下恢復標題、清單與表格。掃描的 PDF 沒有可轉換的文字,且本服務不提供 OCR 步驟。
深入了解
- 文件說明與標準操作指南: 如何使用 AI 代理將文件轉換為 Markdown 以用於 RAG
- 文件中心: GroupDocs.Markdown MCP Server
- 下一步: 3 種使用 MCP 只提取所需段落為 Markdown 的方法
- 下一步: 自動化 docs-as-code 移轉:代理執行轉換,您負責審核
- 下一步: 從文件到靜態網站:透過 AI 代理使用 Hugo、Docusaurus 或 MkDocs
- 本地部署與安全模型: 3 種 AI 文件處理架構,以及能將檔案保留在您網路內的方案
- 問題討論: GroupDocs Markdown 論壇
- 原始碼: GroupDocs.Markdown.Mcp on GitHub