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 步驟。

深入了解