Files
qiming/qiming-mcp-proxy/document-parser/USER_MANUAL.md
2026-06-01 13:03:20 +08:00

309 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. 手动安装sglangGPU加速必需
**重要**不要直接安装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 <math.h>'
# 如果成功,应该显示编译信息
# 如果失败,会显示 "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 <math.h>'
# 如果失败,安装缺失的开发包
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 <math.h>'
# 检查系统头文件是否存在
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版本等
---
**注意**:本手册基于当前版本编写,如有更新请参考最新文档。