---
## 📝 最新更新
### 2026-10-16 🚀 v2.2.1:发布预构建 Docker 镜像
- ✅ **预构建镜像**:GPU 后端、CPU 后端、前端镜像随版本发布到 GHCR(`ghcr.io/magicyuan876/tianshu-backend` / `tianshu-backend-cpu` / `tianshu-frontend`),部署时直接拉取,无需本机构建
- ✅ **compose 默认拉取发布镜像**:`docker-compose.yml` 按 `.env` 中的 `TIANSHU_IMAGE_REGISTRY` / `TIANSHU_VERSION` 拉取镜像;源码构建与本地代码挂载拆到 `docker-compose.build.yml`,`setup.sh` 默认叠加该文件,行为不变
- ✅ **GPU 镜像瘦身**:基础镜像由 `cudnn-devel` 改为 `cudnn-runtime`,压缩后基础层从 4.32GB 降到 2.0GB
- ✅ **第三方镜像固定版本**:vLLM 固定为 `v0.31.0`、RustFS 固定为 `1.0.1`,可通过 `VLLM_VERSION` / `RUSTFS_VERSION` 覆盖
- 🐛 **修复**:worker 缺少 `JWT_SECRET_KEY` 导致任务完成后 Webhook 通知入队失败
### 2026-10-12 🚀 v2.2.0:加密文档解析支持
- ✅ **加密 PDF**:支持密码保护的 PDF;空密码 / 仅所有者密码的文档自动移除限制,无需手动输入
- ✅ **加密 Office**:支持加密的 DOCX / XLSX / PPTX 及旧版 DOC / XLS / PPT(msoffcrypto-tool 解密后走正常解析流水线)
- ✅ **加密 ZIP**:支持 ZipCrypto 与 AES 加密的压缩包,解密后自动解包为父子任务批量解析
- ✅ **全链路 password 参数**:提交任务时可选填文档打开密码——API 表单、前端提交页高级选项、MCP `parse_document` 工具、Dify 插件均已支持
- ✅ **密码错误可补救**:解密失败任务给出友好中文报错,可在任务详情页重试时填写正确密码直接重跑,无需重新提交
- 🔒 **密码安全**:密码仅存于任务 options(接口返回一律掩码)、不落任何日志;解密明文副本隔离存放,任务完成自动清理
### 2026-09-13 🚀 v2.1.0:Webhook 任务通知、审计日志与界面体系升级
- ✅ **Webhook 任务终态通知**:任务完成/失败时向对接方推送带 HMAC 签名的回调(仅任务元数据 + 结果查询地址,不含解析内容);调度器周期投递,失败指数退避重试直至死信,全程 SSRF 防护,投递记录可查询
- ✅ **按 API Key 维度配置回调**:每个对接系统在「API Token 管理」中自助绑定回调地址、签名密钥与出站鉴权(Bearer/Basic/自定义头),支持测试投递;管理员可在系统设置统一查看与管理全部对接方;临时场景可在提交任务时按任务指定 `webhook_url`
- ✅ **审计日志**:登录、配置变更、API Key 与任务高危操作全量留痕(含 IP/UA),系统设置页可视化筛选查询,按保留期自动清理
- ✅ **界面体系升级**:设置中心重构为导航式布局,全局页面自适应流式宽度,顶栏分区协调不遮挡;英文界面全量翻译,中英文完整双语
### 2026-09-12 🚀 v2.0.0 稳定版:多模态图片描述、ZIP/EPUB 支持与系统完善
- ✅ **图片描述(多模态大模型)**:解析结果中的图片可自动调用多模态大模型生成内容描述,写回 Markdown 图片 alt 与 JSON 的 img_caption;管理员在系统配置页完成启用与模型配置(OpenAI 兼容接口),支持连接测试与并发控制
- ✅ **ZIP 压缩包解析**:上传 zip 自动解包为父子任务批量解析(条目数/解压总量限制,防 Zip Slip),结果按条目合并;新增 EPUB 格式支持(MarkItDown)
- ✅ **邀请码注册**:管理员可在配置页开启注册邀请码,公开注册接口按需校验
- ✅ **任务取消**:支持取消 pending/processing/paused 状态的任务(PR #83)
- ✅ **MinerU 3.4.5 升级**:Office 原生解析(DOCX/XLSX/PPTX)、macOS MPS 原生运行支持;引擎聚焦 MinerU,移除 PaddleOCR 引擎
- ✅ **部署统一**:单一交互式 `setup.sh` 入口(GPU/纯 pipeline/CPU/原生/离线),新增 pipeline-only 编排与离线部署方案
- ⚡ **性能与稳定性**:SQLite 启用 WAL 模式消除读写互斥;API 端点去阻塞化;Redis 队列与 SQLite 定期对账;子任务单事务批量创建;vLLM 容器按需冷启动
- 🔒 **安全加固**:认证与密钥强度强制校验、文件服务鉴权与下载防护、对象存储凭据与网络收紧、依赖版本升级等系统性完善(升级前请按文档重新生成 `.env`)
- 🔧 **修复**:图片 EXIF 方向非法导致解析失败、模型缓存随容器重建丢失、图片源文件预览失败等问题
### 2026-09-11 🚀 MinerU 3.4.5 升级
- ✅ **MinerU 3.4.5 升级**:`mineru[all]>=3.4.5`,同步 `mineru-vl-utils>=1.0.5,<2`、`pypdf>=5.6.0`
- ✅ **VLM 模型更新**:`MinerU2.5-2509-1.2B` → `MinerU2.5-Pro-2605-1.2B`(模型下载脚本、`mineru.json`、vLLM 服务同步)
- ✅ **兼容确认**:`do_parse` API、`vlm/hybrid` 后端名(旧别名 `*-auto-engine` 仍受支持)、pipeline 模型目录结构(PP-DocLayoutV2 等)均保持不变
- ✅ **macOS 原生支持**:Apple Silicon 自动启用 MPS 加速(`--accelerator mps`),VLM 后端自动走 MLX;音视频辅助引擎在 mac 上回退 CPU
### 2026-04-12 🔧 MinerU 3.0.9 升级 & Office 格式增强
- ✅ **MinerU 3.0.9 升级**
- 核心依赖同步:`transformers==4.57.6`、`albumentations>=1.4.11`
- 配置格式迁移:`magic-pdf.json`(扁平)→ `mineru.json`(嵌套 `models-dir` 结构)
- 模型路径适配 3.0 新结构(`unimernet_hf_small_2503`、`pp_formulanet_plus_m`)
- ✅ **DOCX 原生解析**:`.docx` 文件路由至 MinerU 3.0 原生解析器(`office_docx_analyze`),解析精度优于 MarkItDown
- ✅ **旧版 Office 格式支持**:`.doc`、`.xls`、`.ppt` 经 LibreOffice 自动转换为新格式后,再交由 MinerU 或 MarkItDown 处理,不再报错
- ✅ **前端引擎信息面板**:仪表盘新增引擎状态卡片,实时展示各引擎版本号、GPU/CUDA 环境及关键包版本
### 2025-12-10 ⚡ 大文件并行处理
- ✅ **PDF 自动拆分功能**:超过阈值(默认 500 页)的 PDF 自动拆分为多个子任务并行处理
- 可配置的分块大小(默认 500 页/块),显著提升大文件处理速度
- 实现父子任务系统:自动管理子任务状态并在完成后合并结果
- 智能结果合并:保留原始页码信息,按序合并 Markdown 和 JSON 输出
- 处理时间可缩短 40-60%(取决于硬件配置)
- **异步拆分**:拆分操作在 Worker 中进行,API 接口秒级响应
- ✅ **PDF 拆分配置**(`.env` 新增)
- `PDF_SPLIT_ENABLED`: 是否启用自动拆分(默认 `true`)
- `PDF_SPLIT_THRESHOLD_PAGES`: 拆分阈值页数(默认 `500`)
- `PDF_SPLIT_CHUNK_SIZE`: 每个子任务处理页数(默认 `500`)
- ✅ **Worker 内存管理**
- `WORKER_MEMORY_LIMIT`: 容器硬内存限制(默认 `16G`)
- `WORKER_MEMORY_RESERVATION`: 内存软限制/预留(默认 `8G`)
### 2025-12-05 🗄️ RustFS 对象存储集成
- ✅ **RustFS 对象存储**:所有解析结果的图片自动上传到对象存储
- S3 兼容 API,基于 minio-py 实现
- 批量上传图片,自动生成公开访问 URL
- 短且唯一的文件名生成(时间戳 Base62 + NanoID)
- 按日期自动分组(YYYYMMDD/文件名.ext)
- Markdown/JSON 中的图片路径自动替换为对象存储 URL
- Docker Compose 一键部署 RustFS 服务
- 需配置 `RUSTFS_PUBLIC_URL` 环境变量(外部可访问地址)
- ✅ **输出标准化优化**:改进图片路径处理,统一使用对象存储 URL
- ✅ **配置简化**:精简 `.env.example` 配置文件,移除冗余选项
### 2025-11-12 📦 代码优化与文档整理
- ✅ **输出标准化**:统一 Markdown/JSON 输出格式,优化图片路径处理
- ✅ **文档精简**:精简 README 文档,移除冗余说明文件,保持项目整洁
- ✅ **代码质量**:优化错误处理,改进日志输出,提升系统稳定性
### 2025-10-30 🐳 Docker 部署 + 企业级认证系统
- ✅ **Docker 容器化部署支持**
- **一键部署**:根目录交互式脚本 `setup.sh`(或 `make setup`)即可完成全栈部署
- **多阶段构建**:优化镜像体积,分离依赖层和应用层
- **GPU 支持**:NVIDIA CUDA 12.6 + Container Toolkit 集成
- **服务编排**:前端、后端、Worker、MCP 完整编排(docker-compose)
- **开发友好**:源码挂载进容器,改完 `make reload` 即生效;`make smoke` 一键验证解析链路
- **生产就绪**:健康检查、数据持久化、零停机部署、资源限制
- **多种部署模式**:GPU 标准、纯 pipeline、Mac CPU 本地开发、原生部署、离线部署
- 详见:Docker 配置文件(`docker-compose.yml`、`backend/Dockerfile`、`frontend/Dockerfile`)
- ✅ **企业级用户认证与授权系统**
- **JWT 认证**:安全的 Token 认证机制,支持 Access Token 和 Refresh Token
- **用户数据隔离**:每个用户只能访问和管理自己的任务数据
- **角色权限**:管理员(admin)和普通用户(user)角色
- **API Key 管理**:用户可自助生成和管理 API 密钥,用于第三方集成
- **用户管理**:管理员可管理所有用户、重置密码、启用/禁用账户
- **SSO 预留接口**:支持 OIDC 和 SAML 2.0 单点登录(可选配置)
- **前端集成**:登录/注册页面、用户中心、权限路由守卫
- **数据库迁移**:自动为现有数据创建默认用户
- 详见:`backend/auth/` 目录
### 2025-10-29 🧬 生物信息学格式支持
- ✅ **新增插件化格式引擎系统**
- 支持专业领域文档格式的解析和结构化
- 统一的引擎接口,易于扩展新格式
- 为 RAG 应用提供 Markdown 和 JSON 双格式输出
- ✅ **生物信息学格式引擎**
- **FASTA 格式**:DNA/RNA/蛋白质序列解析
- 序列统计(数量、长度、平均值)
- 碱基组成分析(A/T/G/C 比例)
- 序列类型自动检测(DNA/RNA/蛋白质)
- **GenBank 格式**:NCBI 基因序列注释格式
- 完整的注释信息提取
- 特征类型统计(gene/CDS/mRNA 等)
- GC 含量计算和生物物种信息
- 支持 BioPython 或内置解析器(可选依赖)
- 详见:`backend/format_engines/README.md`
### 2025-10-27 🎨 水印去除支持(🧪 实验性)
- ✅ **智能水印检测与去除**
- YOLO11x 专用检测模型 + LaMa 高质量修复
- 支持图片(PNG/JPG/JPEG 等)和 PDF(可编辑/扫描件)
- 前端可调参数:检测置信度、去除范围
- 自动保存调试文件(检测可视化、掩码等)
- 轻量模型,处理速度快,显存占用低
> **⚠️ 实验性功能**:某些特殊水印可能效果不佳,建议先小范围测试。
> 📖 **详细说明**:[水印去除优化指南](backend/remove_watermark/README.md)
### 2025-10-24 🎬 视频处理支持
- ✅ **新增视频处理引擎**
- 支持 MP4、AVI、MKV、MOV、WebM 等主流视频格式
- **音频转写**:从视频中提取音频并转写为文字(基于 FFmpeg + SenseVoice)
- **关键帧 OCR(🧪 实验性)**:自动提取视频关键帧并进行 OCR 识别
- 场景检测:基于帧差异的自适应场景变化检测
- 质量过滤:拉普拉斯方差 + 亮度评估
- 图像去重:感知哈希(pHash)+ 汉明距离
- 文本去重:编辑距离算法避免重复内容
- 支持 PaddleOCR-VL 引擎
- 支持多语言识别、说话人识别、情感识别
- 输出带时间戳的文字稿(JSON 和 Markdown 格式)
- 详见:`backend/video_engines/README.md`
### 2025-10-23 🎙️ 音频处理引擎
- ✅ **新增 SenseVoice 音频识别引擎**
- 支持多语言识别(中文/英文/日文/韩文/粤语)
- 内置说话人识别(Speaker Diarization)
- 情感识别(中性/开心/生气/悲伤)
- 输出 JSON 和 Markdown 格式
- 详见:`backend/audio_engines/README.md`
### 2025-10-23 ✨
**🎯 支持内容结构化 JSON 格式输出**
- MinerU (pipeline) 和 PaddleOCR-VL 引擎现在支持输出结构化的 JSON 格式
- JSON 输出包含完整的文档内容结构信息(页面、段落、表格等)
- 用户可在任务详情页面切换查看 Markdown 或 JSON 格式
- 前端提供交互式 JSON 查看器,支持展开/收起、复制、下载等功能
**🎉 新增 PaddleOCR-VL 多语言 OCR 引擎**
- 支持 109+ 语言自动识别,无需手动指定语言
- 文档方向分类、文本图像矫正、版面区域检测等增强功能
- 原生 PDF 多页文档支持,模型自动下载管理
---
## 🌟 项目简介
MinerU Tianshu(天枢)是一个**企业级 AI 数据预处理平台**,将非结构化数据转换为 AI 可用的结构化格式:
- **📄 文档**: PDF、Word、Excel、PPT → Markdown/JSON(MinerU、水印去除🧪)
- **🎬 视频**: MP4、AVI、MKV → 语音转写 + 关键帧 OCR🧪(FFmpeg + SenseVoice)
- **🎙️ 音频**: MP3、WAV、M4A → 文字转写 + 说话人识别(SenseVoice 多语言)
- **🖼️ 图片**: JPG、PNG → 文字提取 + 结构化(多 OCR 引擎 + 水印去除🧪)
- **🧬 生物格式**: FASTA、GenBank → Markdown/JSON(插件化引擎,易扩展)
- **🏗️ 企业特性**: GPU 负载均衡、任务队列、JWT 认证、MCP 协议、现代化 Web 界面
## 📸 功能展示