FastGPT/plugins/model/pdf-mineru/README.md
ROKY 7f715a8752
add mineru_saas_api for fastgpt (#5923)
* add pdf-mineru

添加了基于MinerU的PDF转Markdown接口服务,调用方式与pdf-marker一致,开箱即用。

* Rename Readme.md to README.md

* Rename pdf_parser_mineru.py to main.py

* mineru_saas_api for fastgpt

已有成熟本地部署方案,现提供使用mineru官方saas服务api的调用方法
2025-12-18 11:08:24 +08:00

194 lines
5.1 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.

# **MinerU SaaS Wrapper For Fastgpt 详细部署文档**
**—— 为 FastGPT 提供稳定、高效、开箱即用的纯白嫖文档解析服务转接服务用grok写的文档也是有不明白出问题了`docker logs -f mineru-saas-wrapper` 查看日志,问他~**
---
> **适用人群**FastGPT 开发者、后端工程师、DevOps、AI 应用集成者
> **目标**:在 **5 分钟内**完成从零到生产可用的 MinerU saas服务api的文档解析服务部署
---
## 一、项目概述
| 项目 | 说明 |
|------|------|
| **名称** | MinerU SaaS Wrapper for FastGPT |
| **框架** | FastAPI + Uvicorn |
| **核心功能** | 接收文件 → 调用 MinerU 官方 SaaS API → 轮询结果 → 返回内嵌图片的 Markdown → fasgpt读取解析内容转为知识库 |
| **部署方式** | Docker推荐 / docker-compose |
| **接口路径** | `POST /v2/parse/file` |
---
## 二、前置条件
| **MinerU Token** | 在 [https://mineru.net](https://mineru.net) 注册并获取 SaaS Token |
> **获取 Token 步骤**
> 1. 登录 MinerU 官网
> 2. 进入 **控制台 → API 密钥**
> 3. 创建新密钥(建议命名 `fastgpt-wrapper`
> 4. 复制完整 Token以 `eyJ...` 开头)
---
## 三、目录结构说明
```bash
mineru-saas-wrapper/
├── .dockerignore
├── Dockerfile
├── docker-compose.yml
├── mineru_saas_api.py # 主服务逻辑
├── requirements.txt # 依赖包
├── .env # (可选)环境变量文件
└── README.md
```
---
## 四、部署方式一:使用 `docker-compose`(推荐)
### 步骤 1克隆项目
```bash
mkdir mineru-saas-wrapper
cd mineru-saas-wrapper
```
### 步骤 2创建 `.env` 文件(推荐,防止 Token 泄露)
```bash
touch .env
```
编辑 `.env`
```env
MINERU_TOKEN=官网申请的API 密钥
POLL_INTERVAL=3
POLL_TIMEOUT=600
PORT=1234
```
### 步骤 3修改 `docker-compose.yml`
```yaml
services:
mineru-saas-wrapper:
build:
context: .
dockerfile: Dockerfile
container_name: mineru-saas-wrapper
restart: unless-stopped
ports:
- "1234:1234"
env_file:
- .env # 改为读取 .env 文件
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:1234/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
```
### 步骤 4启动服务
```bash
docker-compose up -d --build
```
### 步骤 5验证服务状态
```bash
# 查看容器状态
docker ps | grep mineru-saas-wrapper
# 查看健康检查
curl http://localhost:1234/health
# 预期输出:
{"status":"healthy"}
```
## 五、接口测试
### 1. 使用 `curl` 测试
```bash
curl -X POST "http://localhost:1234/v2/parse/file" \
-F "file=@./sample.pdf" | jq
```
### 2. 预期成功响应
```json
{
"success": true,
"message": "",
"markdown": "# 标题\n\n![](data:image/png;base64,iVBORw0KGgoAAA...) ...",
"pages": 8
}
```
### 查看详细日志
```bash
docker logs -f mineru-saas-wrapper
```
关键日志关键词:
- `Got upload url` → 上传成功
- `Polling ... -> done` → 解析完成
- `Parse finished, X pages` → 成功返回
---
## 九、FastGPT 集成指南
### 1. 在 FastGPT 中配置「文档解析」节点
| 字段 | 值 |
|------|---- |
| **解析服务地址** | `http://your-server-ip:1234/v2/parse/file` |
| **请求方式** | POST |
| **文件字段名** | `file` |
| **响应字段映射** | `markdown` → 内容,`pages` → 页数 |
### 2. FastGPT 示例配置JSON
```json
// 已使用 json5 进行解析,会自动去掉注释,无需手动去除
{
"feConfigs": {
"lafEnv": "https://laf.dev", // laf环境。 https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf 。
"mcpServerProxyEndpoint": "" // mcp server 代理地址,例如: http://localhost:3005
},
"systemEnv": {
"datasetParseMaxProcess": 10, // 知识库文件解析最大线程数量
"vectorMaxProcess": 10, // 向量处理线程数量
"qaMaxProcess": 10, // 问答拆分线程数量
"vlmMaxProcess": 10, // 图片理解模型最大处理进程
"tokenWorkers": 30, // Token 计算线程保持数,会持续占用内存,不能设置太大。
"hnswEfSearch": 100, // 向量搜索参数,仅对 PG 和 OB 生效。越大搜索越精确但是速度越慢。设置为100有99%+精度。
"hnswMaxScanTuples": 100000, // 向量搜索最大扫描数据量,仅对 PG生效。
"customPdfParse": {
"url": "http://your-server-ip:1234/v2/parse/file", // 自定义 PDF 解析服务地址
"key": "", // 自定义 PDF 解析服务密钥
"doc2xKey": "", // doc2x 服务密钥
"price": 0 // PDF 解析服务价格
}
}
}
```
---
**部署完成!**
现在你的 FastGPT 已拥有强大的 **MinerU 文档解析能力**,支持 PDF + 图片 → 完美 Markdown 内嵌渲染。
> 如有问题,欢迎提交 Issue 或查看日志排查。祝你解析愉快!