PP-ChatOCRv3新升级:多页PDF信息抽取支持自定义提示词工程,拓展大语言模型功能边界

文本图像信息抽取技术在自动化办公、建筑工程、教育科研、金融风控、医疗健康等行业领域具有广泛应用场景。2024年9月,飞桨低代码开发工具PaddleX中新增文本图像智能产线PP-ChatOCRv3,充分结合PaddleOCR的文本图像版面解析能力和文心一言语言理解优势,实现了高效的文本图像信息抽取。
近期,飞桨研发团队对飞桨低代码开发工具PaddleX中文本图像智能产线PP-ChatOCRv3进行升级,一方面实现了基于标准OpenAI接口的大语言模型调用,支持不同类型大模型灵活更换,另一方面针对文本图像信息抽取,丰富了自定义提示词工程的能力,从而为文本图像信息抽取注入新动力。

在这里插入图片描述
PP-ChatOCRv3 系统流程图

PP-ChatOCRv3进阶使用传送门
https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-rc/docs/practical_tutorials/document_scene_information_extraction(deepseek)_tutorial.md

本次升级具体特色功能如下:

新模型可快速适配多页 PDF 文件,高效抽取信息

由于大语言模型的推理时间相对较长,从多页 PDF 文件中抽取信息往往成本较高。
然而,PP-ChatOCRv3 集成了向量检索技术,先从 PDF 中筛选出与查询信息相关的内容,再借助大语言模型进行信息抽取,有效提升了处理效率。同时为了有效节约视觉特征和建立向量库的时间成本,PP-ChatOCRv3提供了数据缓存加载方法。在完成初次视觉特征和向量库建立后,后续的信息抽取过程即可基于缓存数据进行,有效的避免了频繁的视觉推理和建立索引库过程
详细的实现如下:

import os
from paddlex import create_pipelinepipeline = create_pipeline(pipeline="PP-ChatOCRv3-doc",initial_predictor=False)output_dir = "output"
if not os.path.exists(output_dir):os.makedirs(output_dir)
visual_predict_res_path = os.path.join(output_dir, "contract.visual")
vector_res_path = os.path.join(output_dir, "contract.vector")
if not os.path.exists(visual_predict_res_path):visual_predict_res = pipeline.visual_predict(input="contract.pdf",use_doc_orientation_classify=False,use_doc_unwarping=False)visual_info_list = []for res in visual_predict_res:visual_info_list.append(res["visual_info"])vector_info = pipeline.build_vector(visual_info_list, flag_save_bytes_vector=True,retriever_config={"module_name": "retriever","model_name": "embedding-v1","base_url": "https://qianfan.baidubce.com/v2","api_type": "qianfan","api_key": "api_key" # your api_key})pipeline.save_visual_info_list(visual_info_list, visual_predict_res_path)vector_info = pipeline.build_vector(visual_info_list)pipeline.save_vector(vector_info, vector_res_path)
else:visual_info_list = pipeline.load_visual_info_list(visual_predict_res_path)vector_info = pipeline.load_vector(vector_res_path)chat_result = pipeline.chat(key_list=["甲方"],visual_info=visual_info_list,vector_info=vector_info,chat_bot_config={"module_name": "chat_bot","model_name": "ernie-3.5-8k","base_url": "https://qianfan.baidubce.com/v2","api_type": "openai","api_key": "api_key" # your api_key},retriever_config={"module_name": "retriever","model_name": "embedding-v1","base_url": "https://qianfan.baidubce.com/v2","api_type": "qianfan","api_key": "api_key" # your api_key}
)
print(chat_result)

支持自定义提示词工程,拓展大语言模型的功能边界

早期进行文本图像信息抽取时,如从身份证、营业执照中提取信息,通常预先设定好关键词(如姓名、公司名称等),再查找与之相关的信息。然而,在实际应用中,关键信息往往以问题的形式呈现,例如在研报中查询《哪吒2》的票房数,要回答此类问题就需要对提示词进行修改。本次升级支持自定义提示词工程,涵盖问题描述、提取规则、结果规范以及少样本学习等方面,可根据实际问题灵活调整,从而拓展大语言模型在信息抽取方面的功能边界。
一个提示词修改示例如下:

  • text_task_description:对话任务的描述,例如“你现在的任务是根据提供的文本内容回答用户的问题,并给出你回答问题引用的原文片段”。
  • text_rules_str:用户设置的细节规则,例如“对于问题结果,使用“答案:”标注,对于引用原文片段,使用“引用原文:”标注。问题结果中的日期格式为“YYYY-MM-DD””。
  • text_few_shot_demo_text_content:用于少样本演示的文本内容,例如“当用户询问关于“时间”的问题时,返回某年某月某日”,通常设置为空即可。
  • text_few_shot_demo_key_value_list:用于少样本演示的键值对列表,例如[{“该规定是何时公布的?”: “2005年2月4日”}, {“该规定是何时施行的?”: “2005年4月1日”}],通常设置为空即可

产出结果:

{'chat_res': {'reasoning_content': ['好的,我现在需要处理用户的问题。用户提供的OCR文本是关于《勘察设计注册工程师管理规定》的内容,问题是要找出该规定是何时公布的。首先,我要仔细阅读OCR文本,寻找相关的日期信息。\n\n在OCR文本的开头部分,我看到这样的文字:“勘察设计注册工程师管理规定 (2005年2月4日中华人民共和国建设部令第137号公布自2005年4月1日起施行)”。这里有两个日期,一个是公布的日期,另一个是施行的日期。用户的问题是询问公布的日期,所以需要确认哪个对应公布。\n\n根据中文法律法规的常见格式,通常会在标题后的括号内注明公布日期和施行日期,格式为“(日期公布机关公布,自日期起施行)”。这里的结构是“2005年2月4日中华人民共和国建设部令第137号公布自2005年4月1日起施行”,所以前半部分“2005年2月4日”应该是公布的日期,后半部分“2005年4月1日”是施行日期。\n\n接下来,我需要确认用户的问题是否确实指向公布日期。用户的问题明确问的是“该规定是何时公布的?”,所以答案应该是2005年2月4日。需要将日期格式转换为“YYYY-MM-DD”,即“2005-02-04”。\n\n然后,检查是否有其他可能的日期信息。OCR文本的其他部分主要涉及注册工程师的管理规定,没有提到其他日期。因此,可以确定答案正确。\n\n最后,按照用户的要求,用JSON格式返回结果,问题作为key,答案作为value,并引用对应的原文片段。确保日期格式正确,没有其他多余内容。\n'], '该规定是何时公布的?': {'答案': '2005-02-04', '引用原文': '勘察设计注册工程师管理规定 (2005年2月4日中华人民共和国建设部令第137号公布自2005年4月1日起施行)'}}}

精彩课程预告

为了帮助您全面掌握PP-ChatOCRv3的最新技术进展,百度研发团队精心打造视频精讲课程,深入解读PP-ChatOCRv3的最新技术方案,并分享其在实际产业中的应用技巧。同时,我们还特别设置了产业场景实战营,配套详细教程文档,将手把手指导您针对具体问题灵活优化自定义提示词工程能力。机会难得,立即点击链接报名https://www.wjx.top/vm/wFZcC0n.aspx?udsid=749768

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法刷题记录——LeetCode篇(1.2) [第11~20题](持续更新)

更新时间:2025-03-29 LeetCode题解专栏:实战算法解题 (专栏)技术博客总目录:计算机技术系列目录页 优先整理热门100及面试150,不定期持续更新,欢迎关注! 17. 电话号码的字母组合 给定一个仅包含数字 2-9…

如何在 vue 渲染百万行数据,vxe-table 渲染百万行数据性能对比,超大量百万级表格渲染

vxe-table 渲染百万行数据性能对比,超大量百万级表格渲染;如何在 vue 渲染百万行数据;当在开发项目时,遇到需要流畅支持百万级数据的表格时, vxe-table 就可以非常合适了,不仅支持强大的功能,虚…

阿里 FunASR 开源中文语音识别大模型应用示例(准确率比faster-whisper高)

文章目录 Github官网简介模型安装非流式应用示例流式应用示例 Github https://github.com/modelscope/FunASR 官网 https://www.funasr.com/#/ 简介 FunASR是一个基础语音识别工具包,提供多种功能,包括语音识别(ASR)、语音端…

如何使用 LLaMA-Factory 微调 LLaMA3

【LLaMa3微调】使用 LLaMA-Factory 微调LLaMA3 实验环境 1.1 机器 操作系统:Windows 10 或 UbuntuPyTorch 版本:2.1.0Python 版本:3.10(针对Ubuntu 22.04)Cuda 版本:12.1GPU 配置:p100 (16GB) …

使用Java ApI 实现Hadoop文件上传

目录 文件传输步骤 windows的本机文件传输 linux的虚拟机文件传输 文件传输步骤 建立连接 在connect2HDFS()方法中,通过设置Configuration对象来指定HDFS的URI(在这个例子中为hdfs://192.168.12.133:9000),并初始化一个FileSys…

喜讯 | 耘瞳科技视觉检测与测量装备荣膺“2024机器视觉创新产品TOP10”

3月28日,全球机器视觉行业盛会VisionChina2025(上海)机器视觉展完美收官。展会期间,由机器视觉产业联盟(CMVU)举办的“2024机器视觉创新产品TOP10”企业名单正式揭晓,耘瞳科技“工业跨尺度场景实…

数据可视化(matplotlib)-------图表样式美化

目录 一、图表样式概述 (一)、默认图表样式 (二)、图表样式修改 1、局部修改 2、全局修改 二、使用颜色 (一)、使用基础颜色 1、单词缩写或单词表示的颜色 2、十六进制/HTML模式表示的颜色 3、RGB…

202518 | Ngnix

Ngnix是什么 Nginx(发音为“engine-x”)是一个开源的高性能HTTP服务器、反向代理服务器、负载均衡器和邮件代理服务器。它由俄罗斯程序员Igor Sysoev开发,首次发布于2004年,旨在解决C10K问题(即如何高效地处理10,000个…

WP Mail 邮件发送:WordPress Mail SMTP设置

在我们WordPress搭建个人网站完成后,读者或者客户发送的电子邮件,包括你的WPForms电子邮件通知,如果无法到达预定收件人收件箱,这会对我们网站的运营造成很大的影响,问题在于WordPress Mail SMTP的发送方式。 SMTP&am…

小智机器人关键函数解析:MqttProtocol::SendAudio()对输入的音频数据进行加密处理,通过UDP发送加密后的音频数据

MqttProtocol::SendAudio()对输入的音频数据进行加密处理&#xff0c;通过UDP发送加密后的音频数据。 源码&#xff1a; void MqttProtocol::SendAudio(const std::vector<uint8_t>& data) {// 使用互斥锁保护临界区&#xff0c;确保同一时间只有一个线程可以访问该…

Hadoop 常用命令集总览

Hadoop 常用命令集总览 在大数据处理领域&#xff0c;Hadoop 作为一种广泛应用的分布式系统基础架构&#xff0c;其重要性不言而喻。熟练掌握 Hadoop 的常用命令对于高效的数据处理和分析工作至关重要。本文将对 Hadoop 的常用命令进行专业而详尽的列举&#xff0c;并结合实例进…

mac m4 Homebrew安装MySQL 8.0

1.使用Homebrew安装MySQL8 在终端中输入以下命令来安装MySQL8&#xff1a; brew install mysql8.0 安装完成后&#xff0c;您可以通过以下命令来验证MySQL是否已成功安装&#xff1a; 2.配置mysql环境变量 find / -name mysql 2>/dev/null #找到mysql的安装位置 cd /op…

GoLand 2024.3 中文 GO语言开发工具

GoLand 2024.3 中文 GO语言开发工具 文章目录 GoLand 2024.3 中文 GO语言开发工具一、介绍二、效果三、下载 一、介绍 JetBrains GoLand 2024 &#xff0c;是一款GO语言开发工具&#xff0c;全行代码补全&#xff1a;能使用本地运行的上下文感知深度学习模型&#xff0c;可以自…

Excel去掉单元格里面的换行的方法

方法一&#xff1a;使用“查找和替换”功能 ‌选中单元格‌&#xff1a;首先选中需要替换换行符的单元格或区域。 ‌打开替换窗口‌&#xff1a;按下“CtrlH”快捷键&#xff0c;打开“查找和替换”对话框。 ‌输入换行符‌&#xff1a; 在“查找内容”框中&#xff0c;你可…

React 中的 Props

Props&#xff08;Properties 的缩写&#xff09;是 React 中用于组件间通信的核心机制。它们允许数据从父组件单向传递到子组件。Props 是 React 组件不可变&#xff08;只读&#xff09;的输入参数&#xff0c;这种特性使得组件更加可预测且易于维护。 Props 的核心特性 单…

基于简单神经网络的线性回归

一、概述 本代码实现了一个简单的神经网络进行线性回归任务。通过生成包含噪声的线性数据集&#xff0c;定义一个简单的神经网络类&#xff0c;使用梯度下降算法训练网络以拟合数据&#xff0c;并最终通过可视化展示原始数据、真实线性关系以及模型的预测结果。 二、依赖库 …

‌19.思科路由器:OSPF协议引入直连路由的实验研究

思科路由器:OSPF协议引入直连路由的实验研究 一、实验拓扑二、基本配置2.1、sw1的配置2.2、开启交换机三层功能三、ospf的配置3.1、R1的配置3.2、R2的配置3.3、重启ospf进程四、引入直连路由五、验证结果随着互联网技术的不断发展,路由器作为网络互联的关键设备,其性能与稳定…

USB——删除注册表信息

文章目录 背景工具下载地址工具使用删除注册表信息背景 注测表中已记录这个设备的信息,但现在设备描述符又指定为了 WinUSB 设备,所以当设备再次插入的时候,不会发送 0xEE 命令,造成了枚举失败。 两种处理方式: 修改枚举时候的 VID/PID删除 USB 的注册表信息工具下载地址…

如何快速解决django报错:cx_Oracle.DatabaseError: ORA-00942: table or view does not exist

我们在使用django连接oracle进行编程时&#xff0c;使用model进行表映射对接oracle数据时&#xff0c;默认表名组成结构为&#xff1a;应用名_类名&#xff08;如&#xff1a;OracleModel_test&#xff09;&#xff0c;故即使我们库中存在表test&#xff0c;运行查询时候&#…

从 0 到跑通的 Qt + OpenGL + VS 项目的完整流程

&#x1f9e9; 全流程目标&#xff1a; 在 Visual Studio 中成功打开、编译并运行一个 Qt OpenGL 项目&#xff08;.vcxproj 格式&#xff09; ✅ 第 1 步&#xff1a;安装必要环境 工具说明Visual Studio 2017 / 2019 / 2022必须勾选 “使用 C 的桌面开发” 和 “MSVC 工具…