5.3.0 beta更新日志
一、 新增与修改
1. 新增Mage AI能力
支持社区用户直接使用Mage的AI能力,可开箱即文本识别、表格识别、发票识别、卡证识别、PDF识别等能力,并预置了Mage AI的向导功能,开发者可通过向导来生成指定AI提取信息模板,可从模板中很方便的获取指定字段并应用于流程中。
需求故事
当前 UiBot 用户,如果需要使用 UiBot 的 AI 能力,需要经历以下痛点:
l 需要注册一个 Mage 账户,而不是使用现有的 UiBot 账户直接操作。
l 需要安装查找 Mage 插件,并非开箱即用。
l 需要在 Mage 的网站去进行配置识别器,获取 pubkey 和 secret 填写到 UiBot Creator 中,操作需要来回切换浏览器和 UiBot Creator。
l 需要查文档理解返回的 json,并进行 json 的对象读取操作,并不能在 UiBot 命令的属性面板直接配置属性对应的变量,使得相应的字段可以直接使用。
新增内容
l Mage账号与Creator账号打通,统一账号授权与使用(需连接互联网)。
¡ 社区版用户可以开箱即用Mage AI的能力,无需注册Mage账号。
¡ 直接使用社区账号可登陆Mage官网。
¡ 离线登录用户暂时无法使用。
l 命令面板预置Mage AI命令(需连接互联网),包含以下命令模块及命令。
¡ 文字识别
n 屏幕文字识别
使用Mage识别指定屏幕范围的文字,识别结果以JSON格式返回。
n 图像文字识别
使用Mage识别指定图像的文字,识别结果以JSON格式返回。
¡ 表格识别
n 屏幕表格识别
使用Mage识别指定屏幕范围的多个表格,识别结果返回数组。
n 图像表格识别
使用Mage识别指定图像的多个表格,识别结果返回数组。
¡ 票据识别
n 屏幕票据识别
使用Mage识别指定屏幕范围的多种票据,识别结果返回数组。
n 图像票据识别
使用Mage识别指定图像的多种票据,识别结果返回数组。
¡ 卡证识别
n 屏幕卡证识别
使用Mage识别指定屏幕范围的卡证,识别结果以JSON格式返回。
n 图像卡证识别
使用Mage识别指定图像的卡证,识别结果以JSON格式返回。
¡ PDF识别
n PDF识别
指定PDF页码转为图片后通过Mage识别图片上的内容,识别结果返回数组。识别多页失败会报错,且会消耗调用的配额次数。
¡ 结果提取
n 从结果提取信息
从Mage识别结果中提取指定类型或指定字段。
l 属性面板新增Mage配置(需连接互联网)。
¡ 对于使用了Mage AI能力的命令可自动获取登录用户的识别器。
¡ 可切换AI模块下的识别器。
¡ 可通过Mage配置查看识别器的剩余配额。
l 新增Mage AI向导(需连接互联网)。
通过界面引导使用者生成使用Mage AI的命令模板。Mage AI按钮预置在工具栏上,点击打开后,主要分为以下4步:
¡ 配置识别器
n 选择AI模块,对应Mage提供的AI模块。
n 选择AI能力,应用模块下的AI能力。
n 选择识别器,对应AI能下创建的识别器。
¡ 选择图像来源
n 选择图像,从本地选择图像路径。
n 选择目标,使用鼠标从屏幕截取区域范围或选择应用窗口。
¡ 提取类型和字段
n 选择类型,选择预置的类型。
n 选择字段,选择类型中可提取的字段。
¡ 可视化界面生成命令模板
n 源代码根据Mage AI向导的选项生成With Each的语法糖模块。
n 可视化生成对应Mage命令的语句块。
使用案例:识别增值税专用发票并从中提取发票代码
方法1:直接使用Mage命令提取方式
1. 首先准备一张普通增值税发票,如下图
2. 从命令面板的Mage AI>票据识别>图像票据识别,将图像票据识别拖入可视化面板。
3. 配置票据识别的属性,选择识别图片路径。然后点击Mage配置右侧的按钮图标,配置Mage的识别器信息。
4. 打开Mage识别器配置弹窗后,会默认读取可配置的识别器信息。如果在Mage后台配置了多个通用多票据的识别器,那么可以下拉选择其它识别器。
5. 点击确认保存后,我们就可以直接运行识别这张增值税发票的所有信息了。运行后我们可以看到返回了一大堆的坐标信息和所有已识别的字段信息。
6. 因票据识别返回的结果是一个数组,我们的需求是从这个票据信息里提取到发票号码,还要对原始数据进行一下加工,所以需要再拖入一个遍历数组命令,遍历获取的原始数据。
7. 到这一步,我们还需借助一个强大结果提取命令,从Mage AI>结果提取模块下找到从结果中提取信息命令,拖入遍历数组语句块内。
8. 配置从结果中提取信息命令的属性,依次填入识别结果value,选择AI模块为通用票据识别,选择提取属性为增值税专用发票,选择提取字段为发票代码
9. 运行并在输出窗口输出Result的值,就可以看到最终我们要提取到的结果了。
方法2:使用Mage AI向导提取
如果觉得使用Mage命令的方式提取图像发票号码操作比较繁琐,那么使用Mage AI向导的方式可以更快速的生成提取多个指定字段的代码模块,在源代码模式下会生新的语法糖模块,来帮助我们更方便的提取指定图像的指定信息。
1、 使用社区账号登陆Creator,创建一个流程,编辑一个流程块。
2、 点击工具栏上的按钮,打开向导弹窗。
3、 根据向导步骤指引,首先配置识别器。
¡ 选择AI模块:Mage开放的AI识别模块,目前提供了2种识别模块。
¡ 选择AI能力:对应AI模块使用的引擎版本,如有更精准的要求,可向Mage的工作人员申请开通高精版,每种版本对于识别的准确度和速度有不同的偏重。
¡ 选择识别器:可以前往Mage进行自定义名称配置,可以用作独立统计。
4、 点击下一步进入选择图像来源,提供了本地图像和选择目标(屏幕图像)2种方式。我们选择一个增值税专用发票图像,然后点击下一步。
5、 进入下一步选择提取类型和提取字段,先在左侧选增值税专用发票类型,然后找到这个类型下的发票号码字段勾选后点击完成。
¡ 如果还有其它字段的提取需求,可以勾选多个。
¡ 如果需要识别票据中还有其它类型票据,可以选择多个类型,比如差旅报销中常用的火车票、普通增值税发票、汽车票等等。
¡ 下图中勾选了发票号码、开票日期、金额明细。
6、 点击完成后在可视化会自动生成一个多票据的结果块,在源代码模式下生成With each语句包裹的语法糖模块。
可视化界面:
¡ 可以看有3层包裹的语句块,最终提取的发票号码、开票日期、金额明细等3个字段生成了3个从结果中提取信息命令。
¡ 每条提取结果的命令下可插入其它命令将结果提取到指定的位置,比如将Result值写入Excel表格的单元格内。
a) 选中从结果中提取信息命令的属性面板,已自动配置好提取的字段。
源代码界面:
自动生成了专门为Mage AI设计的With Each 的语法糖,能遍历块中的所有结果。
下图生成的代码从命令使用维度理解话,它是“异常捕获”+“遍历数组”+“从结果中提取信息”3种命令的能力组合。
上图的语法糖实现逻辑可等价于
obj = Mage.ImageOCRInvoice(p1, p2, p3 … )
Try
For Each item in obj
Result = Mage.Extract(item, p11, p12, …)
Result = Mage.Extract(item, p21, p22, …)
Result = Mage.Extract(item, p21, p22, …)
Next
Mage.Close(obj) //如果没有 Mage.Close,则忽略此行
Catch e
Mage.Close(obj) //如果没有 Mage.Close,则忽略此行
Throw e
End Try
7、 运行并在输出窗口分别输出Result的值,就可以看到最终我们要提取到的结果了。
使用案例:从PDF识别提取表格字段
1. 首先准备一个含表格的PDF文件。如下图的PDF
2. 在Creator可视化界面从命令面板Mage AI>PDF识别拖入PDF识别,并配置好属性参数。如下图
¡ 图中使用了2次遍历数组。
¡ 图中分别提取了表格的行数、列数、和第2行第2列的单元格文字。
¡ 为什么要用2次遍历? 因为PDF是一页页的识别,第一个遍历是遍历页码,第二个遍历是遍历某一页里面的多个表格。
¡ 为什么要加延迟3000毫秒?因为识别时有频率限制,过快可能会导致超频。企业版用户无需延迟。
3. 运行并在输出窗口分别输出Result的值,就可以看到最终我们要提取到的结果了。
下图对应表格第2行第2列的单元格值。
2. 源代码自动排版缩进
触发自动缩进排版条件:
¡ 关闭流程块,再重新打开;
¡ 切换到可视化视图,进行任何修改之后,再切换回源代码视图。
程序会如何处理?
¡ 把缩进调整到易读的状态(一律采用Tab符号进行缩进)
¡ 把所有关键字(图中蓝色的词)调整为单词首字母大写的形式,例如Do、UnitTest,等等。
不处理情况:
¡ 空行不会增加或删除
¡ 行内空格不会增加或删除
¡ 注释不受影响
二、 命令修改
1. 新增【本地OCR(实验功能)】命令
原有的OCR命令修改为了本地OCR(实验功能)。实现本地可直接使用OCR识别。原有的OCR命令从5.3.0版本后移除,社区版用户如果继续使用,则会报异常提醒使用本地OCR。
优势:
¡ 不再受制于网络,本地既可实现OCR的识别。
¡ 不再受限调用次数,只受限于机器的性能。
¡ 对于中文的识别支持较好。
¡ 识别的稳定较好。
劣势:
¡ 对于社区版用户继续使用原OCR命令会直接抛出异常,报告此功能已被本地OCR取代。
¡ 特殊字符,数字,英文等类型的文字准确率不高.
模块名 | LocalOCR |
函数名 | LocalOCR.Click LocalOCR.Hover LocalOCR.Find LocalOCR.ImageOCR LocalOCR.ScreenOCR |
所在位置 | |
说明 | 与原OCR命令使用一致。 |
源代码:
LocalOCR.Click()
LocalOCR.Hover()
objPoint = LocalOCR.Find()
sText = LocalOCR.ImageOCR()
sText = LocalOCR.ScreenOCR()
2. OutLook模块新增下载附件、删除邮件命令
函数名 | Outlook.DeleteMailMessage |
所在位置 | |
说明 | 删除指定邮件消息 |
属性(参数) | 邮件消息对象 | 邮件列表中的邮件消息对象。 |
源代码:
Outlook.DeleteMailMessage("")
函数名 | Outlook.DeleteMailMessage |
所在位置 | |
说明 | 删除指定邮件消息 |
属性(参数) | 邮件消息对象 | 邮件列表中的邮件消息对象。 |
保存路径 | 邮件附件保存的路径,可填写绝对路径也可使用@res\"路径\"形式表示当前流程res文件夹下的路径,路径分隔符需转义,如\"C:\\\\UiBot\"或@res\"UiBot\\\\UiBot\"。 |
源代码:
arrRet = Outlook.DownloadAttachments("", "")
3. 模拟按键命令
增加以下按键模拟:
按键 | 说明 |
Right Ctrl | 键盘右侧Ctrl键 |
Right Alt | 键盘右侧Alt键 |
Right Shift | 键盘右侧Shift键 |
Right Win | 键盘右侧Win键 |
` | 反引号 |
- | 减号 |
= | 等于号 |
[ | 中括号左半边 |
] | 中括号有半边 |
\ | 反斜杠 |
; | 分号 |
' | 单引号 |
, | 逗号 |
. | 句点 |
/ | 正斜杠 |
Numpad 0 | 数字键盘数字0 |
Numpad 1 | 数字键盘数字1 |
Numpad 2 | 数字键盘数字2 |
Numpad 3 | 数字键盘数字3 |
Numpad 4 | 数字键盘数字4 |
Numpad 5 | 数字键盘数字5 |
Numpad 6 | 数字键盘数字6 |
Numpad 7 | 数字键盘数字7 |
Numpad 8 | 数字键盘数字8 |
Numpad 9 | 数字键盘数字9 |
NumLock | 数字锁定键 |
Numpad / | 数字键盘正斜杠 |
Numpad * | 数字键盘星号 |
Numpad - | 数字键盘减号 |
Numpad + | 数字键盘加号 |
Numpad . | 数字键盘句点 |
三、 产品优化
l 整体界面UI组件及样式优化,弹窗、按钮、按钮状态、图标、输入框、输入框状态、单选框、复选框、滚动条等。
l 发布至商店增加线上流程最新版本号显示。
四、 BUG修复
l Select Case语句在可视化视图修复样式和功能。
五、 已知问题
l 本地OCR为实验功能,对于一些特殊符号、数字、英文识别有可能存在偏差,文字识别优化对象主要为中文。
l 本次升级的版本中,新增了With Each的语法糖,主要是为Mage AI的使用降低复杂度,对于其它使用场景可尝试使用。
l 【从结果中提取信息】命令的属性面板选择提取类型和字段需网络支持。对于表格命令提取整行整列仅支持输入数字不支持输入变量,如需使用变量,可到源码视图填写。