华为云用户手册

  • 最近依赖调度 最近依赖调度,是在自然周期调度的基础上,对于天依赖小时、天依赖分钟、小时依赖分钟这三种依赖场景,支持选择依赖最近的作业实例。 表3 最近依赖调度 场景 依赖处理逻辑 天依赖小时(勾选最近依赖) 依赖时间段范围是[当天的零点,下一天的零点) ,不可跨天。 示例一:天作业A每天8点调度;小时作业B每小时15分钟开始调度。则天作业A依赖最近的小时作业实例,即依赖7点15分的小时作业实例。 示例二:天作业A每天0点30分调度;小时作业B每小时40分钟开始调度。因为天作业前面没有小时任务,则天任务不依赖任何小时任务,直接运行。 天依赖分钟(勾选最近依赖) 依赖时间段范围是[当天的零点, 下一天的零点) ,不可跨天。 小时依赖分钟(勾选最近依赖) 往前找到最近的分钟任务,挂载依赖。 示例:小时作业A每小时15分钟开始调度;分钟作业B从凌晨一点开始每15分钟调度一次。则小时作业A在0点15分的实例,依赖分钟作业B在昨天23点45分的实例;小时作业A在1点15分的实例,依赖分钟作业B在1点15分的实例。
  • 集成步骤 轻量级WEB聊天控件可以快速高效的集成到您的页面,请您根据图1进行集成开发。 图1 集成开发步骤 完成开发前资源准备,获取登录信息,配置在线客服功能,请参见开发前准备。 开发token生成机制与token认证接口,提供给云客服。云客服在鉴权通过后,会将Token发回给第三方系统,由第三方系统确认是否为本系统发的请求,请参见开发token生成机制与认证验证接口。 华为方使用HTTPS传输协议确保信息传输通道安全,请第三方确保开发的鉴权功能具备“口令复杂度校验”、“防暴力破解”、“防DOS攻击”等安全防护能力。 引入相关依赖框架,构造请求参数请求thirdPartyClient.js和newThirdPartyClient.js ,将Token信息、租户ID、企业侧的用户ID、用户名称等信息返回云客服,请求鉴权,鉴权通过后可实现云客服网页聊天能力的轻量级接入,请参见开发集成页面。 测试与验证WEB聊天控件功能,通过客户端窗口发起在线聊天检查与座席聊天功能,请参见测试与验证。 父主题: 集成轻量级WEB聊天控件(引入Token认证方式)
  • 解决方法 跨域问题,是因为集成方的网站做了安全限制,不允许请求非本域提供的资源造成的。可通过使用负载均衡应用(如Nginx)的反向代理来解决。 图1 地址在负载均衡应用上的映射原理 即第三方页面使用JS调用时,调用本地域名下的一个服务,该服务放通到云客服的域名地址手上。 由于云客服只有识别到service-cloud,才会识别该请求,因此第三方页面的请求地址必须包含service-cloud。 以Nginx为例,整体配置要点如下: 在nginx.conf文件中添加首层服务地址,如下所示。 location /demo/ { proxy_set_header Host $host; set $Real $proxy_add_x_forwarded_for; if ($Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+)\,(.*)){ set $Real $1.$2.$3.$4; } proxy_set_header X-Real-IP $Real; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://servicestage.besclouds.com/; } demo为样例,集成方可根据需要自行定义。 servicestage.besclouds.com请以云客服提供的地址为准。 location /service-cloud/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_request_buffering off; proxy_pass https://servicestage.besclouds.com/service-cloud; } 在开发集成页面中采用如下地址进行JS请求,其中location.protocol请使用集成方的域名+上一步配置的服务名(例如demo)。 const $ContextPath = location.protocol + "/service-cloud" let serviceUrl = $ContextPath+ "/webclient/chat_client/js/thirdPartyClient.js?"+"&t=" + timestamp; let thirdUserData = {}; ......
  • 解决方法 跨域问题,是因为集成方的网站做了安全限制,不允许请求非本域提供的资源造成的。可通过使用负载均衡应用(如Nginx)的反向代理来解决。 图1 地址在负载均衡应用上的映射原理 即第三方页面使用JS调用时,调用本地域名下的一个服务,该服务放通到云客服的域名地址手上。 由于云客服只有识别到service-cloud,才会识别该请求,因此第三方页面的请求地址必须包含service-cloud。 以Nginx为例,整体配置要点如下: 在nginx.conf文件中添加首层服务地址,如下所示。 location /demo/ { proxy_set_header Host $host; set $Real $proxy_add_x_forwarded_for; if ($Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+)\,(.*)){ set $Real $1.$2.$3.$4; } proxy_set_header X-Real-IP $Real; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://servicestage.besclouds.com/; } demo为样例,集成方可根据需要自行定义。 servicestage.besclouds.com请以云客服提供的地址为准。 location /service-cloud/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_request_buffering off; proxy_pass https://servicestage.besclouds.com/service-cloud; } 在开发集成页面中采用如下地址进行JS请求,其中location.protocol请使用集成方的域名+上一步配置的服务名(例如demo)。 const $ContextPath = location.protocol + "/service-cloud" let serviceUrl = $ContextPath+ "/webclient/chat_client/js/thirdPartyClient.js?"+"&t=" + timestamp; let thirdUserData = {}; ......
  • 集成开发 此章节主要描述如何在您的系统的完成我们接续控件的集成。 登录前鉴权 同步企业系统与云客服的账号信息 您可以通过调用queryAgentInfo接口,获取可同步的座席信息,包括注册服务器信息、座席账户密码、云客服登录账号等信息,调用后将云客服登录账号与您原业务系统中的座席登录账号进行关联同步,使得在企业页面请求接续条时,能自动获取匹配的账户验证信息。 开发token生成机制与认证验证接口 开发集成页面 常见问题
  • 概述 云客服提供可被直接集成的轻量级接续条,您可以轻松的将人工座席的语音处理能力集成在员工的常用操作界面上,来填补原有客户服务系统中人工语音/视频服务渠道的缺失,无需考虑排队机、计算机电信集成平台等基础设施的构建和维护成本。 轻量级接续条提供主要的语音/视频呼叫处理和座席状态控制的功能,具有如下特点: 轻量级,容易集成到不同的平台中,不占用门户和工作台的主要页面。 易于操作,客服人员签入平台、接听来话、转移呼叫、静音、状态切换或求助等操作均可通过一次点击完成。 您可通过本手册将云客服的核心功能嵌入到第三方系统中,通过iframe的方式集成座席签入签出、接续控制的界面(即轻量级接续条),如图1和图2所示。 轻量级集成不支持同一个座席多地登录、多浏览器与多环境签入,会造成事件丢失或者异常返回。若因此出现页面异常,需要退出或关闭多地登录、多浏览器与多环境签入,再刷新页面即可恢复正常。 图1 音频通话界面 图2 视频通话界面
  • 操作步骤 调用座席软电话信息查询接口(queryAgentInfo)获取可用于同步的信息。 按以下格式要求获取URL,选择GET方式。 HTTPS方法:GET URL:http(s)://Domain Address/apiaccess/CC-Mangemant/v1/queryAgentInfo Domain Address请根据云客服实际的地址或域名进行替换。 例如,在华为公有云生产环境,请将Domain Address替换为service.besclouds.com,则调用URL为https://service.besclouds.com/apigovernance/api/oauth/tokenByAkSk HTTP协议是不安全协议,可能会对系统带来风险,不推荐使用。建议使用安全的HTTPS协议。 将x-app-key和Authorization的值按调用样例的格式输入到Header,获取所需输出参数,如图1所示。您可以通过表1和表2了解请求参数属性和返回参数属性的要求。 图1 queryAgentInfo调用 表1 RequestHeader说明 参数名 参数类型 参数位置 是否必填 说明 x-app-key string header True app标识。即您的app_key Authorization string header True 鉴权信息。为"Bearer "+鉴权接口获得的AccessToken Example { "x-app-key":XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Authorization":Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX } 表2 ResponseBody说明 参数名 参数类型 参数位置 是否必填 说明 sipServiceIp string body False 软电话注册地址,IPV4格式。 sipServicePort int body False 软电话注册端口,值为1~65535。 agents list body True 座席集合。 workNo int agents True 座席工号。 sipAccount string agents False 软电话号码。 sipPwd string agents False 软电话密码。 accountCode string agents False 云客服登录账号。 Example { "sipServiceIp":"10.100.10.10", "sipServicePort":1000, "agents": [ { "workNo": 1001, "accountCode": "11", "sipAccount": "1001", "sipPwd": "cti-1234" } ] } 同步到座席相关信息后,您可能还需要在您的系统中完成如下事项: (可选)将您业务系统中的账户与云客服座席对象做关联,在开发集成页面步骤请求云客服时需要用到关联好的账户。如果您期望企业业务系统的用户每次登录时自行选择云客服账号登录云客服,可以跳过该步骤。 (可选)为座席提供软电话号码、软电话密码以及软电话注册地址/端口号,座席需要使用这些信息登录OpenEye客户端,进行呼入呼出操作。如果您使用OpenEye以外的SIP软电话工具进行呼叫操作可以跳过该步骤。
  • 监听事件的注册和事件处理程序的执行验证 完成页面集成之后,您需要测试与验证注册监听事件、移除监听事件、回调函数和一键外呼是否能正常使用。以下以Chrome浏览器为例。在验证过程中,您可以使用Nginx服务器来模拟第三方调用基础页面,您也可以使用其他您熟悉的访问方式进行。 本地开启Nginx服务器(Nginx版本可参考nginx/Windows-1.22.0),将集成页面放到nginx目录下的html中。您也可以在nginx.conf文件中配置集成页面的路径; 打开AICC页面,将您在步骤1配好的集成页面访问地址添加到地址白名单并配置弹屏; 打开音视频工作台,在您的集成页面注册事件(这里演示的页面在打开时自动注册了相应事件,所以打开时就执行了Init事件处理程序); AICC Support Demo Page Init日志是1.3.1注册监听事件的事件处理程序输出的。 座席签入并注册监听响铃事件后,通过OpenEye客户端软件(参考OpenEye软电话安装指导)拨打配好的被叫号码; 座席来电,集成页面执行响铃事件处理程序并返回信息; AICC Support Demo Page Ringing日志是1.3.1注册监听事件的事件处理程序输出的。 父主题: 测试和验证
  • 获取身份认证方式的认证结果 AICCSupport.getVerifyResult(verifyTypeCode); verifyTypeCode是getVerifyResult方法的参数“身份认证方式编码”,用于指定要获取身份验证结果的身份认证方式。 表1 getVerifyResult输入参数说明 参数名 参数类型 参数解释 是否必填 说明 verifyTypeCode string 身份认证方式编码 是 只可以允许字母、数字和下划线 表2 getVerifyResult输出参数说明 参数名 参数类型 参数解释 是否必填 说明 verifyResult string 身份认证结果 是 枚举值。 0:未返回 1:通过 2:失败 3:异常 空字符串表示身份认证方式编码不合法
  • 背景信息 坐席工作台集成身份认证功能,在业务代表为客户查询或办理某些特定业务时,需要获取客户的身份验证授权,才可进行下一步操作。 身份验证的典型业务流程如图1所示。 业务代表接入客户电话后在音视频工作台对客户发起身份验证流程,身份验证流程由用户配置的IVR流程决定。IVR流程中需要配置用户用于身份验证的第三方接口,该接口根据随路数据中传递的参数以及用户的输入信息进行身份验证,并且返回认证结果给音视频工作台。可以根据返回的认证结果决定业务代表是否拥有为客户查询或者办理某些特定业务的操作权限。 图1 业务流程 一个简单的典型的身份认证配置的IVR流程内容如图2所示。 图2 IVR流程图
  • 二次开发接口 IVR流程传递给三方接口的body参数内容: { "calldata":{ // 随路数据 "verifyServiceNo":"88880011", // 身份认证受理号码 "verifyWorkNo":"371" // 身份认证座席工号 } } 三方接口需返回的body参数内容: calldata:{ // 随路数据 "data":{ "verifyResult":0, // 身份认证结果:0:未返回 1:通过,2:失败,3:异常 "verifyReturn1":"", // 身份认证返回数据1 "verifyReturn2":"",// 身份认证返回数据2 "verifyReturn3:"","" // 身份认证返回数据3 } } 企业开发人员基于JS OpenAPI开发企业业务系统页面用于集成到AICC座席工作台,可通过接口获取认证结果。 AICCSupport.getVerifyResult(verifyTypeCode) 结果返回对象格式: { "verifyResult":0, // 身份认证结果:0:未返回 1:验证通过,2:验证失败,3:验证异常 }
  • 前提条件 角色拥有身份认证权限 新租户的租户管理员默认拥有该权限,老租户需使用升级脚本进行升级,升级后的租户管理员也拥有该权限。拥有该权限的租户管理员可赋予该权限给其他角色。 角色拥有身份认证配置权限 新租户的租户管理员默认拥有该权限,老租户需使用升级脚本进行升级,升级后的租户管理员也拥有该权限。 角色拥有身份认证记录查询权限 新租户的租户管理员默认拥有该权限,老租户需使用升级脚本进行升级,升级后租间管理员也拥有该权限。有身份认证记录查看权限的租间管理员默认有可查看租间所有的身份认证记录的权限,拥有该权限的租户管理员可赋予该权限给其他角色。 有开启的身份认证配置
  • 请求消息 消息头 Content-Type:application/json; charset=UTF-8, Connection:keep-alive 消息体 该接口的请求消息体举例如下: { "param":"152****1028" } 该接口的请求消息体参数说明如表 1 所示。 表1 消息体参数说明 参数名称 参数类型 选取原则 说明 param string 必选 第三方查询参数。
  • 设备目标授权配置 接口 说明 PUT /v1/{user_id}/devices/{device_id}/channels/targets/authorization 批量设置通道目标授权状态,只支持好望设备 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/targets/authorization 查询设备目标授权状态,仅支持好望设备
  • 目标库 接口 说明 POST /v1/{user_id}/target/batch-delete 删除目标信息 PUT /v1/{user_id}/targets 批量修改目标信息 POST /v1/{user_id}/targets/batch-add 目标批量添加 GET /v1/{user_id}/targets/ids 按索引范围获取目标ID列表 GET /v1/{user_id}/target-groups 获取目标库分组 POST /v1/{user_id}/target-groups 新增目标库分组 PUT /v1/{user_id}/target-groups 修改目标库分组 DELETE /v1/{user_id}/target-groups 删除目标库分组 POST /v2/{user_id}/target-groups 新增目标库分组v2 PUT /v2/{user_id}/target-groups 修改目标库分组v2 DELETE /v2/{user_id}/target-groups 删除目标库分组v2 GET /v1/{user_id}/targets 按索引范围获取目标信息列表 POST /v1/{user_id}/targets 获取目标信息(IVS1800不支持) GET /v1/{user_id}/targets/count 获取目标库分组中的目标数量
  • 查询设备码流能力和码流列表 接口 说明 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/stream-ability 查询设备码流能力和码流列表 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/stream-detail 查询设备码流详情,目前仅支持好望设备 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/stream-detail 设备码流配置
  • 设备密码修改 接口 说明 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/security-key 查询设备密码状态,仅支持好望SDC直连设备 PUT /v1/{user_id}/devices/{device_id}/channels/{channel_id}/security-key 设置或修改设备密码,仅支持好望SDC直连设备
  • 巡航轨迹和预置位 接口 说明 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track/list 获取巡航轨迹列表 DELETE /v1/{user_id}/devices/{device_id}/channels/{channel_id}/preset-position 删除摄像机预置位 PUT /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track 修改摄像机巡航轨迹 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track 添加摄像机巡航轨迹 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/preset-position 添加摄像机预置位 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track 查询指定巡航轨迹详情 PUT /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track/enable 启停摄像机巡航轨迹 DELETE /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track 删除摄像机巡航轨迹 PUT /v1/{user_id}/devices/{device_id}/channels/{channel_id}/preset-position 修改摄像机预置位 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/preset-position/move 移动摄像机转到预置位 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/preset-position 查询摄像机预置位列表
  • 录像配置管理 接口 说明 PUT /v1/{user_id}/devices/channels/record-plan 批量为通道设置录像计划 POST /v1/{user_id}/devices/channels/record-plan 批量删除通道录像计划 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/record-plan 查询通道的录像计划 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/time-policy 查询通道存储时间策略 PUT /v1/{user_id}/devices/channels/record-config 批量设置通道录像参数 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/record-config 查询通道录像参数 PUT /v1/{user_id}/devices/channels/time-policy 批量设置通道存储时间策略 PUT /v1/{user_id}/devices/channels/record-alarm-plan 批量设置通道动检录像计划 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/record-alarm-plan 查询通道的动检录像计划
  • 媒体播放管理 接口 说明 POST /v2/{user_id}/devices/channels/media/live-connections 获取实况地址统一接口 GET /v2/{user_id}/devices/{device_id}/channels/{channel_id}/media/records 查询回放列表统一接口 GET /v2/{user_id}/devices/{device_id}/channels/{channel_id}/media/playback-connections 获取回放地址统一接口 POST /v1/{user_id}/media/urls/batch-delete 批量删除播放地址 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cloud-records 【旧】查询通道的云端录像列表 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cloud-records/playback-url 【旧】查询通道的云端录像回放地址 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/device-records 【旧】查询通道的前端录像列表 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/device-records/playback-url 【旧】查询通道的前端录像回放地址(仅支持国标协议) GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/device-records/web-playback-url 【旧】查询通道的前端录像回放地址 POST /v1/{user_id}/devices/channels/cloud-live/url 【旧】批量获取设备实况播放地址 POST /v1/{user_id}/devices/channels/p2p-connect/live 【旧】批量获取通道实况P2P地址(仅支持好望协议) POST /v1/{user_id}/devices/channels/p2p-connect/playback 【旧】批量获取通道录像回放P2P地址(仅支持好望协议)
  • 资源管理 接口 说明 GET /v1/{user_id}/resources 查询包周期和按需资源列表 GET /v1/{user_id}/resources/{resource_id}/channels 查询包周期或按需资源下的通道列表 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/resources 查询通道下的资源列表
  • 设备组管理 接口 说明 GET /v1/{user_id}/device-orgs/{device_org_id}/sub-orgs 查询子级设备组织 GET /v1/{user_id}/device-orgs/{device_org_id}/devices 查询企业下的组织的设备列表 PUT /v1/{user_id}/device-orgs/{device_org_id} 修改设备分组名称 POST /v1/{user_id}/device-orgs 添加设备分组 DELETE /v1/{user_id}/device-orgs/{device_org_id} 删除单个设备组 POST /v1/{user_id}/device-orgs/{device_org_id}/move-devices 移动多个设备到新的设备组 GET /v1/{user_id}/device-orgs/tree 根据设备组名称查询设备组织树(支持设备组名称模糊查询)
  • 设备管理 接口 说明 GET /v1/{user_id}/devices/{device_id} 用户根据设备ID查询设备信息详情 GET /v1/{user_id}/devices 用户查询设备列表 GET /v1/{user_id}/devices/{device_id}/gateway 查询设备网关(仅支持国标) PUT /v1/{user_id}/devices/{device_id} 修改设备信息 PUT /v1/{user_id}/devices/{device_id}/gb-account 修改国标设备账号 POST /v1/{user_id}/devices/holosens 添加好望设备 POST /v1/{user_id}/devices/gb/batch-add 批量添加国标设备 POST /v1/{user_id}/devices/batch-delete 批量删除设备
  • 云台控制 接口 说明 GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/control-lock 获取云台控制权 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/control-lock 释放云台控制权 POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/ptz/angle-spin 云台点动转动
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 ak 是 String 用户认证AK。 支持大小写字母,数字,特殊字符(-_),长度范围[1,64],获取方式参考获取user ID与下载AK/SK章节。 sk 是 String 用户认证SK。 支持大小写字母,数字,特殊字符(-_),长度范围[1,64],获取方式参考获取user ID与下载AK/SK章节。 force_update 否 boolean 强制更新标识符。 AK当前仅持有 一个AccessToken 且剩余有效期小于等于两天时,可通过此参数获取新的 AccessToken 使用;其他场景传此参数不解析。
  • 操作步骤 在文字识别控制台左侧导航栏选择“自定义OCR”。 默认进入“我的应用”页签。 图1 文字识别控制台 在“我的应用”页签下,单击“创建应用”。 进入“创建应用”页面。 图2 创建应用 您也可以单击“我的工作流”,切换至“我的工作流”页签,选择工作流并单击卡片中的“创建应用”。 根据业务需求填写“应用名称”、“应用负责人”和“应用描述”,仅支持英文、中文、数字、下划线、中划线。选择“所属行业”及工作流。 图3 创建应用 确认信息后,单击“确认”。 成功创建应用。
  • 购买套餐包开通服务 进入文字识别官网主页,单击“立即使用”,进入文字识别控制台。 在“总览”页面,选择需要使用的服务,在操作列单击“购买套餐包”,此时的计费方式采用套餐包计费,套餐包额度用完后自动转为按需计费。 图3 购买套餐包 服务开通成功后,开通状态将显示为“已开通”。 如果您需要调用对象存储服务(OBS)中的数据,请在开通服务页面进行服务授权。 图4 OBS服务授权 购买套餐包后只有调用成功才会计算调用次数,其中返回的2xx状态码表示调用成功,调用失败不计算次数。套餐包扣减规则包括计费模式、变更配置、续费、欠费类等问题请参见计费说明。 如未开通服务,直接调用OCR API会提示ModelArts.4204报错。 4.服务开通后,您可以按照官方文档数据要求,调用API或SDK步骤继续完成实际服务需求。
  • 按需计费开通服务 进入文字识别官网主页,单击“立即使用”,进入文字识别控制台。 在“总览”页面,选择需要使用的服务,执行开通操作,默认的计费方式采用按需计费。 图1 服务开通 服务开通成功后,开通状态将显示为“已开通”。 如果您需要调用对象存储服务(OBS)中的数据,请在开通服务页面进行服务授权。 图2 OBS服务授权 OCR服务开通后,可在控制台进行关闭。开通服务时,计费规则默认为“按需计费”。只有调用成功才会计费,其中返回的2xx状态码表示调用成功,调用失败不计费,详细的计费价格及规则请参见计费说明。 如未开通服务,直接调用OCR API会提示ModelArts.4204报错。
  • 提取特定字段导入Excel 本示例调用身份证识别API,并从获取到的JSON结果中,提取所需的字段,填入至Excel。 前提条件 开通身份证识别。 参考本地调用,安装OCR Python SDK。并执行pip install xlsxwriter命令安装依赖包。 登录访问密钥页面,获取AK、SK。可以新增访问密钥,或使用已有的访问密钥。访问密钥为credentials.csv文件,包含AK/SK信息。 代码示例 # -*- coding: utf-8 -*- import base64 import xlsxwriter from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkocr.v1.region.ocr_region import OcrRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkocr.v1 import * from huaweicloudsdkcore.http.http_config import HttpConfig def recognize_id_card_request(): try: request = RecognizeIdCardRequest() request.body = IdCardRequestBody( image=image_base64 ) response = client.recognize_id_card(request) return response except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) def get_credential(): return BasicCredentials(ak, sk) def get_client(): config = HttpConfig.get_default_config() config.ignore_ssl_verification = True return OcrClient.new_builder(OcrClient) \ .with_credentials(credentials) \ .with_region(OcrRegion.CN_NORTH_4) \ .with_http_config(config) \ .build() def image_to_base64(imagepath): """ 将本地图片转化为base64编码 """ with open(imagepath, "rb") as bin_data: image_data = bin_data.read() base64_data = base64.b64encode(image_data).decode("utf-8") return base64_data def response_to_execl(save_file, data): """ :param save_file: 文件名 :param data: result data """ # 处理调用API返回的result数据 keys_list = list(data["result"].keys()) values_list = list(data["result"].values()) options = {'in_memory': True} with xlsxwriter.Workbook(save_file, options) as workbook: worksheet = workbook.add_worksheet() worksheet.set_column('A1:A20', 23) worksheet.set_column('B1:B20', 100) worksheet.write_column('A1', keys_list) worksheet.write_column('B1', values_list) workbook.close() if __name__ == '__main__': # 填写访问密钥AK、SK ak = "填写AK" sk = "填写SK" # Init Auth Info credentials = get_credential() # Create OcrClient client = get_client() image_base64 = image_to_base64(r"图片的路径,例如D:\local\test.png") # request id card service response = recognize_id_card_request().to_dict() # 数据保存在execl上 response_to_execl(r"excel路径,例如D:\local\test.xlsx", response)
  • 基本概念 参照字段为模板图片和待识别图片中的公共文字部分,所有需要识别的图片中都要包含参照字段,且位置必须固定。 套件提供了自动搜索参照字段和手动框选参照字段这两种模式。 自动搜索参照字段:未手动框选任何参照字段的情况下,默认激活自动搜索参照字段模式。 手动框选参照字段:若手动框选了任意参照字段,将激活手动框选模式。 当识别图片的场景比较单一时,即只有一种模板,且参照字段不容易与其他文字混淆时,可以使用自动参照字段来简化模板制作过程,否则建议手动框选,详细步骤请参见操作步骤。
共100000条