Skip to content

feat: 发布 UltimateRAG V2 文档智能版本 - #4

Merged
leonyangdev merged 6 commits into
mainfrom
V2
Aug 30, 2026
Merged

leonyangdev merged 6 commits into
mainfrom
V2

Conversation

@leonyangdev

Copy link
Copy Markdown
Owner

概要

将 UltimateRAG 从 V1 Naive RAG 升级到 V2 Document Intelligence,重点交付可靠异步文档摄取、多格式统一解析、复杂 PDF 版面恢复、图片多模态理解和结构化 Token 切块。

主要变更

  • 上传在 MinIO 原文件和 PostgreSQL Document/IngestionJob 原子落库后立即返回 HTTP 202/PENDING
  • 独立 Worker 使用 PostgreSQL SKIP LOCKED、租约、心跳、有限重试和失败补偿完成后台处理
  • 支持 Markdown、PDF、DOCX、XLSX、PPTX、HTML,以及 PNG/JPEG/WEBP/TIFF/BMP
  • PDFium 本地完成 PDF 校验、扫描页判定和渲染;Docling Layout/TableFormer 本地恢复分栏阅读顺序、表格、图片区域和 BBox
  • 扫描页使用百炼 OCR,稀疏 OCR 页面补充 Vision;独立图片融合 OCR 精确文字与 Vision 图形关系
  • 清理空表格、重复伪表格、Markdown 包装和无检索价值装饰图片
  • Chunk 按来源位置、内容类型和 Token 预算切分;表格续块重复题注及多级表头
  • 前端轮询 PENDING/PARSING/CHUNKING/EMBEDDING/INDEXING/READY/FAILED,并展示 parser_name@parser_version
  • Retrieval 仅允许 PostgreSQL 中 READY 的文档参与召回,并保留页码、BBox、Sheet、Range、Slide 等 Citation
  • 更新 Docker、Alembic、README、ADR 和 apps/docs 文档站点

数据与部署说明

  • 新增 Alembic 迁移 0002_v2_async_ingestion.py
  • API 与 Worker 必须同时运行;业务事实保存在 PostgreSQL,原文件保存在 MinIO,Milvus 仅作为可重建派生索引
  • 首次处理文字型 PDF 需要下载 Docling Layout/TableFormer 模型,Docker Volume 会持久化模型缓存
  • OCR、Vision、Embedding 和 LLM 使用 .env 中配置的阿里云百炼服务
  • CORS 已包含 http://192.168.3.19:3000

验证结果

  • uv run pytest -q:45 passed
  • uv run ruff check .:通过
  • uv run mypy:43 个源码文件通过
  • Web npm run lint:通过
  • Web npm run build:通过
  • apps/docs npm run docs:build:通过
  • docker compose config --quiet:通过
  • Docker API、Worker、Web、PostgreSQL、MinIO、Milvus 健康运行
  • 真实 data 样本验收通过:上传立即返回 202/PENDING,后台最终 READY,图片关系、PDF Table 2 多级表头及第 8 页 BBox 可实际召回

V2 边界

本 PR 不包含混合检索、Reranker、Query Rewrite、认证、ACL、多租户、审计、任务管理控制台、RAGOps 或 Agent 工作流;这些能力按版本规划留给 V3/V4 及后续版本。

leonyangdev and others added 6 commits August 29, 2026 12:13
本次提交实现V2版本的异步文档智能摄取完整能力:
- 新增PostgreSQL持久化任务队列,支持多Worker并行领取、租约回收与有限重试,解决同步上传超时与API进程资源占用问题
- 新增Alembic数据库迁移脚本,初始化异步摄取任务表并迁移旧版未完成任务
- 引入Docling本地PDF版面与表格分析,支持分栏阅读顺序、表格结构还原与元素BBox定位,减少对外OCR调用成本
- 新增百炼视觉理解适配器,提取图表、架构图等视觉内容的语义文本
- 调整API上传接口返回202 Accepted,文件可靠落库后立即返回,不再同步等待完整处理流程
- 新增后台Worker进程,异步执行解析、切块、向量化与索引链路
- 重构切块器为Token感知的结构感知切块,优化表格、代码等特殊内容的切分规则
- 更新前端文档列表支持自动轮询处理状态,优化上传与管理体验
- 更新依赖配置与环境变量示例,新增Docling、tiktoken等必要依赖与配置项
- 更新Docker Compose配置,新增后台Worker服务与持久化缓存卷
- 补充完整单元测试、冒烟测试脚本与架构文档,新增ADR-001记录决策背景与权衡
- 为百炼OCR客户端新增命令行调试入口,支持本地图片手动测试
- 新增两个示例图片文件到data目录用于开发验证
- 更新.gitignore以忽略macOS的.DS_Store系统文件
替换 VitePress 脚手架示例页,写入面向学习者的完整文档:
RAG 入门、项目概览、架构分层、模块详解、核心流程、API 参考。

同时补充 .gitignore 忽略 docs 构建产物 cache/dist,并取消
此前误提交的 .vitepress/cache 跟踪,避免构建产物进入仓库。

Co-Authored-By: Claude Code <noreply@anthropic.com>
新增官方 Pages + VitePress 模式 workflow:push 到 V2 且涉及
apps/docs 时自动构建并发布,另支持 workflow_dispatch 手动触发。

站点地址为项目 Pages 子路径 /UltimateRAG/,config.mts 已设置
base 并在 Commit 1 中修正 socialLinks 为 leonyangdev/UltimateRAG。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@leonyangdev
leonyangdev merged commit f07225f into main Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant