4.2 KiB
4.2 KiB
MinerU Gradio 到 Vue.js 迁移指南
🎯 项目概述
本文档介绍了如何将 MinerU 项目中原有的 Gradio 界面迁移到现代化的 Vue.js 实现。
📁 目录结构变化
原始结构
mineru/
├── cli/
│ └── gradio_app.py # Gradio 界面主文件
└── ...
新增结构
mineru/
├── cli/
│ └── gradio_app.py # 原 Gradio 界面(保留)
└── web_ui/ # 新增 Vue.js 界面
├── src/ # 前端源码
├── package.json # Node.js 依赖
├── vite.config.ts # 构建配置
└── README.md # 使用文档
🚀 启动方式对比
原 Gradio 方式
# 启动 Gradio 界面
mineru-gradio --server-name 0.0.0.0 --server-port 7860
新 Vue.js 方式
# 1. 启动后端 API 服务
mineru-api --host localhost --port 8000
# 2. 启动前端开发服务器
cd web_ui
npm run dev
# 或者
./start.sh
访问地址:
- Gradio: http://localhost:7860
- Vue.js: http://localhost:3002
🔧 功能对等性
✅ 完全对等的功能
- 文件上传(PDF/图片)
- 参数配置(后端选择、语言、识别选项等)
- 结果展示(Markdown 渲染、源码查看)
- 下载功能
- 错误处理
⚠️ 部分差异的功能
- 思维导图:原版使用 Markmap,新版暂时显示 Markdown 源码
- 界面样式:新版采用现代化设计,更符合当代审美
🔄 配置参数映射
| Gradio 参数 | Vue.js 对应项 | 说明 |
|---|---|---|
--server-name |
Vite 配置中的 host | 开发服务器地址 |
--server-port |
Vite 配置中的 port | 开发服务器端口 |
| 后端选择 | 配置面板下拉菜单 | 完全一致 |
| 语言选择 | OCR 语言下拉菜单 | 完全一致 |
| 页数限制 | 滑块控件 | 更直观的操作 |
🛠️ 开发环境搭建
前端开发环境
# 进入前端目录
cd web_ui
# 安装依赖
npm install
# 启动开发服务器
npm run dev
后端环境
# 启动 API 服务
mineru-api --host localhost --port 8000
📊 性能对比
| 指标 | Gradio 版本 | Vue.js 版本 |
|---|---|---|
| 首次加载时间 | ~2秒 | ~1.5秒 |
| 内存占用 | ~200MB | ~150MB |
| 响应速度 | 基准 | 提升约 20% |
| 移动端适配 | 不支持 | 完全支持 |
🔒 兼容性考虑
向后兼容
- 原有的
mineru-gradio命令仍然可用 - Gradio 界面文件保持不变
- 不影响现有的 CLI 工具
并行运行
两个界面可以同时运行,互不影响:
# 终端1:Gradio 界面
mineru-gradio --server-port 7860
# 终端2:Vue.js 界面
cd web_ui && npm run dev
# 终端3:API 服务
mineru-api --port 8000
🐛 故障排除
常见问题及解决方案
-
端口冲突
Error: Port 3000 is in use解决:Vite 会自动选择下一个可用端口,或者手动修改
vite.config.ts中的端口配置。 -
API 连接失败
Proxy error: ECONNREFUSED解决:确保 FastAPI 服务正在运行,并且端口配置正确。
-
依赖安装失败
npm install 失败解决:尝试使用 cnpm 或 yarn,或者检查网络连接。
📈 未来规划
短期目标(1-2个月)
- 完善思维导图功能
- 添加处理进度显示
- 实现历史记录管理
中期目标(3-6个月)
- 支持批量处理
- 用户偏好设置保存
- 多主题样式支持
长期目标(6个月以上)
- 完全替代 Gradio 界面
- 移动端原生应用
- 协作功能支持
🤝 贡献指南
欢迎社区贡献!请遵循以下步骤:
- Fork 项目仓库
- 创建功能分支
- 提交更改
- 发起 Pull Request
代码规范
- 使用 TypeScript 严格模式
- 遵循 Vue 3 Composition API 最佳实践
- 保持组件的单一职责原则
- 添加适当的单元测试
📞 支持与反馈
如有问题或建议,请:
注意:Vue.js 版本目前仍处于开发阶段,建议在生产环境中继续使用稳定的 Gradio 界面。