mirror of
https://github.com/labring/FastGPT.git
synced 2025-12-25 20:02:47 +00:00
* 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的调用方法
194 lines
5.1 KiB
Markdown
194 lines
5.1 KiB
Markdown
# **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 ...",
|
||
"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 或查看日志排查。祝你解析愉快! |