2026/5/24 11:31:29
网站建设
项目流程
做网站通栏模糊,魔方的网站,手机p图软件,2016wordpress淘宝客程序PaddleOCR-VL 构建多模态RAG系统
本章内容#xff0c;我们将详细介绍如何部署和运行这个基于PaddleOCR-VL的多模态AgenticRAG智能问答系统。该系统支持复杂PDF文档、图片、表格、公式等多种格式的智能分析和问答#xff0c;并具备精准的溯源能力。
应用场景与价值
企业文档…PaddleOCR-VL 构建多模态RAG系统本章内容我们将详细介绍如何部署和运行这个基于PaddleOCR-VL的多模态AgenticRAG智能问答系统。该系统支持复杂PDF文档、图片、表格、公式等多种格式的智能分析和问答并具备精准的溯源能力。应用场景与价值企业文档管理技术文档检索快速定位技术规范、操作手册中的关键信息合同条款查询精准检索合同条款支持法务审查报告分析智能解析财务报告、研究报告等复杂文档教育培训领域教材问答支持教科书、学术论文的智能问答考试辅导基于教材内容生成问答对辅助学习科研学术应用论文检索快速定位相关研究内容和数据文献综述自动整理和分析大量学术文献实验数据分析解析实验报告中的表格和图表数据项目核心模块代码详解PaddleOCR-VL 的输出格式非常适合构建多模态 RAG 系统如果想要明确的区分出图像、表格、普通文本等信息一个基本的处理流程是这样的PaddleOCR-VL JSON 输出 ↓ 1. 数据预处理 ├── 按 block_order 排序 ├── 过滤无用内容footer等 └── 合并相邻同类型块 ↓ 2. 分类处理 ├── 文本类 → 标准 chunk ├── 表格类 → 结构化提取 文本描述 ├── 公式类 → 保留格式 语义转换 └── 图片类 → 多模态向量 / 标题关联 ↓ 3. 元数据增强 ├── block_id溯源ID ├── block_bbox位置坐标 ├── block_type元素类型 ├── page_index页码 └── 上下文信息前后标题、图表编号 ↓ 4. 向量化与索引 ├── 文本 Embedding ├── 表格 Embedding多策略 └── 建立多级索引 ↓ 5. 检索与溯源 ├── 语义检索 ├── 坐标定位 └── 可视化标注扫码加入赋范空间免费领取本章教学资源及更多优质课程内容首先第一步做的就是完成PaddleOCR-VL模型的接入及实现解析过程。核心代码文件为ocr_service.py这个服务的核心流程是初始化时异步加载 PaddleOCRVL 模型到然后在 parse_document() 中通过线程池执行阻塞的 OCR 调用PaddleOCR 会将文档解析为多页结果并保存为 JSON/Markdown/可视化图片到磁盘。服务优先从生成的 *_res.json 文件中读取每页的 parsing_res_list将其中的每个 block包含 block_id、block_label、block_content、block_bbox、block_order 等字段转换为 ParsedBlock 对象最后通过 calculate_stats() 按 label 关键词table/image/formula/其他统计各类型块的数量并返回 DocumentStats。即初始化 → 加载 PaddleOCR 模型执行 OCR → 调用 pipeline.predict() 生成 JSON/Markdown/图片解析结果 → 从 JSON 文件转为 ParsedBlock 对象计算统计 → 按类型分类统计块数量分类逻辑判断条件分类结果示例 label‘table’ in labeltable_blockstable, table_cell‘image/figure/chart’ in labelimage_blocksimage, figure, chart‘formula/equation’ in labelformula_blocksdisplay_formula, inline_formula其他text_blockstext, paragraph_title, footer接下来在第二步我们要封装 AgenticRAG 的构建逻辑核心代码文件为rag_service.py其中核心的分块策略是根据内容类型差异化处理分块策略内容类型分块策略原因长文本 (text)✂️ 分块chunk_size500避免单个向量损失局部语义短文本✅ 不分块保持完整性表格 (table)✅ 整体存储表格结构不能拆分公式 (formula)✅ 整体存储LaTeX 公式语义完整图片 (image)✅ 整体存储图片标题/caption 整体索引每个 chunk 存储以下元数据metadata { doc_id: uuid, # 文档ID file_name: example.pdf, # 原始文件名 page_index: 0, # 页码PDF多页 block_id: 5, # OCR block ID block_type: text, # 类型text/table/image/formula block_label: paragraph_title, # OCR 原始标签 block_bbox: [100,200,300,400], # 坐标JSON字符串 block_order: 3, # 阅读顺序 chunk_index: 0, # 分块索引如果分块 total_chunks: 2, # 总分块数 is_chunked: True # 是否分块 }其次对于溯源的策略则主要是通过对元数据的格式化处理 大模型生成描述的引用来完成。核心代码文件llm_service.py在 Prompt 中明确引用system_prompt 你是一个专业的文档问答助手。你的任务是 1. 基于提供的文档上下文准确回答用户的问题 2. 在回答中使用【数字】标记引用来源例如【1】【2】 ⬅️ 关键 3. 对于表格、图像、公式等特殊内容明确指出其类型 4. 如果上下文中没有相关信息诚实地说明 5. 回答要准确、简洁、结构清晰 引用标注规则 - 使用【1】【2】【3】等数字标记对应检索到的文档块 - 每个关键信息点都应该标注引用来源 - 多个来源可以连续标注如【1】【2】 项目架构介绍AgenticRAGOCR 项目采用前后端分离的模块化设计核心结构如下AgenticRAGOCR/ # 项目根目录 ├── backend/ # 后端服务层 │ ├── app/ # 主应用目录 │ │ ├── main.py # FastAPI主服务 - 多模态RAG API │ │ ├── config.py # 配置管理 │ │ ├── services/ # 业务服务层 │ │ │ ├── ocr_service.py # PaddleOCR-VL 服务 │ │ │ ├── rag_service.py # RAG 检索服务 │ │ │ └── llm_service.py # LLM 问答服务 │ │ ├── models/ # 数据模型 │ │ └── api/ # API 路由 │ ├── requirements.txt # Python 依赖 │ ├── .env # 环境配置 │ ├── data/ # 数据目录 │ │ └── chroma_db/ # ChromaDB 向量数据库存储 │ └── uploads/ # 上传文件存储目录 │ ├── frontend/ # 前端界面React TypeScript │ ├── src/ # 源代码 │ │ ├── components/ # UI 组件 │ │ ├── lib/ # 工具库 │ │ │ └── api.ts # API 客户端 │ │ └── App.tsx # 主应用 │ ├── package.json # Node.js 依赖 │ └── vite.config.ts # Vite 配置 │ ├── restart_all.sh # 一键重启脚本 └── start_frontend.sh # 前端启动脚本扫码加入赋范空间免费领取本章教学资源及更多优质课程内容核心组件功能说明层级技术栈主要功能关键文件API服务层FastAPI PydanticRESTful API、文件上传、智能问答main.pyOCR解析层PaddleOCR-VL-0.9B文档解析、布局检测、内容识别ocr_service.py向量检索层ChromaDB Qwen Embeddings语义检索、相似度计算、分块策略rag_service.py问答生成层通义千问大模型智能问答、溯源引用、上下文理解llm_service.py数据存储层文件系统 向量数据库原文件存储、向量索引、元数据管理uploads/ chroma_db/前端界面层React TypeScript Vite文档可视化、问答交互、溯源展示frontend/本地部署环境配置系统基于Python 3.11开发需要确保环境满足以下要求环境要求组件版本要求安装方式验证命令Python≥ 3.11官网下载或condapython --versionNode.js≥ 18.0官网下载或nvmnode --versionpip最新版随Python安装pip --versionnpm≥ 9.0随Node.js安装npm --versionGPU推荐8GBCUDA 12.6nvidia-smi本项目使用 ocr_rag 虚拟环境与之前的PaddleOCR环境一致# 如果还没有创建使用conda创建环境conda create -n ocr_rag python3.11conda activate ocr_rag# 如果已经创建过直接激活conda activate ocr_rag激活后命令行提示符前会显示 (ocr_rag)表示已进入虚拟环境。后端项目配置与启动进入项目后端目录安装Python依赖# 进入后端目录 cd /home/MuyuWorkSpace/02_OcrRag/projects/AgenticRAGOCR/backend # 安装核心依赖包 pip install -r requirements.txt核心Python依赖依赖包版本用途fastapi0.109.2Web框架uvicorn0.27.1ASGI服务器dashscope1.19.0阿里云百炼SDKQwen模型chromadb0.4.22向量数据库langchain0.1.7LLM应用框架paddleocr[all]最新版OCR工具已在前面安装paddlepaddle-gpu3.2.0深度学习框架已在前面安装项目的环境变量配置已经在 backend/.env 文件中定义主要包含以下配置# 阿里云百炼平台配置 DASHSCOPE_API_KEYsk-e2bad0af850e403e QWEN_MODEL_NAMEqwen-max # 或 qwen-plus, qwen-turbo # 向量数据库配置 CHROMA_PERSIST_DIR./data/chroma_db EMBEDDING_MODELtext-embedding-v3 # Qwen embedding 模型支持中英文 # PaddleOCR 模型路径 PADDLEOCR_VL_MODEL_DIR/home/MuyuWorkSpace/02_OcrRag/PaddleOCR-VL-0.9B LAYOUT_DETECTION_MODEL_DIR/home/MuyuWorkSpace/02_OcrRag/PP-DocLayoutV2 # 文件上传配置 UPLOAD_DIR./uploads MAX_UPLOAD_SIZE50 # MB # 服务器配置 HOST0.0.0.0 PORT8100 # 日志配置 LOG_LEVELINFO重要提示DASHSCOPE_API_KEY必须配置用于调用通义千问模型和Embedding服务PADDLEOCR_VL_MODEL_DIR 和 LAYOUT_DETECTION_MODEL_DIR指向已下载的模型路径配置完成后启动FastAPI后端服务# 确保在 ocr_rag 虚拟环境中conda activate ocr_rag# 进入后端目录cd /home/MuyuWorkSpace/02_OcrRag/projects/AgenticRAGOCR/backend# 启动后端服务python start_backend_conda.sh启动成功后终端会显示如下信息INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8100 (Press CTRLC to quit)此时可以访问 http://localhost:8100/docs 查看API文档。主要API接口接口路径方法功能说明/api/documents/uploadPOST文档上传支持PDF、图片等格式自动OCR解析/api/documents/{doc_id}/indexPOST文档索引将OCR结果向量化并存入ChromaDB/api/documents/{doc_id}/queryPOST语义检索基于向量检索的语义搜索/api/documents/{doc_id}/qaPOST智能问答多模态问答支持溯源引用/api/documentsGET文档列表获取已上传的文档列表/api/documents/{doc_id}/blocksGET获取文档块获取解析后的文档块可按类型过滤/api/documents/{doc_id}/pages/{page_index}GET获取页面信息获取特定页的OCR结果/api/documents/{doc_id}/visualizations/{img_name}GET获取可视化图获取布局检测和阅读顺序可视化图前端服务配置与启动进入前端目录安装Node.js依赖# 进入前端目录 cd /home/MuyuWorkSpace/02_OcrRag/projects/AgenticRAGOCR/frontend # 安装依赖首次运行需要耗时约2-5分钟 npm install核心前端技术栈前端技术栈技术版本用途React18.3.1UI框架TypeScript5.6.3类型系统Vite5.4.11构建工具TailwindCSS3.4.15CSS框架Radix UI最新版组件库React Markdown10.1.0Markdown渲染KaTeX0.16.25公式渲染依赖安装完成后启动Vite开发服务器# 在前端目录下执行 npm run dev启动成功后终端会显示如下信息打开浏览器访问 http://localhost:5173即可看到AgenticRAGOCR系统的前端界面。总结本文详细介绍了基于PaddleOCR-VL构建企业级多模态RAG系统的完整实现方案。该系统通过深度集成OCR技术、向量检索和大语言模型实现了对复杂文档的智能解析、语义检索和精准问答。核心技术特点多模态文档解析能力PaddleOCR-VL模型支持文本、表格、图片、公式等多种元素的精准识别布局检测自动识别文档结构保持原始排版信息坐标定位精确记录每个元素的位置信息支持可视化溯源智能分块策略差异化处理根据内容类型文本/表格/公式/图片采用不同的分块策略元数据增强为每个chunk添加丰富的元数据信息包括位置、类型、页码等语义完整性确保表格、公式等结构化内容的完整性精准溯源机制引用标注自动生成【1】【2】等数字标记明确标识信息来源可视化定位通过坐标信息在原文档中精确标注相关内容多维度溯源支持页码、块ID、坐标等多种溯源方式通过本项目的实践我们展示了如何将OCR技术与RAG系统相结合构建一个功能完整、性能优异的企业级多模态文档智能问答系统为企业的数字化转型和知识管理提供了有力的技术支撑。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】