华为云用户手册

  • 续费 包年/包月方式购买的云模式WAF到期后,如果没有按时续费,公有云平台会提供一定的保留期。 保留期的时长由客户等级来定,详细信息请参见“保留期”。 冻结期内,WAF只转发流量,但用户配置的各种防护策略将不再生效。 冻结期满,进入资源清理期,域名的所有配置将会被全部删除。清除资源的时候,默认会把域名指回源站,但由于用户配置的协议和端口可能存在不一致的情况,所以不能保证该域名的业务能正常运行。 为了防止造成不必要的损失,请您及时续费。如果未续费,您将不能使用WAF服务,不影响您的网站访问业务。 如需续费,请在管理控制台续费管理页面进行续费操作。详细操作请参考续费管理。
  • 计费项 WAF根据购买方式和计费模式进行计费。 图1 WAF的计费方式 表1 计费项信息 购买模式 计费模式 计费项目 计费说明 云模式 包周期(包年/包月) 服务版本(必选) 按购买的服务版本:入门版、标准版、专业版、铂金版计费。 各服务版本支持的业务规格和功能,请参见服务版本差异。 域名扩展包(可选) 按购买的个数计费。 带宽扩展包 (可选) 按购买的个数计费。 规则扩展包(可选) 按购买的个数计费。 购买时长 提供包月和包年的购买模式。 独享模式 按需计费 实例个数 按实际使用时长计费。
  • 云审计 服务的关系 云审计服务(Cloud Trace Service, CTS )记录了 Web应用防火墙 相关的操作事件,方便用户日后的查询、审计和回溯。 目前以下区域支持云审计功能: 华北-北京一 华北-北京四 华东-上海一 华东-上海二 华南-广州 中国-香港 亚太-曼谷 亚太-新加坡 非洲-约翰内斯堡 拉美-圣地亚哥 表1 云审计服务支持的WAF操作列表 操作名称 资源类型 事件名称 创建Web应用防火墙防护实例 instance createInstance 删除Web应用防火墙防护实例 instance deleteInstance 更新Web应用防火墙防护实例 instance alterInstanceName 修改Web应用防火墙防护实例的防护状态 instance modifyProtectStatus 修改Web应用防火墙防护实例的接入状态 instance modifyAccessStatus 创建Web应用防火墙防护策略 policy createPolicy 应用Web应用防火墙防护策略 policy applyToHost 更新Web应用防火墙防护策略 policy modifyPolicy 删除Web应用防火墙防护策略 policy deletePolicy 修改告警通知设置 alertNoticeConfig modifyAlertNoticeConfig 添加证书 certificate createCertificate 修改证书名称 certificate modifyCertificate 删除证书 certificate deleteCertificate 创建CC规则 policy createCc 修改CC规则 policy modifyCc 删除CC规则 policy deleteCc 创建精准防护规则 policy createCustom 修改精准防护规则 policy modifyCustom 删除精准防护规则 policy deleteCustom 创建IP黑白名单规则 policy createWhiteblackip 修改IP黑白名单规则 policy modifyWhiteblackip 删除IP黑白名单规则 policy deleteWhiteblackip 创建/刷新网页防篡改规则 policy createAntitamper 删除网页防篡改规则 policy deleteAntitamper 创建全局白名单(原误报屏蔽)规则 policy createIgnore 删除全局白名单(原误报屏蔽)规则 policy deleteIgnore 创建隐私屏蔽规则 policy createPrivacy 修改隐私屏蔽规则 policy modifyPrivacy 删除隐私屏蔽规则 policy deletePrivacy
  • 与企业管理的关系 企业中有多个项目,多个项目的资源需要分开结算,且分属不同人员进行管理。同时项目可以单独启动或停止,对其他项目没有影响。企业管理可以针对企业中的每个项目,分别建立企业项目,管理各自的资源,并且针对不同的企业项目,设置不同的人员进行管理。 Web应用防火墙支持企业管理,您可以将Web应用防火墙上的资源按照企业项目进行管理,并设置每个企业项目的用户权限。 目前华北-乌兰察布一区域不支持企业管理功能。
  • 数据保护技术 WAF通过多种数据保护手段和特性,保证通过WAF的数据安全可靠。 表1 WAF的数据保护手段和特性 数据保护手段 简要说明 静态数据保护 WAF通过敏感 数据加密 保证用户流量中敏感数据的安全性。 传输中的数据保护 微服务间数据传输进行加密,防止数据在传输过程中泄露或被篡改。用户的配置数据传输采用安全协议HTTPS,防止数据被窃取。 数据完整性校验 WAF进程启动时,配置数据从配置中心获取而非直接读取本地文件。 数据隔离机制 租户区与管理面隔离,租户的所有操作权限隔离,不同租户间的策略、日志等数据隔离。 数据销毁机制 考虑到残留数据导致的信息泄露问题,华为云根据客户等级设定了不同的保留期时长,保留期到期仍未续订或充值,存储在云服务中的数据将被删除,云服务资源将被释放。WAF对云服务自动感知并在保留期到期后释放资源。 同时,WAF服务充分尊重用户隐私,遵循法律法规。以入侵防护功能为例,WAF仅会对流量进行威胁签名匹配检测和异常行为检测,不会采集和存储任何用户隐私数据。 更多隐私数据使用和保护问题,请参考隐私政策声明。 父主题: 安全
  • 服务韧性 华为云WAF按规则部署在全球各地,所有数据中心都处于正常运营状态,无一闲置。数据中心互为灾备中心,如一地出现故障,系统在满足合规政策前提下自动将客户应用和数据转离受影响区域,保证业务的连续性。为了减小由硬件故障、自然灾害或其他灾难带来的服务中断,华为云WAF提供灾难恢复计划。 当发生故障时,WAF的五级可靠性架构支持不同层级的可靠性,因此具有更高的可用性、容错性和可扩展性。 华为云WAF已面向全球用户服务,并在多个分区部署,同时WAF的所有管理面、引擎等组件均采用主备或集群方式部署。分区部署详情参见可用分区。 父主题: 安全
  • 审计与日志 审计 云审计服务(Cloud Trace Service,CTS),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录WAF的管理事件和数据事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 CTS支持追踪的WAF操作列表,请参见支持云审计的操作列表。 日志 出于分析或审计等目的,用户开启了云审计服务后,系统开始记录WAF资源的操作。云审计服务管理控制台保存最近7天的操作记录。 关于WAF云审计日志的查看,请参见查看审计日志。 父主题: 安全
  • 监控安全风险 WAF已对接 云监控服务 (Cloud Eye, CES ),可以通过管理控制台,查看WAF的相关指标,及时了解WAF防护状况,并通过指标设置防护策略。CES服务是华为云为用户提供一个针对各种云上资源的立体化监控平台,用户通过 云监控 服务可以全面了解云上的资源使用情况、业务的运行状况,并及时收到异常告警做出反应,保证业务顺畅运行。 用户通过设置WAF告警规则,可自定义监控目标与通知策略,告警规则包含名称、监控对象、监控指标、告警阈值、监控周期和是否发送通知等参数,帮助用户及时了解WAF防护状况,从而起到预警作用。 如何使用CES对WAF进行监控,请参见: WAF监控指标说明 设置监控告警规则 查看监控指标 父主题: 安全
  • 身份认证与访问控制 WAF对接了 统一身份认证 服务(Identity and Access Management, IAM )服务。WAF租户身份认证与访问控制通过IAM权限控制。 统一身份认证(Identity and Access Management,简称IAM)是华为云提供权限管理的基础服务,可以帮助WAF服务安全地控制访问权限。通过IAM,可以将用户加入到一个用户组中,并用策略来控制他们对WAF资源的访问范围。IAM权限可以通过细粒度定义允许和拒绝的访问操作,以此实现WAF资源的权限访问控制。关于对WAF资源的访问权限,详细请参考WAF权限管理。 父主题: 安全
  • 资源和成本规划 该解决方案主要部署如下资源,每月花费如下所示,具体请参考华为云官网价格详情,实际收费以账单为准: 表1 资源和成本规划(包年包月) 华为云服务 配置示例 每月花费 弹性云服务器 E CS 区域:华北-北京四 计费模式:包年包月 规格:X86计算 | 通用计算型 | s6.xlarge.2 | 4核 | 8GB 镜像:CentOS | CentOS 7.6 64bit 系统盘:高IO | 40GB 购买时长:1个月 购买数量:2 636.60元 弹性公网IP EIP 区域:华北-北京四 计费模式:包年包月 线路:动态BGP 公网带宽:按带宽计费 带宽大小:10Mbit/s 购买数量:2 1,030.00元 云数据库 RDS 区域:华北-北京四 计费模式:包年包月 数据库引擎:MySQL 数据库版本:5.7 实例类型:单机 存储类型:SSD云盘 性能规格:rds.mysql.n1.xlarge.2| 4 vCPUs | 8 GB 存储空间:100GB 购买时长:1个月 购买数量:1 460.00元 分布式缓存服务Redis版 区域:华北-北京四 计费模式:包年包月 版本号:5.0 实例类型:单机 CPU|存储架构:X86 | D RAM 副本数:2 实例规格:redis.single.xu1.large.4(4GB) 购买时长:1个月 购买数量:1 166.00元 对象存储服务 OBS 区域:华北-北京四 计费模式:包年包月 数据存储:单AZ存储 购买时长:1个月 购买数量:40G 1.00元 人证核身 服务IVS(二要素) 区域:华北-北京四 计费模式:包年包月 购买时长:1年 API年累计调用次数:1千 270.00元/年 数字资产链DAC 区域:华北-北京四 计费模式:包年包月 购买时长:1年 API调用次数:1万 共享版:15000.00元/年 专享版:15,000元/月+12,000元/万次/年 消息&短信 MSG SMS 区域:华北-北京四 计费模式:按量付费 | 行业短信套餐包 购买时长:1个月 套餐包规格:500条 32.5元 合计 共享版:2326.10元/月 + 15270.00元/年 专享版:17,326.10元/月+12270.00元/年 表2 资源和成本规划(按需计费) 华为云服务 配置示例 每月花费 弹性云服务器 ECS 区域:华北-北京四 计费模式:按需计费 规格:X86计算 | 通用计算型 | s6.xlarge.2 | 4核 | 8GB 镜像:CentOS | CentOS 7.6 64bit 系统盘:高IO | 40GB 购买时长:1个月 购买数量:2 0.93 * 24 * 30 * 2 = 1339.20 弹性公网IP EIP 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按带宽计费 带宽大小:10Mbit/s 购买数量:2 1.59 * 24 * 30 * 2 = 2289.60 云数据库 RDS 区域:华北-北京四 计费模式:按需计费 数据库引擎:MySQL 数据库版本:5.7 实例类型:单机 存储类型:SSD云盘 性能规格:rds.mysql.n1.xlarge.2| 4 vCPUs | 8 GB 存储空间:100GB 购买时长:1个月 购买数量:1 0.95 * 24 * 30 = 684.00 分布式缓存服务Redis版 区域:华北-北京四 计费模式:包年包月 版本号:5.0 实例类型:单机 CPU|存储架构:X86 | DRAM 副本数:2 实例规格:redis.single.xu1.large.4(4GB) 购买时长:1个月 购买数量:1 0.35 * 24 * 30 = 252.00 对象存储服务OBS 区域:华北-北京四 计费模式:按需计费 数据存储:单AZ存储 购买时长:1个月 购买数量:40G 请求次数:1万 存储费用:0.0990 * 40 = 3.96 请求费用:0.0100 * 1=0.01 人证核身服务IVS(二要素) 区域:华北-北京四 计费模式:按需计费 购买时长:1个月 API调用次数:1千 0.27 * 1000 = 270.00 数字资产链DAC 区域:华北-北京四 计费模式:按需计费 购买时长:1个月 API调用次数:1千 共享版不支持按需计费 专享版:15000 + 2 * 1000 = 17000 消息&短信 MSGSMS 区域:华北-北京四 计费模式:按量付费 | 行业短信套餐包 购买时长:1个月 套餐包规格:500条 不支持按需付费 合计 21,871.27‬元
  • 内置函数 使用如下内置函数进行多重运算时,子表达式要加括号。 表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。 divideString(index,“分割符”) 字符串分割。 index:从1开始,表示取第几个字符。 分割符:若分隔符为"."、"$"、"+"、"|" 和 "*" 等正则特殊字符,需要使用方括号包装,例:FLOW.XXX.divideString(index,"[+]") 使用场景示例:例如有一个流程变量Answer,FLOW.Answer的值为:{"UniqueID":"123","ServiceID":"1234","orderid":"12345"},如果您需要获取流程变量Answer的"orderid":"12345",请使用如下表达式:FLOW.Answer.divideString(3,“,”) 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"),结果为是,通常用于条件表达式。 父主题: 相关参考
  • 如何实现传递拆线原因码给指定业务接口? 有时候,业务需要我们在呼叫拆线时调用指定的接口,上报拆线原因码等信息。实现这个功能的要点,除了在接口管理定义指定的接口,还需要做一个异常流程,以及通过一个全局变量记录流程拆线的原因。 首先,需要明确一下呼叫拆线原因的分类。从呼叫参与主体角度可以分为三类: 一是用户主动挂机拆线 二是流程正常逻辑结束的拆线 三是流程异常结束的拆线 本文将介绍如何配置流程、变量和接口来给指定接口上报这三类拆线的原因码,这里约定流程正常逻辑结束拆线原因码为0,流程异常结束拆线原因码为1,用户主动挂机拆线原因码为2。 定义全局变量标识拆线原因。 添加一个全局变量,一定要填写缺省值,且值为用户主动挂机拆线的原因码。例如名称为release_type,数据类型字符型,缺省值为2,如下图: 添加异常流程并设置异常拆线的原因码。 参考添加流程,创建一个流程,场景类型一定要选择异常流程。通常,异常流程要有一个应答图元,用于播放一段因为流程进入异常给用户造成不便的礼貌用语,例如Sorry,We are facing some technical issues, Please try after some time. Thank you. 然后,就可以用业务接口图元来给上面的全局变量赋值,标识为流程异常拆线的原因码,我们这里就设置为1;最后,走到结束图元,来结束已经走到异常流程的呼叫。 正常流程结束图元前设置正常拆线的原因码。 不需要改变现有正常流程的逻辑,只需要在正常流程结束图元前面,增加一个业务接口调用图元,给上面的全局变量赋值,标识为流程正常拆线的原因码,我们这里就设置为0。例如: 指定接口的参数配置。 参考4.1.1章节,根据业务提供的接口信息,添加业务接口,唯一特殊的地方,就是要把上面标识拆线原因码的变量作为消息体的入参配置到接口中,例如下图: 主流程结束图元调用指定接口。 参考结束图元,对主流程的结束图元调用已经配置的接口,就可以实现流程拆线后调用指定接口上报不同的拆线原因码。 父主题: 常见问题
  • 方法 赋值:当某个流程变量的数据类型为列表或对象时,列表的值可以使用如下格式:["1","2","3"],对象的值可以使用如下格式:{"keyA":"valueA","keyB":"valueB"},其中列表和对象每个元素的数据类型可以为列表或对象。 使用: 当某个流程变量FLOW.arr1的数据类型为列表时,其缺省值为:["1","2","3"],若您需要获取第1个元素的值"1",可以采用如下表达式:FLOW.arr1[0]。 当某个流程变量FLOW.arr2的数据类型为列表时,其缺省值为:[[1,2], [3,4]],若您需要获取第1个元素的值3,可以采用如下表达式:FLOW.arr2[1][0]。 当某个流程变量FLOW.obj1的数据类型为对象时,其缺省值为:{"keyA":"valueA","keyB":"valueB"},若您需要获取valueA,可以采用如下表达式:FLOW.obj1["keyA"]或FLOW.obj1.keyA。 当某个流程变量FLOW.obj2的数据类型为对象时,其缺省值为:{"keyA":"valueA","keyB":{"keyC":"valueC"}},若您需要获取valueC,可以采用如下表达式:FLOW.obj2["keyB"]["keyC"]或FLOW.obj2.keyB.keyC。 通过使用方法从列表和对象获取的元素可以正常与其他变量值进行运算和使用内置函数进行操作。
  • 请求出参 参数 类型 描述 returnCode String 返回码 returnMsg String 返回信息 params LangIdOutputParams 语种识别结果 单个LangIdOutputParams的定义如下: 参数 类型 描述 language String 语种,参考取值: zh_CN en_US (以下为小语种,需要配套下载小语种识别的模型) ar es_ES pt_BR th_TH score float 置信度
  • 请求出参 表2 响应体参数 参数 类型 描述 examResponse ExamResponse 实训评分结果,实训评分时返回 qiResponse QiResponse 质检评分结果,普通质检时返回 (质检评分场景,暂不使用) 表3 examResponse字段说明 参数 类型 描述 examId String 考题Id score Integer 考题得分(不包含敏感词) answerRules List Object 回答涉及的考察点及得分详情 sensitiveWordRules sensitiveWordRuleMatch 回答涉及的敏感词以及扣分 表4 answerRules字段说明 参数 类型 描述 positiveAnswer String 该正向考察点答案 positiveWeight Float 该正向考察点权重 positiveScore Float 该正向考察点得分 negativeAnswer String 对应负向考察点答案 negativeWeight Float 对应负向考察点权重 negativeScore Float 对应负向考察点得分 表5 sensitiveWordRules字段说明 参数 类型 描述 id String 敏感词id name String 敏感词内容 score Integer 敏感词得分 beginTime Long 实训内容开始时间戳,精度为秒 endTime Long 实训内容结束时间戳,精度为秒 speechId Integer 实训内容Id
  • 响应消息样例 { "examResponse": { "examId": "TQ5", "score": 80.0, "answerRules": [ { "positiveAnswer": "18号的正向", "positiveWeight": 0.5, "positiveScore": 40.0, "negativeAnswer": null, "negativeWeight": 0.0, "negativeScore": 0.0 }, { "positiveAnswer": "18号的正向", "positiveWeight": 0.5, "positiveScore": 40.0, "negativeAnswer": null, "negativeWeight": 0.0, "negativeScore": 0.0 } ], "sensitiveWordRules": { "sensitiveWordRuleMatch": [] } }, "qiResponse": null}
  • 请求入参 表1 请求体参数 参数 类型 是否必选 描述 language String 必选 语种,当前支持 中文:zh_CN 英文:en_US 其中实训只支持zh_CN。 channelType String 必选 质检类型: 实训评分:exam speeches Json String 必选 需要评分的对话内容 channelType为实训评分时,为试题id和座席的回答。 例如: "speeches": "{\"examID\":\"jsex001\",\"speech\":\"*******\"}" 使用变量的方式: "speeches": "{\"examID\":\"${examID}\",\"speech\":\"${speech}\"}" callTime Long 必选 对话时间戳,精度为秒。 实训评分场景,时间戳输入-1,无实际意义。
  • 接口功能 智能实训接口,在Lodas上部署并训练实训模型后,通过智能IVR中的业务接口调用,将用户语音文本信息发送给LODAS,获取智能引擎将评分结果。借助智能化能力,建设一体化系统,实现客户机器人仿真来电实训、答复准确率自动评估、操作准确性自动评估等能力。实现新员工上岗前实试与鉴定、重难点业务能力训练与鉴定、在岗员工转岗训练与鉴定、待岗员工复岗训练与鉴定,从员工角度、系统角度、运营角度提升工作效能。
  • 请求入参 表1 参数 类型 是否必选 描述 user String 必选 发起问题的用户ID。 sentence String 必选 需要进行推荐FAQ匹配的句子。长度不超过1024个字符。 language String 必选 语言。 当前支持如下四种: en_US:英语 ar:阿拉伯语 es_ES:西班牙语 zh_CN:中文 threshold Double 可选 FAQ置信度阈值。 缺省0。如果出现数字的话,系统仅返回置信度大于该值的FAQ。
  • IVR请求变量(IVRREQUEST) 使用方法如下: 参数 描述 IVRREQUEST.cti_callid 华为IVR传入的实际呼叫的CTI的callid,其他场景此值为空。不超过32位。 当前暂未使用。 IVRREQUEST.input 对话交互结果。 语音识别 结果或者文字输入:语音识别结果为语音转换成的文本;文字输入结果则直接为文字内容 语音按键结果:按键值,如"1","201801"等 playover:放音结束 timeout:超时 nomatch:识别或按键失败 sys_err:系统异常 hangup:挂机 recordend:录音结束 当结果为“hangup”时,可触发ODFS的拆线响应。 不超过1024位。 IVRREQUEST.IACmd 智能匹配和智能工单填写专用字段。 智能匹配时,只支持值为“match”。 智能工单时,可取值如下: “match”:请求填单 “rematch”:当识别的事项分类错误时,重新识别 “confirm”:当座席点选某字段时,告知odfs该字段已确认。 IVRREQUEST.TextSource 请求文本的来源。 当“IACmd”为“match”时,用于区分输入文本来自座席还是用户(智能匹配、智能工单相同),值为“operator”或“user” “operator”:座席 “user”:用户 当“IACmd”为“confirm”时,传入座席点选的字段名,如:对象二级。 当“IACmd”为“rematch”时,可不填。 IVRREQUEST.transin_data 由接入方跟OIAP约定的随路数据参数,例如IVR传入的数据包参数。 IVRREQUEST.begin_play 放音开始时间。 IVRREQUEST.end_play 放音结束时间。 IVRREQUEST.call_id 呼叫唯一标志,与userid 取值相同,给流程使用。 不超过64位。 IVRREQUEST.inter_idx 交互次数,ODFS侧记录的与用户连续交互的次数。 IVRREQUEST.feedback 反馈的满意度: 1(满意);0(不满意)。整数型。 IVRREQUEST.feedbackContent 反馈的不满意原因(如果反馈为满意则为空)。 IVRREQUEST.channelType 客户接入的渠道类型。例如:web、wechat、facebook等 父主题: 参数
  • 参数介绍 查询排队信息 查询类型:使用该图元可查询的信息类型,当前支持查询排队信息。 排队信息使用场景是转移到技能队列时启用伴随IVR流程查询排队信息。 查询结果 排队位置:用户在当前排队技能队列中的位置,即在该用户前排队的人数。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。 在线座席数:用户所在技能队列的全部在线座席数。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。 预计等待时间:用户在排队过程中,预计接通座席的时间,该参数受排队位置和在线座席数影响。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。排队预计等待时间依靠队列模型计算,结果有一定的偏差,请合理使用。 查询队列信息 查询类型: 队列信息:转移到技能队列之前查询队列信息。 请求参数: 技能队列:待转移的技能队列。 查询结果: 排队位置:用户转移技能队列之前,展示客户预计排队的位置。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。 在线座席数:用户待转移技能队列的当前全部在线座席数。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。 空闲座席数:用户待转移技能队列的当前全部在线并空闲座席数。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。 预计等待时间:用户转移技能队列之后,预计接通座席的时间。请使用全局变量(GLOBAL.*)或流程变量(FLOW.*)接收,用于后续操作。排队预计等待时间依靠队列模型计算,结果有一定的偏差,请合理使用。
  • 全局变量(GLOBAL) 变量的数据类型当前支持如下类型: 整形 字符型 长整形 浮点型 您可以在流程的流程变量定义区、语音识别服务图元、业务接口调用图元、应答图元、等图元中可直接使用该变量,使用格式为: GLOBAL.变量名 例如GLOBAL.Param1 在响应中的属性名中,您为参数赋的值的数据类型需要与您在“变量管理”中设置的数据类型相匹配,如果是字符型,您需要自行添加英文引号。 父主题: 参数
  • 需求分析 根据上述流程,我们可以分析出整个流程需要如下资源和配置: 表1 需求分析 步骤 资源 图元 节点属性设置 备注 开始 - - - 初始化语言 业务接口:初始化语言 缓存变量名:GLOBAL.language 响应中的属性名:"zh_CN" 实际应用场景可通过使用真实的接口调用确认语言,本节的机器人配置演示使用该图元赋值,无需选择调用接口,直接添加缓存变量名,将其赋值来初始化语言。 例如英文对应的响应中属性名为: "en_US" 欢迎语 - 应答类型:回复文本 应答来源:应答变量 ( TTS 会根据变量返回的值动态播放语音) 应答变量:FLOW.welcome 应答模式:支持播放后再识别 添加流程变量,例如: 变量名称:welcome 数据类型:字符型 缺省值:欢迎使用自助挂号系统 获取客户回答 业务接口:缓存对话交互结果 缓存变量名:FLOW.ask 响应中的属性名:IVRREQUEST.input 无需选择调用接口,直接添加缓存变量名。 添加流程变量,例如: 变量名称:ask 数据类型:字符型 缺省值:预约${FLOW.dateSlot}的${FLOW.timeSlot}的{FLOW.docSlot}的${FLOW.roomSlot}。 语义识别(含意图是否匹配) 意图模板:挂号 语义识别内容:FLOW.ask 设置变量: 获取意图匹配到的科室 缓存变量名:FLOW.roomSlot 响应中的属性名:TOC.ChatBotroom 获取意图匹配到的医生 缓存变量名:FLOW.docSlot 响应中的属性名:TOC.ChatBotdoctor 获取意图匹配到的日期 缓存变量名:FLOW.dateSlot 响应中的属性名:TOC.ChatBotdate 获取意图匹配到的时间点 缓存变量名:FLOW.timeSlot 响应中的属性名:TOC.ChatBottime 判断条件列表 匹配到了配置的挂号意图 条件名:finish 条件表达式:TOC.ChatBotIntentCode=='finish' 匹配到了配置的挂号意图的必选科室槽位的命令字 条件名:room 条件表达式:TOC.ChatBotIntentCode=='room' 匹配到了配置的挂号意图的必选医生槽位的命令字 条件名:doctor 条件表达式:TOC.ChatBotIntentCode=='doctor' 添加流程变量,例如: 变量名称:roomSlot 数据类型:字符型 变量名称:docSlot 数据类型:字符型 变量名称:dateSlot 数据类型:字符型 变量名称:timeSlot 数据类型:字符型 获取客户需要预约的科室 (匹配到条件名:room) 业务接口:调用查询科室的接口 缓存变量名:FLOW.answer 响应中的属性名:FLOW.room + TOC.ChatBotRespContent 无需选择调用接口,直接添加缓存变量名。 添加流程变量,例如: 变量名称:answer 数据类型:字符型 变量名称:room 数据类型:字符型 缺省值:当前可以选择的科室为内科和外科 - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:FLOW.answer 应答模式:支持播放后再识别 - 获取客户需要预约的医生 (匹配到条件名:doctor) 业务接口:调用查询对应科室医生的接口 缓存变量名:FLOW.answer 响应中的属性名:FLOW.doctor + TOC.ChatBotRespContent 无需选择调用接口,直接添加缓存变量名。 添加流程变量,例如: 变量名称:answer 数据类型:字符型 变量名称:doctor 数据类型:字符型 缺省值:当前科室值班医生有刘医生和李医生 - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:FLOW.answer 应答模式:支持播放后再识别 - 告知客户已预约的挂号信息 (匹配到条件名:finish) - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:TOC.ChatBotRespContent 应答模式:只播放不支持识别和按键 - 默认应答 (未匹配到任何条件名) - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:TOC.ChatBotRespContent 应答模式:只播放不支持识别和按键 说明: 连线上不匹配任何条件名,即为默认分支。 询问是否确认挂号信息 - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:FLOW.check 应答模式:支持识别打断 添加流程变量,例如: 变量名称:check 数据类型:字符型 缺省值:确定上面的信息吗? 语义识别(含意图是否匹配) 意图模板:确认 判断条件列表 匹配到了确认的意图 条件名:yes 条件表达式:TOC.ChatBotconfirm=='是' 匹配到了不确认的意图 条件名:no 条件表达式:TOC.ChatBotconfirm=='否' 匹配到了日期错误 条件名:part 条件表达式:TOC.ChatBotconfirm=='日期错误' - 使用缓存变量缓存数据再进行语义识别确认客户挂号信息 (匹配到条件名:no) - 缓存变量名:FLOW.ask 响应中的属性名:'预约挂号' 无需选择调用接口,直接添加缓存变量名。 再次确认客户是否要修改日期 (匹配到条件名:part) 应答模板:是否要修改日期 应答类型:回复文本 应答来源:应答模板 (TTS会根据变量返回的值动态播放语音) 应答模板:redate 应答模式:支持识别打断 需添加应答模板 意图模板:确认 判断条件列表 匹配到了确认不修改日期的意图 条件名:yes 条件表达式:TOC.ChatBotconfirm=='是' 匹配到了确认修改日期的意图 条件名:no 条件表达式:TOC.ChatBotconfirm=='否' - 询问修改日期,再进行语义识别确认挂号信息 (匹配到条件名:no) 缓存变量名:FLOW.dateSlot 响应中的属性名:'' 缓存变量名:FLOW.answer 响应中的属性名:'请问你要改为哪一天?' 无需选择调用接口,直接添加缓存变量名。 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:FLOW.answer 应答模式:支持识别打断 - 缓存变量名:FLOW.dateSlot 响应中的属性名:IVRREQUEST.input 缓存变量名:FLOW.ask 响应中的属性名:'预约挂号'+FLOW.dateSlot+'的'+FLOW.timeSlot +FLOW.docSlot +'的' +FLOW.roomSlot 无需选择调用接口,直接添加缓存变量名。 告知客户挂号信息并表示感谢 (匹配到条件名:yes) - 应答类型:回复文本 应答来源:应答变量 (TTS会根据变量返回的值动态播放语音) 应答变量:FLOW.thanks 应答模式:只播放不支持识别和按键 添加流程变量,例如: 变量名称:thanks 数据类型:字符型 缺省值:已经预订成功,谢谢您的使用,再见。 结束 - - - 为确保容错性,您还需要配置一个未知意图,用于识别意图匹配不到的情况。 其中涉及到意图的部分,还需要继续细化分析如下信息,此处以挂号这个意图为例介绍,其他方法类似。 客户回答预约挂号的时候有多种说法 (语料) 我想看个医生 挂号 预约挂号 我要挂一个明天下午16:00点李医生的内科 您需要尽量多的考虑回答场景,才能确保意图匹配的精确。 客户回答的信息中哪个是我们需要的信息?(槽位&实体) 例如客户回答挂号16.00点,那么16.00点是我们需要获取的槽位信息,您需要在意图中添加该槽位信息,而槽位信息需要有对应的实体关联,因此还需要确认实体配置中是否有类似的实体。本例中可以使用系统实体@system.time。 如果客户回答挂号李医生,那么李医生是我们需要获取的槽位信息,您需要在意图中添加该槽位信息,而槽位信息需要有对应的实体关联,系统实体中没有这个实体,那我们需手动添加医生这个实体。 意图匹配的命令字,即语义识别图元所需的TOC.ChatBotIntentCode的值。请全局保持唯一(响应) 由于意图中的响应是可以设置分支条件的,可以直接添加分支,回复不同的TOC.ChatBotIntentCode。
  • 场景 某医院需要使用智能语音导航完成一个简单的机器人预约挂号流程,流程如下: 图1 机器人预约挂号流程 注:蓝底部分表示智能语音导航执行的步骤。 客户致电医院客服电话123456。 初始化语言,设置为中文或英文。 致欢迎语。 客户说话。 将客户的说话与现有意图匹配,如果未匹配到指定意图,则告知未知意图。 如果匹配到指定意图(其意图设置四个必选槽位:预约科室、预约医生、预约日期、预约时间点),将一一询问客户预约的科室、预约的医生、预约的日期、预约的时间点。 如果客户回答出以上四个信息,告知客户刚刚回复的预约挂号信息,并询问客户是否确认挂号。 客户回答。 将客户的说话与现有意图(其意图设置为是否确认)匹配。 如果匹配到确定意图,则进行下一步,告知客户预约成功。 如果匹配到否定意图,则系统携带之前客户的预约挂号信息再次返回到5的意图识别。 如果匹配到客户说日期错误。 询问客户是否需要修改预约日期。 客户回答。 将客户的说话与现有意图(其意图设置为是否确认)匹配 如果匹配到不修改,则进行下一步,告知客户预约成功。如果匹配到需要修改日期,询问客户修改为哪一天。 客户回答。 系统携带客户的回答和之前的预约挂号信息再次返回到5的意图识别。 如果未匹配到意图,则告知未知意图。 告知客户预定成功。 客户挂机。
  • 操作步骤 添加领域。 参见添加实体添加两个实体:医生、科室。 图1 添加医生实体界面 图2 添加科室实体界面 添加挂号意图。 单击进入新创建的领域,单击“新增”,选择“一般意图”。 填写意图的名称,例如“挂号”。 在“上下文”页签,单击“输入上下文”后的“新增”,可以添加当前意图的上下文,此示例不添加上下文。 上下文指多轮对话时,机器人根据该值将多组语句当做同一轮次的对话处理。当需要使用指定的意图模板时,可通过上下文配置的字符串进行定位。 在“语料”页签,单击“新增”,添加语料。 分析客户可能回答,并将这些回答添加到语料中去,例如,客户可能回答我要挂一个明天下午16:00李医生的内科,则双击文本框输入“我要挂一个明天下午16:00李医生的内科”,然后鼠标左键选择“明天下午”,在弹出的菜单中选择“@system.date”,选择“16:00”,在弹出的菜单中选择“@system.time”。 如何标记槽位? 在语料输入完毕后,按回车,即可实现槽位自动标记,但是有些语料比较特殊(比如本例),回车后自动标记的槽位并不符合我们的要求,因此需要手工标记。 语料您可以做如下添加: 在“槽位”页签,设置槽位的名称,是否必选以及当槽位信息缺失时系统给出的提问信息。 槽位的名称将是您在流程编排时使用的槽位变量名称的一部分。 由于时间、日期、科室、医生必须提供完整才能确认一次预约挂号的信息,这四个槽位本应该是必选的,因此此处需要配置成“必选”。 在“响应”页签,单击“新增”,配置本次意图匹配成功后返回的命令字。 响应是指当匹配到该意图时,需要反馈的文本或命令字信息。响应支持根据不同的条件表达式返回不同的文本或命令字。通常在需要匹配到的意图向客户返回某些提示信息时,可配置回复文本,当需要将响应匹配到的事件写入TOC.IntentCode变量,返回给调用方(例如对话流程)时,可配置回复命令字。、 单击“命令”文本框,设置其值为“finish”。 单击“命令”文本框或单击“新增回复”按钮,设置“回复类型”为“回复文本”,单击“请输入”文本框,设置其值为“你预定了{$date}的{$time}的{$doctor}的{$room}” 单击右下角的“保存”。 单击右上角“训练”,提示训练成功。 单击右上角“询问机器人”,对当前意图模板进行测试。 若您在添加意图时配置了上下文,询问机器人之前请在聊天界面的上下文选择框中输入已配置的上下文,否则可不选。 测试时请根据您的语料对机器人进行询问,查看机器人的返回,如果返回类似如下内容,表示匹配成功。
  • 概述 以和ODFS集成的智能语音导航支持如下三类机器人的配置为例,介绍三种不同的知识配置方式: 机器人类型 用途 针对行业 样例 问答型 对话机器人 系统根据用户的具体问题给出具体答案。 回答的内容更基于知识而不是用户目的。 针对垂直领域,技术上强调直接与知识库结合的回复获取方面的技术。 Client : 我在天河区,请问哪里可以办理社保 Robot: (查询FAQ知识库,匹配到对应答案) B: 你好,社会保障局服务中心地址:白云区在白云东路XXXX;天河区在天河大厦101号;越秀区在…… 任务型对话机器人 比如预订机票、订餐、开通彩铃等一系列以完成某项有明确目标的任务为导向的对话机器人。 针对垂直领域(有限信息),技术上强调多轮对话、槽位提取方面的技术。 Client : 我想开通流量套餐 B:我们有5G包月,10G包月,不限量套餐,请问你想开通哪一种? Client : 5G包月 B:你想开通5G包月流量套餐,请问你确认吗? Client:确认 B : (调用开通套餐的服务接口(传入用户号码,5G包月参数),得到成功结果) B : 好的,已为你成功开通5G包月流量套餐,10分钟后生效。 B :请问你还需要办理其他服务吗? 父主题: 配置智能IVR
  • 业务场景 场景一:Web渠道满意度调查。 客户在Web上连通座席客服,点击关闭聊天窗口时,弹出满意度调查界面,客户选择满意度星级,填写评价,确认后完成满意度调查,关闭聊天窗口。 场景二:短信满意度调查。 在结束客户服务通话后,座席挂断电话,系统自动给来电客户发送满意度调查短信,客户短信回复满意度结果。 场景三:IVR语音满意度调查。 在结束客户服务通话后,座席挂断电话,来电客户转接到满意度调查,按键回复满意度结果。
  • 后续操作 数据编辑:已导入的表数据支持再次编辑。 单击“编辑”,在“编辑”界面可编辑除索引数据外的其他表数据内容。确认数据正确后,单击“提交”,保存表数据。 单击“删除”,在提示框中单击“确认”,可删除不需要的表数据内容。 数据导出:已有表数据内容支持导出功能。 此处导出的数据中,包含个人数据,导出后务必谨慎处理,防止个人数据外泄滥用。 单击“新增导出任务”,进入输入压缩密码界面。 输入自定义的压缩密码,单击“确认”,数据导出成功。 在提示框中单击“确定”,返回表数据配置页面。 单击“导出任务查看”,进入导出结果页面。 选择“导出任务状态”为“成功”的任务结果,单击“下载”,下载表数据文件至指定位置。 下载成功后,打开导出文件,输入压缩密码,即可查看表数据内容。
  • 后续操作 草稿状态下的基础表支持: 单击“编辑”,修改基础表名称和描述内容。 单击“详情”,配置表字段内容。 单击“删除”,可删除不需要的基础表。 单击“发布”,正式启用配置完成的基础表。 发布状态下的基础表支持: 单击“详情”,配置表字段内容。 单击“撤回”,更新基础表状态为草稿。 单击“废弃”,更新基础表状态为废弃 废弃状态下的基础表支持: 单击“详情”,配置表字段内容。 单击“删除”,可删除不需要的基础表。 只有发布状态下的基础表可以被其他页面引用。 发布状态下的基础表不支持删除,只能撤回为草稿状态或者变更为废弃状态下的基础表才可以被删除。
  • 结果验证 使用开通了WebRTC特性的座席登录AICC。 该座席需具备以下条件: 座席尚未绑定固话或手机 座席已绑定音频相关技能队列(包括语音、视频、语音点击通话、视频点击通话类型的技能队列)。 在接续条区域单击,输入软电话密码后,单击注册,单击“签入”。 座席签出时,两个话机同时登出。 座席签出后,软电话状态变为未注册。 当租户开启软电话号码统一认证特性并将座席的认证方式改为统一认证后,无需输入密码,单击签入会自动注册软电话。 POOL模式时,话机变为两个,共用一个密码。如果注册成功,两个通话状态都为已注册。如果其中一个失败,可以单击话机重新注册。 发起音频呼叫。 单击,输入软电话号码后,单击呼叫。呼叫类型可选择音频。 WebRTC话机状态为已注册、座席签入后才可外呼。 首次拨打会出现“xxx.xxx.xxx.xxx想要访问你的麦克风”,单击允许。 座席侧振铃,单击接听后,客户侧振铃等待用户接听。 此时WebRTC话机状态为通话中,显示红色,此时座席状态为占用中。 发起视频呼叫。 单击,输入软电话号码后,单击呼叫。呼叫类型可选择视频。 WebRTC话机状态为已注册、座席签入后才可外呼。 首次拨打会出现“xxx.xxx.xxx.xxx想要访问你的摄像头”,单击允许。 座席侧振铃,单击接听后,客户侧振铃等待用户接听。 此时WebRTC话机状态为通话中,显示红色,此时座席状态为占用中。视频通话展示如下: 视频窗口只展示座席界面,没有对方界面。 单击接续条上的桌面共享,客服代表可共享指定区域,包括: 您的整个屏幕 应用窗口 浏览器标签页 POOL模式下,两个话机随机一个进行通话。 共享桌面时需注意个人隐私保护。 视频通话用户接通后展示如下。 :单击可停止发送视频。 :单击可放大窗口 :单击可隐藏视频窗口,显示通话时长 :单击可全屏视频窗口 :单击可切换至语音通话,恢复视频通话,请单击接续条上的音视频切换按钮并选择视频通话 :单击可自我静音,再次单击可取消静音 :单击可挂断当前来话 接听用户电话。 当用户拨打设备类型为技能队列的接入码,座席等待约2秒后,自动接听。 当用户拨打设备类型为IVR的接入码,转到座席接听,座席等待用户听完提示音后2秒后,自动接听。 POOL模式下,两个话机随机一个进行通话,座席变为忙碌态,不再接受其他通话。 如果直接拨打未通话的话机会直接挂断。
共100000条