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 个子命令:extract、batch、detect、formats、serve、mcp、…)。通过 Homebrew 或 Scoop 安装。 |
| Python | pip install xberg → from xberg import extract; output = extract("doc.pdf") |
| Rust | cargo add xberg → let out = xberg::extract(...).await?; |
| Node.js | npm install @xberg-io/xberg → await 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 等语言中也存在相同流程,配有类似的单行辅助函数。
更多信息获取
- 文档:https://docs.xberg.io(安装指南、CLI 参考、API 文档)
- 基准测试:https://xberg.io/benchmarks(声称最快开源 PDF → Markdown 转换)
- 社区:Discord、Hugging Face 组织,以及 Claude、Cursor、Gemini 等的插件市场。
总结:Xberg 是一个生产级、跨语言的文档智能工具包,集成了格式处理、OCR、布局分析、代码解析和可选的 LLM 驱动增强——全部基于一个快速的 Rust 核心。它完全契合 AI 基础设施领域,尤其适用于检索增强生成(RAG)以及任何需要从多样化来源提取干净、结构化文本的工作流。
相关
- 项目
- 项目
- 项目
- 项目
- 项目