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