一个高性能的多格式文档解析服务,支持PDF、Word、Excel、PowerPoint等格式,具备GPU加速能力。
- 🚀 高性能解析:支持MinerU和MarkItDown双引擎
- 🎯 GPU加速:通过sglang支持CUDA环境下的GPU加速
- 🔧 零配置部署:自动环境检测和依赖安装
- 📚 多格式支持:PDF、Word、Excel、PowerPoint、Markdown等
- 🌐 HTTP API:提供RESTful API接口
- 📊 实时监控:内置性能监控和健康检查
- ☁️ OSS集成:支持阿里云对象存储
cd document-parser
# 初始化uv虚拟环境和依赖(首次使用)
document-parser uv-init
# 检查环境状态
document-parser check# 启动文档解析服务
document-parser server
# 或指定端口
document-parser server --port 8088服务将在 http://localhost:8087 启动,并自动激活虚拟环境。
- Rust: 1.70+
- Python: 3.8+
- uv: Python包管理器
- NVIDIA GPU: 支持CUDA
- CUDA Toolkit: 11.8+
- GPU内存: 至少8GB
| 格式 | 解析引擎 | 特性 |
|---|---|---|
| MinerU | 专业PDF解析、图片提取、表格识别 | |
| Word | MarkItDown | 文档结构保持、格式转换 |
| Excel | MarkItDown | 表格数据提取、格式保持 |
| PowerPoint | MarkItDown | 幻灯片内容提取、图片保存 |
| Markdown | 内置 | 实时解析、目录生成 |
# 服务器配置
server:
port: 8087
host: "0.0.0.0"
# MinerU配置
mineru:
backend: "vlm-sglang-engine" # 启用GPU加速
max_concurrent: 3
quality_level: "Balanced"mineru:
backend: "vlm-sglang-engine" # 使用sglang后端
max_concurrent: 2 # GPU环境下建议降低并发数
batch_size: 1# 环境管理
document-parser check # 检查环境状态
document-parser uv-init # 初始化环境
document-parser troubleshoot # 故障排除指南
# 服务管理
document-parser server # 启动服务
document-parser server --port 8088 # 指定端口
# 文件解析(命令行)
document-parser parse --input file.pdf --output result.md --parser minerucurl -X POST "http://localhost:8087/api/v1/documents/parse" \
-H "Content-Type: multipart/form-data" \
-F "file=@document.pdf" \
-F "format=pdf"curl "http://localhost:8087/api/v1/documents/{task_id}/status"服务启动后,访问:
- OpenAPI Swagger UI:
http://localhost:8087/swagger-ui/ - OpenAPI JSON:
http://localhost:8087/api-docs/openapi.json
- 确保安装了
sglang[all] - 配置
backend: "vlm-sglang-engine" - 根据GPU内存调整并发参数
- 监控GPU使用情况
mineru:
max_concurrent: 2 # 根据系统性能调整
batch_size: 1 # 小批次处理
queue_size: 100 # 队列缓冲区大小- 虚拟环境未激活:运行
source ./venv/bin/activate - 依赖安装失败:运行
document-parser uv-init - GPU加速不生效:参考CUDA环境配置指南
- 权限问题:检查目录权限和用户权限
# 详细故障排除指南
document-parser troubleshoot
# 环境状态检查
document-parser check
# 查看日志
tail -f logs/log.$(date +%Y-%m-%d)cargo build --releasecargo testcargo fmt
cargo clippy本项目采用 MIT 许可证。
欢迎提交Issue和Pull Request!
注意:首次使用请运行 document-parser uv-init 初始化环境。如需GPU加速,请参考CUDA环境配置指南。