华为云用户手册

  • IVR流程状态 IVR流程状态转换图介绍了当前IVR的流程状态和各状态之间的流转关系,IVR流程状态如图1所示。 图1 流程状态转换图 新建 流程新建完成后,其初始状态为“新建”。“新建”状态的流程可以被编辑和删除。 编辑中 编辑“新建”状态或者“未发布”状态流程的过程中,流程状态为“编辑中”,此时不能对流程进行其他任何操作,流程也不能被其他用户操作。编辑完成后的流程可以直接发布。 未发布 编辑完成、编辑中途关闭编辑页面或者编辑中出现异常情况,如断网断电导致编辑超时(默认流程编辑页面超过5分钟未发送请求)后的流程状态为“未发布”,或者取消发布处于“正式发布”或者“灰度发布”状态的流程,流程状态变为“未发布”。 正式发布 流程发布成功后的状态为“正式发布”。“正式发布”状态的流程可以被克隆、测试和取消发布。 灰度发布 流程发布成功后的状态为“灰度发布”。“灰度发布”状态的流程可以被克隆、测试、发布、取消发布以及查看详情。“灰度发布”状态的流程版本,只能发布为正式发布版本。 所有流程都可以通过“属性”查看“流程类型”和“是否被引用”信息。不同状态的流程支持的操作不同,具体说明如表1所示。 对于“新建”状态或者“未发布”状态的流程,还支持通过“属性”修改“流程类型”和“是否被引用”。当租户下已存在主流程、异常处理流程时,不可以再将“流程状态”修改为“主流程”或者“异常处理流程”。 对于正式发布和灰度发布的流程,单击“测试”,可以在“流程测试”页面手动配置操作结果,模拟流程中各个图元的执行结果,测试流程流转情况。 表1 流程状态与对应的操作 流程状态 支持的操作 新建 编辑、删除 编辑中 解锁 未发布 发布、编辑、删除 正式发布 克隆、测试、取消发布、查看 灰度发布 克隆、测试、发布、取消发布、详情、查看
  • 图元介绍 留言图元的参数如下图所示。 节点名称:在图元上展示的名称,可以根据需要自定义。 指定座席处理 指定座席工号:根据需要配置常量或流程变量,用于留言将自动分配给指定的座席工号。指定的座席工号如果不存在,留言状态将会变成分配失败。未指定座席,留言将由管理员分配。 录音文件 第一个文本框:选择保存录音文件名变量:单击输入框,在弹出的“选择变量”对话框中,根据需要选择一个全局变量或者流程变量,用于保存录音文件的名称。系统通过字符串类型的变量保存录音文件名,因此在选择变量时,您只能选择到字符串类型的变量。 第二个文本框:选择保存录音服务节点编号变量:选择安装时设置的 uap 节点(呼叫中心Pool模式下使用) 录音参数 最大录音时长:支持的最大录音时长,当到达最大录音时长后,录音结束。默认为20s,表示最多支持20s的录音。 播放“哔”音:勾选复选框,表示在录制留言前播放一声“哔”音,然后开始录音。否则直接录音。 默认以“#”号键结束录音:留言结束后,输入“#”号键结束录音。当用户主动挂机后,直接调用结束图元。 记录留言信息:勾选复选框,表示留言信息会保存到留言记录中,否则在留言管理中将查询不到留言信息。 单击“保存”,保存当前页配置的所有参数。保存录音时,系统自动查询当前租户的录音路径信息,并拼接上当前日期和随机数组成文件名,例如:录音盘符:/VDNID/record/20190424/20190424153126-record.wav ,录音文件默认wav格式文件。 当删除租户时,客户服务云系统会自动清理掉租户下的所有录音文件。 录音文件保存周期与租户开户时的配置的录音保存周期一致。定时任务每天定时扫描录音文件,定时清理超过保存周期的录音文件。
  • 配置智能座席助手流程 系统预置的智能座席助手流程如下所示: 该流程实现如下功能: 在Greeting应答图元,向客户播放欢迎提示语。该语音文件需要自定义,语言模板内容包括中文和英文。 在1处的业务接口调用图元中,根据每次交互记录,将客户端发送的文本信息采用空格间隔,并记录该信息是客户说的还是座席说的。 在3处,根据每次交互记录,对通话内容进行实时质检 在语义识别图元,对本次交互的信息进行识别: 如果存在敏感词,则触发敏感词提醒,进入4处的业务接口调用分支将敏感词赋值到流程变量中. 如果不存在敏感词,且匹配到意图,进入5处的业务接口调用分支,用匹配的意图名进行问答接口调用获取推荐答复 如果出现超时,未知意图等错误时,进入2处的业务接口调用分支,直接用本次的交互信息进行问答接口调用获取推荐答复 应答图元将获取的推荐答复和敏感词返回输出。 如果为客户,敏感词置空;如果是座席则不置空,进入下一轮循环。 根据上述描述,配置人员需要修改欢迎语的语音模板、在业务接口调用图元中调用具体的推荐、知识获取接口,来实现真实的座席助手功能。 修改欢迎语资源模板 修改接口调用图元 修改语义识别后返回给调用方的应答模板 父主题: 配置智能座席助手
  • 参数介绍 菜单图元的参数如下图所示。 图1 菜单配置 图2 高级配置 图元参数说明如下: 节点名称:画布上展示的名称,可以根据需要自定义。 语音提示:当前支持“语音”、“ 文字转语音 ”和“视频”三种类型的语音提示。通过单击语音类型前的单选按钮可以选择对应的语音类型。 语音文件选择:wav格式语音文件。目前UAP仅支持:8bit, 8000Hz, 64kbps, 单声道的wav格式语音文件。 文字转语音:通过文字转语音方式生成的 TTS 放音文件。您可以通过开启TTS高级设置,设置放音参数。单击下拉列表框的“”可以选择音效和音速。若不开启,默认音效:女生朗读,音速:低速朗读,无TTS扩展参数。 音效:选择放音音效,可选男生朗读和女生朗读。 音速:选择放音速度,可选低速朗读、中速朗读和高速朗读。 TTS扩展参数:根据需要定义,字符串长度不超过200。 视频:3gp格式的视频文件,且文件大小不超过5MB。 放音文件:系统自动根据已选择的语音类型,筛选当前租户下已审核通过的语音文件、TTS放音或者视频,并将符合条件的文件展示在下拉列表框中。您通过单击下拉列表框的“”可以选择。 菜单按键配置:流程中提供的服务选项,每个按键对应一个服务项。通过单击“新增”可以添加多个服务项。 按键:键盘或者屏幕中可以选择到的数字键或字符键,如1、2、3、*、#等。 描述:按键对应的服务项介绍,描述信息可以展示在菜单中。例如:按键1 查询会员信息,表示选择按键1后可以查询会员信息。 操作:通过新增操作可以增加服务项,通过删除操作可以删除服务项,通过上移、下移操作可以调整服务项的顺序。 收号等待时间:接收外部输入信息支持的等待时间。当用户停止输入的时间超过设定的“收号等待时间”,将记录为一次失败,并自动执行“收号超时”,继续等待收号。 最大失败次数:允许的外部信息输入的最大失败的次数。当收号出错,将记录为一次失败,并自动执行“收号错误”,继续等待收号。 高级配置:单击“高级配置+”可以展开高级配置区域,单击“收起”可以隐藏高级配置区域。 收号错误:通过打开开关“”,启用收号错误后的放音能力。结合“最大失败次数”,在最大失败次数范围内收号失败后播放语音提示。 收号超时:通过打开开关“”,启用收号超时后的放音能力。结合“收号等待时长”,在超过等待时长还未接收到信号后播放语音提示。 高级配置中的“收号错误”、“收号超时”默认不启用。当不启用时,失败后将重新播放放音收号图元配置的语音提示。 当累计的失败次数超过“最大失败次数”,将执行通用的失败出口。 所有的参数配置完成后,单击“保存”。
  • 操作步骤 单击“”,支持将通话中的会话转移给其他座席。转移的类型分为按技能队列(多媒体类型)转移和按座席(多媒体座席)转移,转移方式分为成功转和释放转。会话转移时,支持查看客服代表的状态和账号。 成功转:被转入方客服代表接通会话后,转出方客服代表才可释放来话。否则,系统提示转出失败。 释放转:客服代表将会话转移,不管是否成功,转出方客服代表均立即释放呼叫。 图1 转技能队列界面 图2 转座席界面 :表示语音或视频通话中。 :表示在线交谈通话中。
  • 操作步骤 选择流程状态为“新建”或者“未发布”的流程,展开流程信息,单击“编辑”。 画布初始化时默认展示一个开始图元和一个结束图元。开始图元不可以删除,结束图元可以删除也可以增加多个,需要保证流程保存时至少有一个结束图元。 如图2所示,拖拽图元到画布中并配置图元参数。 将鼠标移动到源图元,当图元上出现虚框时鼠标向目标图元移动,可以连接两个图元。除“子流程”图元,其他所有图元都必须有一个默认的连线,且连线的起点、终点都必须在图元上。关于图元介绍请参见图元参考。 图2 编辑流程 编辑完成,单击“保存”,并在成功的提示框中单击“确定”,关闭流程编辑页面。 流程编辑过程中可以随时通过单击保存已编辑的流程。当确认流程全部编辑完成后,需要关闭流程编辑页面,才能在流程列表中发布流程。
  • 背景信息 在编辑流程前,建议您先了解流程编辑页面的布局和各个区域实现的能力。流程编辑界面如图1所示。 图1 流程编辑界面 表1 流程编辑界面介绍 区域编号 区域名 区域说明 1 按钮 可对流程进行取消、保存草稿、保存、发布操作。 2 图元区 通过拖拽图元到流程画布区编辑流程。 3 画布区 IVR流程编辑区域。 4 图元参数区 对应展示当前选中的图元,用于编辑图元参数。 5 画布工具栏 提供重置视图、放大、缩小、全屏、撤销、重做、删除等画布的操作功能 6 变量区 包含流程、全局、系统、IVR请求、意图变量的基本信息,支持鼠标拖拽变量进图元参数区的变量输入框,支持查询筛选。变量输入框如图所示 意图变量只能在智能IVR使用。
  • 图元参数 放音图元的参数如下图所示。 图元参数说明如下: 节点名称:在图元上展示的名称,可以根据需要自定义。 语音提示:当前支持“语音”、“文字转语音”、“视频”和“变量音”四种类型的语音提示。通过单击语音类型前的单选按钮可以选择对应的语音类型。 语音:wav格式语音文件。目前UAP仅支持8khz * 8bit的wav 格式语音文件。 文字转语音:通过文字转语音方式生成的TTS放音文件, 需要已经配置TTS通道。您可以通过开启TTS高级设置,设置放音参数。单击下拉列表框的“”可以选择音效和音速。若不开启,默认音效:女生朗读,音速:低速朗读,无TTS扩展参数。 音效:选择放音音效,可选男生朗读和女生朗读。 音速:选择放音速度,可选低速朗读、中速朗读和高速朗读。 TTS扩展参数:根据需要定义,字符串长度不超过200。 您使用TTS功能时,需要联系系统管理员登录客户服务云为您的租间配置TTS服务器。 视频:3gp格式的视频文件,且文件大小不超过5MB。 放音文件:系统自动根据已选择的语音类型,筛选当前租户下已审核通过的语音文件、TTS放音或者视频,并将符合条件的文件展示在下拉列表框中。您通过单击下拉列表框的“”可以选择。 变量音:通过设置语种、类型和内容自定义放音。 语种:选择放音语种。 变量音选择语种非普通话和非英语时,需要联系运维人员定制语法包和语音文件。 类型:选择放音类型,支持电话号码、数字、时间(hh:mm:ss)、日期(yyyymmdd)、价格。 内容:选择放音内容,请选择全局变量(GLOBAL.*)或流程变量(FLOW.*)定义内容。 如果类型选择为时间和日期,选择的变量格式需和括号中一致。 单击“保存”,保存当前页配置的所有参数。
  • 内置函数 使用如下内置函数进行多重运算时,子表达式要加括号。 条件表达式中,使用==判断,仅适用于字符和数字,不适用于对象和列表(null判断除外)。 表1 内置列表 函数名 描述 length() 获取字符串长度。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,您可以通过如下表达式获取流程变量Answer的字符串长度:FLOW.Answer.length(),结果为5。 size() 当变量为数组和对象时获取其中的元素个数。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:[1,2,3,4,5],您可以通过如下表达式获取流程变量Answer的字符串长度:FLOW.Answer.size(),结果为5。 说明: 流程变量定义的对象和数组,若没有设置缺省值也没有赋值,则值不会为null,且size为0。 divideString(index,“分割符”) 字符串分割。 index:从1开始,表示取第几个字符。 分割符:若分隔符为"."、"$"、"+"、"|" 和 "*" 等正则特殊字符,需要使用方括号包装,例:FLOW.XXX.divideString(index,"[+]") 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:{"UniqueID":"123","ServiceID":"1234","orderid":"12345"},如果您需要获取流程变量Answer的"orderid":"12345",请使用如下表达式:FLOW.Answer.divideString(3,“,”) 说明: 列表或对象使用中括号或者点取值后,若需要调用divideString内置函数,则应先将值缓存至字符型流程变量,再进行调用。 substring(beginIndex, endIndex) 字符串截取。 beginIndex:从0开始,0表示第1个字符,表示从第几个字符开始截取。 endIndex:表示到第几个字符结束截取,不包含endIndex对应的字符。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:"orderid":"12345",如果您需要获取流程变量Answer的12345,请使用如下表达式:FLOW.Answer.substring(11, 16) startsWith("xxx") 判断变量是否以某个字符串开头。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,如果您需要判断流程变量Answer是否以字符a开头,请使用如下表达式:FLOW.Answer.startsWith("a"),结果为是,通常用于条件表达式。 endsWith("xxx") 判断变量是否以某个字符串结尾。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:abcde,如果您需要判断流程变量Answer是否以字符e结尾,请使用如下表达式:FLOW.Answer.endsWith("e"),结果为是,通常用于条件表达式。 null值的判断 判断变量是否等于null值。 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:null。如果您需要判断流程变量Answer是否为null,请使用如下表达式:FLOW.Answer==null或FLOW.Answer!=null 加法运算:+ 可通过加法运算进行如下运算: 字符串+字符串=字符串拼接 字符串+整型=字符串拼接 整型+整型=加法计算 使用场景示例:例如有一个流程变量Str,FLOW.Str的值为:“123”,有一个流程变量Num,FLOW.Num的值为:123, 如果您使用如下表达式:FLOW.Str+FLOW.Num,结果为字符串:“123123”。 除法运算:/ 对数字进行除法。 使用场景示例:例如有一个流程变量Num1,一个流程变量Num2,如果您使用如下表达式:FLOW.Num1/FLOW.Num2,将其结果赋值给另外一个流程变量result,要求流程变量result必须为浮点型。 put() 给对象添加属性。 使用场景示例:例如有一个对象型的流程变量FLOW.person值为{"name":"Jack"},那么可以在缓存变量处,通过FLOW.person.put("age","18")为FLOW.person添加age属性。同时,将结果{"name":"Jack","age":"18"}缓存到任何对象型的变量。若有一个整型的流程变量FLOW.age值为18,也可通过FLOW.person.put("age",FLOW.age)的方式,添加结果为{"name":"Jack","age":18}。 说明: FLOW.person.put(key,value),key和value都可以为变量名。若value为常量,则不管是否加了双引号,都会默认将属性值设置为字符型,若value为变量,则以变量的类型为准。 add() 给列表添加元素。 使用场景示例:例如有一个列表型的流程变量FLOW.arrayList值为[1],那么可以在缓存变量处,通过FLOW.arrayList.add(2)为FLOW.arrayList的末尾添加一个值为"2"的元素。同时,将结果[1,"2"]缓存到任何列表型的变量。若有一个整型流程变量FLOW.num值为"18",也可通过FLOW.arrayList.add(FLOW.num)的方式,添加结果为[1,18]。 说明: FLOW.arrayList.add(value),value可以为变量名。若value为常量,则不管是否加了双引号,都会默认将值设置为字符型,若value为变量,则以变量的类型为准。 表2 字符串操作方法 函数名 描述 strSplit() 根据给定的分割符拆分字符串。 函数返回对象为数组类型,保存拆分后的字符串数组。包含两个参数:第一个为待拆分的字符串,第二个为分割符。 使用场景示例: 例如有一个字符型的流程变量FLOW.str值为"aa,cc,dd,ee",那么可以在方法调用处,通过调用strSplit方法,根据给定的分割符“,”拆分字符串。同时,将分割结果缓存到任何列表型的变量(FLOW.array)。该方法调用的参数支持变量赋值和手动赋值。方法参数填入时不需要加引号(下同)。 strSubstring() 提取子字符串。 函数返回对象为字符串类型,为截取的子字符串。包含三个参数:第一个为待截取的字符串,第二个为开始下标(整型),第三个为结束下标(整型)。(下标从0开始,不包含结束下标字符)。 使用场景示例: 例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strSubstring方法,根据给定的下标截取子字符串。同时,将截取结果缓存到任何字符型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 strIndex0f() 获取第一次出现指定字符串的下标。 函数返回对象为下标值,整型。包含两个参数:第一个为待搜索的字符串,第二个为指定的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strIndex0f方法,获取第一次出现指定字符串的下标。同时,将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 strStartsWith() 检测字符串是否以指定的前缀开始。 函数返回对象为检测结果,整型 0/1。包含两个参数:第一个为待检测的字符串,第二个为指定的前缀字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strStartsWith方法,检测字符串是否以指定的前缀开始。同时,将检测结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 strEndsWith() 检测字符串是否以指定的后缀结束。 函数返回对象为检测结果,整型 0/1。包含两个参数:第一个为待检测的字符串,第二个为指定的后缀字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str值为"abcdef",那么可以在方法调用处,通过调用strEndsWith方法,检测字符串是否以指定的后缀结束。同时,将检测结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 strParseJSON() 将json字符串转换为对象。 函数返回对象为转换之后的json对象,包含一个参数:待转换的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.strJson1值为Json格式的字符串 {"a":"1","b":"2"},那么可以在方法调用处,通过调用strParseJSON方法,将字符串转成对象返回。同时,将结果缓存到任何对象类型的变量(FLOW.obj1)。该方法调用的参数支持变量赋值和手动赋值。 strParseInt() 将字符串转换为整型数字。 函数返回对象为转换之后的整型数字,包含一个参数:待转换的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str1值为 "11",那么可以在方法调用处,通过调用strParseInt方法,将字符串转成整形数字返回。同时,将结果缓存到任何整型的变量(FLOW.int1)。该方法调用的参数支持变量赋值和手动赋值。 strParseFloat() 将字符串转换为浮点型数字。 函数返回对象为转换之后的浮点型数字,包含一个参数:待转换的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str1值为 "0.56",那么可以在方法调用处,通过调用strParseFloat方法,将字符串转成浮点型返回。同时,将结果缓存到任何浮点型的变量(FLOW.float1)。该方法调用的参数支持变量赋值和手动赋值。 strLength() 获取字符串长度。 函数返回对象为字符串的长度,整型。包含一个参数:待计算长度的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str1值为"qwer",那么可以在方法调用处,通过调用strLength方法,检测字符串的长度。同时,将结果缓存到任何整型的变量(FLOW.int1)。该方法调用的参数支持变量赋值和手动赋值。 strToUpperCase() 将字符串小写字符转换为大写。 函数返回对象为转换之后的字符串,包含一个参数:待转换的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str1值为"qwer",那么可以在方法调用处,通过调用strToUpperCase方法,将字符串的所有字符转换为大写。同时,将结果缓存到任何整型的变量(FLOW.str1)。该方法调用的参数支持变量赋值和手动赋值。 strToLowerCase() 将字符串大写字符转换为小写。 函数返回对象为转换之后的字符串,包含一个参数:待转换的字符串。 使用场景示例: 例如有一个字符型的流程变量FLOW.str1值为"QWER",那么可以在方法调用处,通过调用strToLowerCase方法,将字符串的所以字符转换为小写。同时,将结果缓存到任何整型的变量(FLOW.str1)。该方法调用的参数支持变量赋值和手动赋值。 表3 数组操作方法 函数名 描述 arrayAdd() 向数组中添加一个元素。 函数返回对象为添加的结果,如果添加成功返回1,否则返回0。包含三个参数:第一个为待添加的数组,第二个为添加的位置(默认尾部),第三个为添加的元素;该函数将修改待添加的数组。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[1,2,3,4],那么可以在方法调用处,通过调用arrayAdd方法,为FLOW.array添加元素,第二个参数可以指定添加的位置(索引)。同时,将添加结果缓存到任何整型的变量(FLOW.result),添加成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[1,2,3,4,5],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 arrayAddAll() 向数组中添加另一个集合的所有元素。 函数返回对象为添加的结果,如果添加成功返回1,否则返回0。包含三个参数:第一个为待添加的数组,第二个为添加的位置(默认尾部),第三个为添加的元素;该函数将修改待添加的数组。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[1,2,3,4]和FLOW.array2值为[5,6,7,8],那么可以在方法调用处,通过调用arrayAddAll方法,为FLOW.array添加另一个集合中的元素,第二个参数可以指定添加的位置(索引)。同时,将添加结果缓存到任何整型的变量(FLOW.result),添加成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[1,2,3,4,5,6,7,8],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 arrayContains() 判断元素是否在数组中。 函数返回对象为判断的结果,如果包含结果返回1,否则返回0。包含两个参数:第一个为待检测的数组,第二个为待判断的元素。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayContains方法,判断所给定的元素是否包含在FLOW.array变量中。同时,将返回结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 arrayGet() 通过索引值获取数组中的元素。 函数返回对象为数组的元素,包含两个参数:第一个为待使用的数组,第二个为数组下标。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayGet方法,从FLOW.array变量获取给定下标的值。同时,将返回结果缓存到给定的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 arrayRemoveIdx() 删除数组中的指定下标元素。 函数返回对象为删除的结果,如果删除成功返回1,否则返回0。包含两个参数:第一个为待使用的数组,第二个为删除数组下标。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayRemoveIdx方法,删除FLOW.array变量指定下标的元素。同时,将删除结果缓存到任何整型的变量(FLOW.result),删除成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[a,b,d],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 arrayRemoveAllIdx() 删除数组中指定下标集合对应的元素。 函数返回对象为删除的结果,如果删除成功返回1,否则返回0。包含两个参数:第一个为待使用的数组,第二个为指定集合。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f]和FLOW.indexArray值为[2,3,4],那么可以在方法调用处,通过调用arrayRemoveAllIdx方法,为FLOW.array删除存在另一个集合中的索引对应的值,第二个参数可以指定删除的索引集合。同时,将删除结果缓存到任何整型的变量(FLOW.result),删除成功后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[a,b,f],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 说明: FLOW.indexArray为第一个列表型变量FLOW.array的索引集合,只支持非负整数,且集合中的值不得超过FLOW.array的最大索引值。 arrayClear() 删除数组中的所有元素。 函数返回对象为void,输入框灰化不可编辑。包含一个参数:待清理的数组。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayClear方法,为FLOW.array删除数组中的所有元素。同时,调用方法后将修改FLOW.array变量的值并存入缓存中,此时FLOW.array的值为[],直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值。 arraySize() 获取数组的长度。 函数返回对象为数组长度,整型。包含一个参数:为待计算长度的数组。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f],那么可以在方法调用处,通过调用arraySize方法,获取FLOW.array数组的长度。同时,将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 arraySubList() 截取并返回数组中的一部分。 函数返回对象为子数组,包含三个参数:第一个为待截取的数组,第二个为截取起始位置,第三个为截取结束位置。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d,e,f],那么可以在方法调用处,通过调用arraySubList方法,截取FLOW.array数组中的一部分。同时,将截取结果缓存到任何列表型的变量(FLOW.subArray),截取到的值FLOW.subArray为[c,d,e],截取的区间为左闭右合区间。该方法调用的参数支持变量赋值和手动赋值。 arrayJoin() 将数组转成字符串。 函数返回对象为转换后的字符串。包含两个参数:第一个为待转换的数组,第二个为连接字符串。 使用场景示例: 例如有一个列表型的流程变量FLOW.array值为[a,b,c,d],那么可以在方法调用处,通过调用arrayJoin方法,将数组中的元素通过给定的符号转成字符串。同时,将转换结果缓存到任何字符型的变量(FLOW.result),下方示例处返回结果值为a=b=c=d。该方法调用的参数支持变量赋值和手动赋值。 表4 增加对Map的操作方法 函数名 描述 mapPut() 向map中添加一个元素。 函数返回对象逻辑为如果key不存在,则返回null,如果存在则返回原先被替换的value值,对象类型。函数包含三个参数:第一个为待添加的map,第二个为key(仅支持字符串类型),第三个为添加的元素。 使用场景示例: 例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapPut方法,为FLOW.person添加元素值。同时,将添加结果缓存到变量(FLOW.result),添加成功后将修改FLOW.person变量的值并存入缓存中,此时FLOW.person的值为{"name":"Jack","sex":"boy","age":"25"},直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 说明: 对于手动赋值的一个对象型的变量,输入框参数值处不能使用双引号,通过参数支持的流程变量则不同,可参照上方用例 如果要向对象型变量中添加一个列表数据,则第三个参数只能使用预先定义好的变量,不可使用输入框直接输入数组,输入框输入默认为字符串类型。 mapGet() 获取map中指定键映射的值。 函数返回对象为指定键映射的值。函数包含两个参数:第一个为待处理的map,第二个为key(仅支持字符串类型)。 使用场景示例: 例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapGet方法,获取map中指定键映射的值。同时,将获取结果缓存到变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 mapRemove() 删除map中指定键值对。 函数返回对象为此映射先前与该键关联的值;如果该映射不包含该键的映射,则返回null。包含两个参数:第一个为待处理的map,第二个为key(仅支持字符串类型)。 使用场景示例: 例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapRemove方法,删除map中指定键值对。同时,将删除结果缓存到变量(FLOW.result),删除后将修改FLOW.person变量的值并存入缓存中,直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值和手动赋值。 mapClear() 清空map的所有键值对。 函数返回对象为void,输入框灰化不可编辑。包含一个参数:待清理的map。 使用场景示例: 例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapClear方法,清空map的所有键值对。同时,调用方法后将修改FLOW.person变量的值并存入缓存中,直到该流程结束或者再一次修改它的值。该方法调用的参数支持变量赋值。 mapSize() 获取map的所有key的数量。 函数返回对象为map中key的数量,整型。包含一个参数:为待计算数量的map。 使用场景示例: 例如有一个对象型的流程变量FLOW.person值为{"name":"Jack","sex":"boy"},那么可以在方法调用处,通过调用mapSize方法,获取map的所有key的数量。同时,调用方法后将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值。 表5 增加对日期处理的操作方法 函数名 描述 offsetMonth() 按月偏移。 返回对象为字符串类型,保存偏移后的数据。 方法包含两个参数:第一个为待偏移的时间变量,字符串类型,格式为yyyyMM,如:202308,第二个为偏移数,整型,可以为负值,例如-6代表将源字符串向前推移6个月。 使用场景示例: 例如有一个字符串的流程变量FLOW.date值为"202308",那么可以在方法调用处,通过调用offsetMonth方法,获取偏移后的日期。同时,调用方法后将获取结果缓存到任何整型的变量(FLOW.result)。该方法调用的参数支持变量赋值。 offsetHour() 按小时偏移。 返回对象为字符串类型,保存偏移后的数据。 方法包含两个参数:第一个为待偏移的时间变量,字符串类型,格式为yyyyMMddHHmmss,如:20230808122020,第二个为偏移数,整型,可以为负值,例如-6代表将源字符串向前推移6个小时。 使用场景示例: 例如有一个对象型的流程变量FLOW.date值为"20230831165801",那么可以在方法调用处,通过调用offsetHour方法,获取偏移后的小时。同时,将获取结果缓存到变量(FLOW.result)。该方法调用的参数支持变量赋值和手动赋值。 父主题: 相关参考
  • 图元 流程图绘制时,有哪些小窍门? 拖动图元时,您可观察该图元与画布上已有图元上生成的标线,根据标线提示实现图元对齐。 将图元拖到画布后,再单击拖动图元。 缓存对象在一个图元中不能重复,缓存变量名不能重复,否则将产生覆盖,以最新的缓存变量名为准。 开始图元 机器人回复图元 子流程图元 结束图元 音视频切换 放音 放音收号 语种选择图元 录制采集图元 语义识别图元 菜单配置 呼叫转移图元 错误次数清零图元 分支判断图元 逻辑循环图元 变量赋值图元 规则校验V2图元 时间选择图元 接口调用图元 数据表图元 存储过程图元 信息查询图元 用户级别图元 留言 短信 满意度调查 按键识别图元(过时图元,不建议使用) 规则校验图元(过时图元,不建议使用) 日期处理图元(过时图元,不建议使用) 短信发送图元(过时图元,不建议使用) JSON数据调用图元(过时图元,不建议使用) 复合图元 数字人回复图元 图元间的连线 父主题: 相关参考
  • 参数介绍 菜单图元的参数如下图所示。 图1 菜单配置 图2 高级配置 图元参数说明如下: 节点名称:画布上展示的名称,可以根据需要自定义。 语音提示:当前支持“语音”、“文字转语音”和“视频”三种类型的语音提示。通过单击语音类型前的单选按钮可以选择对应的语音类型。 语音文件选择:wav格式语音文件。目前UAP仅支持:8bit, 8000Hz, 64kbps, 单声道的wav格式语音文件。 文字转语音:通过文字转语音方式生成的TTS放音文件。您可以通过开启TTS高级设置,设置放音参数。单击下拉列表框的“”可以选择音效和音速。若不开启,默认音效:女生朗读,音速:低速朗读,无TTS扩展参数。 音效:选择放音音效,可选男生朗读和女生朗读。 音速:选择放音速度,可选低速朗读、中速朗读和高速朗读。 TTS扩展参数:根据需要定义,字符串长度不超过200。 视频:3gp格式的视频文件,且文件大小不超过5MB。 放音文件:系统自动根据已选择的语音类型,筛选当前租户下已审核通过的语音文件、TTS放音或者视频,并将符合条件的文件展示在下拉列表框中。您通过单击下拉列表框的“”可以选择。 菜单按键配置:流程中提供的服务选项,每个按键对应一个服务项。通过单击“新增”可以添加多个服务项。 按键:键盘或者屏幕中可以选择到的数字键或字符键,如1、2、3、*、#等。 描述:按键对应的服务项介绍,描述信息可以展示在菜单中。例如:按键1 查询会员信息,表示选择按键1后可以查询会员信息。 操作:通过新增操作可以增加服务项,通过删除操作可以删除服务项,通过上移、下移操作可以调整服务项的顺序。 收号等待时间:接收外部输入信息支持的等待时间。当用户停止输入的时间超过设定的“收号等待时间”,将记录为一次失败,并自动执行“收号超时”,继续等待收号。 最大失败次数:允许的外部信息输入的最大失败的次数。当收号出错,将记录为一次失败,并自动执行“收号错误”,继续等待收号。 高级配置:单击“高级配置+”可以展开高级配置区域,单击“收起”可以隐藏高级配置区域。 收号错误:通过打开开关“”,启用收号错误后的放音能力。结合“最大失败次数”,在最大失败次数范围内收号失败后播放语音提示。 收号超时:通过打开开关“”,启用收号超时后的放音能力。结合“收号等待时长”,在超过等待时长还未接收到信号后播放语音提示。 高级配置中的“收号错误”、“收号超时”默认不启用。当不启用时,失败后将重新播放放音收号图元配置的语音提示。 当累计的失败次数超过“最大失败次数”,将执行通用的失败出口。 所有的参数配置完成后,单击“保存”。
  • 问题分析 放音收号图元不支持*号键,如果想实现收号或返回上一层菜单,需要结合菜单配置图元和放音收号图元共同完成。菜单配置图元收录手机号码第一位数字1,剩余号码由放音收号图元完成收号。 图1为菜单配置图元和放音收号图元共同完成收录手机号码功能的流程样例,当用户按键1后,由放音收号完成剩余手机号的收录。此时,放音收号收录的首个按键相当于整个手机码的第二位(第一位已被菜单配置收录)。因此放音收号首个按键的超时视为位间超时,由收号超时时间控制,不再由收号等待时间和最大失败次数控制。因此,放音收号按键超时后,会完成收录已按键的号码,并进入下一图元。如果没有按键,也会进入下一图元,不会进入放音收号图元的高级配置中的收号超时配置。 图1 放音收号图元和菜单配置图元共同完成收号。
  • 操作步骤 选择流程状态为“新建”或者“未发布”的流程,展开流程信息,单击“发布”,进入发布配置页面。 选择发布方式,如下图所示,单击“确认”。 流程发布支持灰度发布和正式发布两种发布方式。同一个流程,只能同时存在一个正式发布版本和一个灰度发布的版本。 流程发布成功后,根据选择的发布方式,其状态也对应显示为“灰度发布”或者“正式发布”。 IVR流程的两种发布方式介绍如下: 灰度发布:需要配置“灰度规则”,在下拉列表框中选择当前租户下已配置的灰度规则。灰度发布的流程,在语音转IVR流程时只适用于匹配到灰度规则的号码。 正式发布:正式发布的流程,在语音转IVR流程时适用于所有的号码 。 发布以后,系统会自动分配一个流程接入码给已发布的流程。 “正式发布”和“灰度发布”状态的流程都支持克隆,通过克隆可以配置多个流程版本。流程创建完成后的初始版本为V1.0版本,每次克隆操作会在当前版本基础上增加0.1,例如V1.1版本。 同一个流程,只能同时存在一个正式发布版本和一个灰度发布的版本。发布克隆的版本时,会用当前版本对应替换已有的正式发布版本或者灰度发布版本。 正式发布和灰度发布时,必须有一个已发布的异常处理流程。 取消异常处理流程发布,必须没有已发布或灰度发布的流程。 异常流程可以灰度发布。
  • 请求入参 表1 参数 类型 是否必选 描述 user String 必选 发起问题的用户ID。 sentence String 必选 需要进行推荐FAQ匹配的句子。长度不超过1024个字符。 language String 必选 语言。 当前支持如下四种: en_US:英语 ar:阿拉伯语 es_ES:西班牙语 zh_CN:中文 fr_FR:法语 threshold Double 可选 FAQ置信度阈值。 缺省0。如果出现数字的话,系统仅返回置信度大于该值的FAQ。
  • 请求出参 参数 类型 描述 returnCode String 返回码 returnMsg String 返回信息 params LangIdOutputParams 语种识别结果 单个LangIdOutputParams的定义如下: 参数 类型 描述 language String 语种,参考取值: zh_CN en_US (以下为小语种,需要配套下载小语种识别的模型) ar es_ES pt_BR th_TH fr_FR score float 置信度
  • 步骤4:更改授权设置(可选) iDME会根据部署应用时已绑定的组织自动在OrgID中创建应用,并授权应用给组织中的全部成员,即应用的“可用成员范围”默认被设置为“全员可用”。 本步骤仅指导您如何在OrgID中使用华为账号将应用的“可用成员范围”从“全员可用”更改为“自定义人员范围”,更改后仅自定义人员可登录应用运行态。如需了解更多相关操作,详细请参考授权管理配置。 登录OrgID控制台。 选择进入已创建组织的管理中心。 选择左侧导航栏的“应用管理”。 在“全部应用”页签,单击待修改的应用操作列的“配置”。 图3 配置应用 单击“授权管理”页签,进入授权管理界面。 单击“授权设置”,首次更改应用授权设置。 在“授权设置”界面中选择被授权成员信息并勾选“我已阅读并同意勾选步骤”,单击“下一步”。 图4 授权设置 选择可用成员范围,将“全员可用”更改为“自定义人员范围”。 选择指定的部门与人员或者用户组后,单击“确认”。 图5 更改授权设置
  • 步骤1:创建组织 本步骤仅指导您如何在iDME控制台中使用华为账号创建组织。如需了解更多相关组织操作,详细请参考组织管理。 登录iDME控制台。 在左侧导航栏中,单击“组织管理”,进入组织管理页面。 在“我的组织”页签下,单击“创建组织”,弹出创建组织窗口。 输入组织名称,单击“下一步”。 设置组织的域名。 输入组织简称,可使用2~30位字母、数字或它们的组合,如abc,后缀名为固定的.orgid.top,如图2所示。单击“下一步”。 图2 设置组织域名 设置组织域名后,管理员为组织创建成员时,成员的管理式华为账号会默认带有固定域名后缀,具体显示为填写信息+固定组织域名后缀。如设置的组织域名为abc.orgid.top,输入的成员账号为“zhangsan01”,那么创建成功的账号名为“zhangsan01@abc.orgid.top”。OrgID支持使用自有域名,可在域名管理中添加域名并在创建成员时选择账号后缀的域名。 阅读“管理式华为帐号”相关声明,单击“同意”。 组织创建成功,关闭弹窗。
  • 道路运输从业资格证识别 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在15px到8192px之间。 图像中识别区域有效占比超过80%,保证整张表格及其边缘包含在图像内。 支持图像任意角度的水平旋转。 目前不支持复杂背景(如户外自然场景、防伪水印等)和表格线扭曲图像的 文字识别 。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 发票验真 支持增值税专用发票、增值税普通发票、增值税普通发票(卷式)、增值税电子专用发票、增值税电子普通发票、增值税电子普通发票(通行费)、二手车销售统一发票、机动车销售统一发票、 区块链 电子发票和全电发票,共计10种发票信息核验。 每份发票每天最多可查验5次。可查验最近5年内(国家税务总局)增值税发票管理系统开具的发票。 税务局数据同步有时延,建议当天新开的发票在24小时后查询。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 驾驶证识别 只支持中国大陆驾驶证纸质版本及交管12123提供的电子驾驶证版本识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在100到8000px之间。 图像中驾驶证区域有效占比超过50%,保证整张驾驶证内容及其边缘包含在图像内。 支持图像中驾驶证任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的驾驶证长宽比与实际驾驶证相差不超过10%。 能处理反光、暗光、防伪标识等干扰的图片但影响识别精度。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 护照识别 支持中国大陆护照的全字段识别。 支持含有完整机读码的中国-港澳台地区及外国护照识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在15到8192px之间。 图像中护照首页区域有效占比超过25%,保证护照首页内容及其边缘包含在图像内。 支持图像中护照任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的护照长宽比与实际护照相差不超过10%。 能处理反光、暗光等干扰的图片但影响识别精度。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 哥伦比亚身份证 支持哥伦比亚身份证的识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式图片。 图像各边的像素大小在15px到8000px之间。 图像中身份证区域有效占比超过80%,保证整张身份证内容及其边缘包含在图像内。 支持图像中身份证任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的身份证长宽比与实际身份证相差不超过10%。 能处理反光、暗光等干扰的图片但影响识别精度。 目前只支持识别单张身份证的正面或者反面。
  • 银行回单识别 支持JPEG、JPG、PNG、BMP、TIFF、PDF格式,多页PDF默认识别第一页。 图像各边的像素大小在15px到8192px之间。 支持同时返回单张图像中存在的多张回单识别结果。 图像中key值对应的value值为空时,不会返回对应的键值对。 目前不支持复杂背景(如户外自然场景、防伪水印等)和文字扭曲图像的文字识别。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 手写文字识别 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在15到8192px之间。 图像中识别区域有效占比超过80%,保证所有文字及其边缘包含在图像内。 支持图像任意角度的水平旋转(需开启方向检测)。 目前不支持复杂背景(如户外自然场景、防伪水印等)和表格线扭曲图像的文字识别。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 保险单识别 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素在15到8192px之间。 图像中保险单区域有效占比超过70%,保证整张保险单及其边缘包含在图像内。 支持图像中保险单旋转、支持少量扭曲。 能处理暗光等干扰的图片但影响识别精度。 覆盖常见保险公司的常见保单版式,由于即使是同一家保险公司,保险种类也繁多而且都在动态变化,实际支持情况请以实际测试效果为准。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 核酸检测记录识别 支持全国不同地区健康码小程序中的核酸检测记录界面的识别。 支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在15到8192px之间。 图像中核酸检测记录区域有效占比超过80%,保证整张核酸检测记录内容及其边缘包含在图像内。 推荐采用手机截图图像。 支持图像中核酸检测记录界面任意角度的水平旋转(需开启方向检测)。 能处理反光、暗光等干扰的图片但影响识别精度。 目前只支持识别单张核酸检测记录界面。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们联系管理员。
  • 泰文身份证识别 只支持泰国身份证的识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 泰国身份证识别图像各边的像素大小在15到8192px之间。 图像中身份证区域有效占比超过25%,保证整张身份证内容及其边缘包含在图像内。 支持图像中身份证任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的身份证长宽比与实际身份证相差不超过10%。 能处理反光、暗光等干扰的图片但影响识别精度。 目前只支持识别单张身份证的正面或者反面。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前。
  • 网络图片识别 支持中英文及部分中文繁体字。 只支持识别JPG、JPEG、PNG、BMP、TIFF、TGA、WEBP、ICO、PCX、GIF格式图片。 支持常见网络图片如:手机截图、电脑截图、电商产品图及广告设计图等互联网图片。 图像各边的像素大小在15到8192px之间。 图像中有效文字图片占比超过60%,避免有效文字图片占比过小。 支持图像中有效文字图片的任意角度的水平旋转(需开启方向检测)。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 身份证识别 支持中华人民共和国居民身份证的识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在15到8000px之间。 图像中身份证区域有效占比超过25%,保证整张身份证内容及其边缘包含在图像内。 支持图像中身份证任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的身份证长宽比与实际身份证相差不超过10%。 能处理反光、暗光等干扰的图片但影响识别精度。 目前支持识别单张身份证的正面或者反面。 支持居民身份证的正反面同时识别,不支持存在两张及以上同面身份证的图片识别。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
  • 行驶证识别 只支持中国大陆行驶证的识别。 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。 图像各边的像素大小在100到8000px之间。 图像中行驶证区域有效占比超过5%,保证整张行驶证内容及其边缘包含在图像内。 支持图像中行驶证任意角度的水平旋转。 支持少量扭曲,扭曲后图像中的行驶证长宽比与实际行驶证相差不超过10%。 能处理反光、暗光、防伪标识等干扰的图片但影响识别精度。 目前只支持识别2008年版的行驶证。 文字识别服务属于公有云服务,线上用户资源共享,如果需要多并发请求,请提前联系我们。
共100000条