firecrawl/anydoc

Convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings.

它解決的問題

anydoc 是一個高效率的函式庫,專門用於將多種辦公室文件轉換為乾淨、符合 GitHub 風格的 Markdown。它解決了不同檔案格式之間解析不一致且速度緩慢的問題,提供單一且一致的輸出格式,非常適合用於 LLM 準備資料。

如何運作

此函式庫以純 Rust 寫成,以追求速度,且不依賴機器學習模型或外部服務。它採用多階段處理流程:

  1. 格式偵測:根據內容標記(位元組)來識別檔案類型,而非依賴副檔名。
  2. 格式解析器:每種支援的格式都有專屬的解析器,將文件轉換為共享的內部文件模型(包含區塊、內嵌元素、表格與資源)。
  3. GFM 序列化器:此共享模型接著透過單一序列化器渲染成 Markdown,確保所有輸入格式中,如表格與註腳等元素的行為完全一致。
  4. PDF 處理:文字型 PDF 會直接使用 pdf-inspector 轉換為 Markdown。

適用對象

  • AI 開發者:正在建構 RAG 流程或 LLM 應用程式,需要處理多種辦公室文件的開發者。
  • 智能工作流程:開發能透過提供的「代理技能」整合讀取與處理本機檔案的 AI 代理的工程師。
  • 軟體工程師:任何需要快速、本地化且一致的文件轉 Markdown 工具的人,支援 Node.js、Python 和 Rust 繫結,或可透過 WebAssembly 在瀏覽器中執行。

主要特色

  • 廣泛的格式支援:支援 14 種格式,包括 Word、PowerPoint、Excel、OpenDocument 和 PDF。
  • 極速處理:每份文件的中位轉換時間低於 5ms。
  • 一致的輸出:共享文件模型確保所有格式的格式化(如數學公式的 LaTeX 表達)保持一致。
  • 本地處理:核心轉換無需外部 API 呼叫或機器學習模型,並提供 WebAssembly 版本以支援瀏覽器中的本地轉換。
  • 代理就緒:可作為「代理技能」整合,讓 AI 代理輕鬆採用文件讀取功能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案