xberg-io/xberg

Polyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with CLI, REST API, and MCP server.

Xberg – 多語言文件智慧引擎

是什麼 – Xberg 是一個開源的函式庫與 CLI,可將任何類型的檔案(PDF、Office 文件、影像、音訊、歸檔、原始碼、網頁等)轉換為乾淨且結構化的文字。它整合了格式偵測、OCR、版面分析、表格重建、程式碼解析,以及可選的 LLM 驅動增強(摘要、NER、嵌入、模式驅動的 JSON 提取)。核心以 Rust 寫成,並透過 15 種語言的綁定(Python、Node、Go、Java、C#、Ruby、PHP、Elixir、Dart、Swift、Kotlin、Zig、C FFI 等)暴露,可作為函式庫、命令列工具、REST API,或 AI 編碼助手用的「MCP」伺服器執行。


主要功能(如 README 所述)

功能 你將獲得
廣泛的格式支援 支援 141 個副檔名的 107 種文件格式(PDF、Office、電子書、影像、音訊、歸檔、電子郵件、程式碼、科學檔案等)。
網頁擷取 取得單一 URL 或透過配套的 crawlberg 引擎爬取整個網站。
音訊/影片轉錄 使用 Whisper-ONNX 模型(tiny → large-v3)將 MP3、WAV、MP4、WebM 等轉為文字。
遞迴歸檔提取 安全處理嵌套的 .zip.tar.gz.7z,具備防 zip-bomb 保護與深度限制。
OCR 後端 Tesseract、PaddleOCR、Candle 或基於 VLM 的 OCR;自動偵測語言,回傳置信度分數,可透過外掛擴充。
版面與表格重建 使用 ML 模型(PP-DocLayout-V3、RT-DETR)進行閱讀順序分析;表格模型(TATR、SLANet)產生乾淨的 Markdown 表格。
程式碼智慧 基於 Tree-sitter 支援 371 種程式語言的解析——函數、類別、匯入、文件字串等,適用於 RAG 流程。
嵌入與搜尋 本地 ONNX 嵌入或透過 liter-llm 使用 165 個提供者 API;支援稀疏、延遲互動與交叉編碼器重排序。
增強功能 內建 NER、關鍵字提取(YAKE/RAKE)、摘要、翻譯、遮蔽、頁面分類、QR 檢測、語言偵測、令牌壓縮。
模式驅動的 JSON 提取 呼叫本地 LLM(Ollama、LM Studio、vLLM)或託管 LLM,無需手動提示即可產生結構化 JSON。
多種輸出格式 純文字、Markdown、Djot、HTML、JSON 樹、Docling DocTags;可註冊自訂渲染器。
部署彈性 可作為 Rust crate、Python/Node 等套件、Docker 鏡像、Helm 圖表使用,或執行內建 REST API(xberg serve)。核心不需 GPU;僅轉錄或 LLM 支援步驟可選 GPU。

如何使用

入口點 常見命令 / 程式碼片段
CLI xberg extract file.pdf(14 個子命令:extractbatchdetectformatsservemcp、…)。透過 Homebrew 或 Scoop 安裝。
Python pip install xbergfrom xberg import extract; output = extract("doc.pdf")
Rust cargo add xberglet out = xberg::extract(...).await?;
Node.js npm install @xberg-io/xbergawait xberg.extract('doc.pdf')
Docker docker run ghcr.io/xberg-io/xberg serve --port 8000 – 暴露單一 POST 端點,回傳 JSON 或 Markdown。
MCP 伺服器 xberg mcp --transport stdio – 提供協定,讓 AI 編碼助手(Claude、Cursor、Gemini 等)可直接呼叫。

哪些人可能受益?

  • 建構 RAG 流程的開發者 – 需要從異質資料來源快速、可靠地提取文字並可選嵌入。
  • 擁有大量文件歸檔的企業 – 可取代多種格式專用工具的拼湊系統,改用單一引擎。
  • AI 輔助編碼工具 – MCP 模式讓 Claude 或 Cursor 等代理可呼叫 Xberg 實現即時文件解析。
  • 需要可重現預處理的研究人員 – 確定性的 Rust 核心、廣泛的格式清單,以及跨語言的 CI 測試。

快速入門範例(Rust)

use xberg::{extract, ExtractInput, ExtractionConfig};

#[tokio::main]
async fn main() -> xberg::Result<()> {
    let cfg = ExtractionConfig::default();
    let out = extract(ExtractInput::from_uri("document.pdf"), &cfg).await?;
    println!("{}", out.results[0].content);
    Ok(())
}

Python、Node、Go 等語言中也存在相同流程,並配有類似的單行輔助函數。


更多資訊來源


總結:Xberg 是一個生產級、跨語言的文件智慧工具包,整合了格式處理、OCR、版面分析、程式碼解析與可選的 LLM 驅動增強——全部基於一個快速的 Rust 核心。它完全契合 AI 基礎設施領域,特別適用於檢索增強生成(RAG)以及任何需要從多元來源提取乾淨、結構化文字的工作流程。

相關

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