Kreuzberg是一个用Rust编写的多语言文档智能框架,支持从PDF、Office文档、图片等91种以上格式中提取文本、元数据、图片和结构化信息。项目提供了Rust、Python、Ruby、Java、Go、PHP、Elixir、C#、R、C、TypeScript等多种语言绑定,还支持CLI、REST API和MCP服务器调用方式。
项目亮点
超多格式支持:支持PDF、Word、Excel、PowerPoint、RTF、EPUB、图片(PNG、JPG、TIFF等)等91种以上文档格式,一个库解决所有文档处理需求。
多语言绑定:核心用Rust实现,性能卓越,同时提供Python、JavaScript/TypeScript、Go、Java、Rust等十余种语言的FFI绑定,满足不同技术栈的开发需求。
多接口方式:支持库调用、命令行工具、REST API服务器、MCP服务器四种使用方式,灵活适应各种应用场景。
结构化信息提取:不仅提取原始文本,还能识别文档中的表格结构、标题层级、关键元数据等。
图片提取能力:可以从PDF和Office文档中批量提取嵌入的图片。
安装步骤
Rust项目(使用crates.io):
cargo add kreuzberg
Python项目(使用PyPI):
pip install kreuzberg
JavaScript/TypeScript项目:
npm install kreuzberg
# 或
yarn add kreuzberg
Go项目:
go get github.com/kreuzberg-dev/kreuzberg
Docker快速体验:
docker run -p 8080:8080 kreuzberg-dev/kreuzberg-api
# API服务启动在 http://localhost:8080
基本使用示例
Python使用示例:
import kreuzberg
# 从PDF提取所有内容
result = kreuzberg.extract(“document.pdf”)
print(result.text)
print(result.metadata)
# 从Word文档提取
result = kreuzberg.extract(“report.docx”)
for page in result.pages:
print(page.text)
# 获取图片
result = kreuzberg.extract(“slides.pptx”)
for img in result.images:
with open(img.filename, “wb”) as f:
f.write(img.data)
Rust使用示例:
use kreuzberg::{Document, Extractor};
let doc = Document::from_path(“report.pdf”)?;
let result = Extractor::extract(&doc)?;
println!(“{}”, result.text);
println!(“{:?}”, result.metadata);
命令行使用:
# 安装CLI工具
cargo install kreuzberg-cli
# 提取PDF内容
kreuzberg extract document.pdf
# 输出为JSON格式
kreuzberg extract document.pdf –format json
REST API使用:
curl -X POST http://localhost:8080/extract \
-F “file=@document.pdf” \
-F “options={“extract_images”:true}”
适用场景
企业文档数字化:将大量历史纸质文档PDF、扫描件进行结构化提取。
知识库构建:从各类文档中自动提取内容构建RAG知识库。
数据迁移服务:将旧系统中的Office文档迁移到新系统。
智能归档系统:自动识别和分类归档各类电子文档。
AI训练数据准备:从文档中提取语料用于模型训练。
开源协议
采用专有开源协议(Other),具体条款请参考项目GitHub仓库的LICENSE文件。
总结
Kreuzberg是一个功能全面、性能出色的文档智能提取框架,其Rust核心加上丰富的语言绑定使其可以灵活集成到各种技术栈中。91种格式的支持覆盖面极广,PDF、Office文档、图片等常见格式都能处理,再配合CLI、API等多种接口方式,无论是简单的文档转换任务还是复杂的企业级文档处理流程,Kreuzberg都能提供可靠的技术支撑。
服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。








暂无评论内容