# Document Parser 用户使用手册 ## 快速开始 ### 系统依赖安装 ```shell sudo apt update sudo apt install --reinstall build-essential libc6-dev linux-libc-dev sudo apt install gcc-multilib g++-multilib ``` ### 1. 环境初始化 ```bash # 在当前目录初始化uv虚拟环境和依赖 document-parser uv-init ``` 这个命令会: - 检查并安装uv工具 - 创建虚拟环境 `./venv/` - 安装MinerU和MarkItDown依赖 - 自动检测CUDA环境并安装相应版本 ### 2. 启动服务 ```bash # 启动文档解析服务 document-parser server ``` 服务启动后会自动: - 激活虚拟环境 - 检查环境状态 - 启动HTTP服务器(默认端口8087) ## CUDA环境配置(GPU加速) ### 1. 检查CUDA环境 ```bash # 检查NVIDIA驱动和CUDA nvidia-smi # 检查CUDA版本 nvcc --version ``` ### 2. 手动安装sglang(GPU加速必需) **重要**:不要直接安装sglang,应该使用MinerU官方推荐的安装方式,确保版本兼容性。 ```bash # 激活虚拟环境 source ./venv/bin/activate # 使用MinerU官方命令安装(推荐) uv pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple # 或者使用pip安装 pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple ``` **注意**:`mineru[all]` 会自动安装兼容的sglang版本,避免版本冲突问题。 ### 3. 验证sglang安装 ```bash # 检查sglang版本 python -c "import sglang; print('SGLang版本:', sglang.__version__)" # 检查sglang server是否可用 python -m sglang.srt.server --help ``` ### 4. 验证CUDA编译器头文件查找 ```bash # 测试CUDA编译器是否能找到math.h头文件 nvcc -v -x cu - -o /dev/null <<< '#include ' # 如果成功,应该显示编译信息 # 如果失败,会显示 "fatal error: math.h: 没有那个文件或目录" ``` ## 配置MinerU使用sglang加速 ### 1. 修改配置文件 编辑 `config.yml` 文件: ```yaml # MinerU配置 mineru: backend: "vlm-sglang-engine" # 启用sglang后端以支持GPU加速 python_path: "./venv/bin/python" max_concurrent: 3 queue_size: 100 batch_size: 1 quality_level: "Balanced" ``` ### 2. 或者通过命令行指定 ```bash # 启动服务时指定后端 document-parser server --mineru-backend vlm-sglang-engine ``` ## 验证MinerU是否使用sglang加速 ### 1. 检查服务日志 启动服务后,查看日志中是否有以下信息: ``` INFO 虚拟环境已自动激活 INFO MinerU配置: backend=vlm-sglang-engine ``` ### 2. 测试PDF解析 上传一个PDF文件进行解析,查看日志输出: ``` DEBUG MinerU完整命令: .../mineru -p input.pdf -o output -b vlm-sglang-engine ``` ### 3. 检查GPU使用情况 在另一个终端中运行: ```bash # 实时监控GPU使用 watch -n 1 nvidia-smi # 或者使用htop查看进程 htop ``` 如果看到MinerU进程占用GPU资源,说明sglang加速正常工作。 ## 故障排除 ### 1. sglang安装失败 ```bash # 检查Python版本(需要3.8+) python --version # 检查pip版本 pip --version # 尝试升级pip pip install --upgrade pip # 重新安装sglang pip uninstall sglang -y pip install "sglang[all]" ``` ### 2. 版本兼容性问题 如果遇到transformers版本兼容问题: ```bash # 安装兼容的transformers版本 pip install "transformers>=4.36.0,<4.40.0" # 重新安装MinerU(会自动安装兼容的sglang版本) pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple ``` ### 3. CUDA编译器头文件问题 如果遇到 `fatal error: math.h: 没有那个文件或目录` 错误: ```bash # 验证CUDA编译器是否能找到math.h头文件 /usr/bin/nvcc -v -x cu - -o /dev/null <<< '#include ' # 如果失败,安装缺失的开发包 sudo apt install -y libc6-dev libstdc++-13-dev # 设置正确的CUDA环境变量 export CUDA_HOME=/usr export PATH=/usr/lib/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/lib/cuda/lib64:$LD_LIBRARY_PATH # 清理FlashInfer缓存 rm -rf ~/.cache/flashinfer ``` **重要提示**:如果之前直接安装了sglang,建议先卸载再重新安装MinerU: ```bash # 卸载可能不兼容的sglang版本 pip uninstall sglang -y # 重新安装MinerU(包含兼容的sglang) pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple ``` ### 3. 虚拟环境问题 ```bash # 检查虚拟环境状态 document-parser check # 重新初始化环境 rm -rf ./venv document-parser uv-init ``` ### 4. 权限问题 ```bash # 检查目录权限 ls -la # 修改权限(如果需要) chmod 755 . chown $USER . ``` ## 常用命令 ### 环境诊断 ```bash # 验证CUDA编译器头文件查找 /usr/bin/nvcc -v -x cu - -o /dev/null <<< '#include ' # 检查系统头文件是否存在 ls -la /usr/include/math.h ls -la /usr/include/c++/13/cmath # 检查CUDA安装路径 find /usr -name "cuda_runtime.h" 2>/dev/null which nvcc ``` ### 环境管理 ```bash # 检查环境状态 document-parser check # 显示故障排除指南 document-parser troubleshoot # 重新初始化环境 document-parser uv-init ``` ### 服务管理 ```bash # 启动服务(默认端口8087) document-parser server # 指定端口启动 document-parser server --port 8088 # 指定配置文件 document-parser server --config custom_config.yml ``` ### 文件解析 ```bash # 解析单个文件 document-parser parse --input input.pdf --output output.md --parser mineru ``` ## 性能优化建议 ### 1. GPU加速 - 确保安装了 `sglang[all]` - 使用 `vlm-sglang-engine` 后端 - 监控GPU内存使用情况 ### 2. 并发控制 根据服务器性能调整配置: ```yaml mineru: max_concurrent: 2 # 根据GPU内存调整 batch_size: 1 # 小批次处理 ``` ### 3. 超时设置 ```yaml document_parser: processing_timeout: 3600 # 60分钟超时 ``` ## 日志查看 ### 1. 实时日志 ```bash # 查看当天日志 tail -f logs/log.$(date +%Y-%m-%d) # 查看最新日志 tail -f logs/log.* ``` ### 2. 日志级别 在 `config.yml` 中调整日志级别: ```yaml log: level: "debug" # 可选: debug, info, warn, error ``` ## 联系支持 如果遇到问题: 1. 运行 `document-parser troubleshoot` 查看详细指南 2. 检查日志文件获取错误信息 3. 确保环境配置正确(Python版本、CUDA版本等) --- **注意**:本手册基于当前版本编写,如有更新请参考最新文档。