上云无忧 > 文档中心 > 百度智能云机器人平台 ABC Robot图形化技能 - 交互流程
机器人平台 ABC Robot
百度智能云机器人平台 ABC Robot图形化技能 - 交互流程

文档简介:
什么是交互流程: 交互流程是用户对话的一个场景,我们将原本抽象、难理解的交互过程通过流程图表示,开发者可以通过绘制流程图的方式,来进行复杂业务流程的处理。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

什么是交互流程

交互流程是用户对话的一个场景,我们将原本抽象、难理解的交互过程通过流程图表示,开发者可以通过绘制流程图的方式,来进行复杂业务流程的处理。

举例,常见的银行存款引导业务场景:

客户:"我要存款"

引导员:"请问您是个人账户还是对公账户"

客户:"个人账户"

引导员:"请问您是否携带银行卡"

客户:"带卡了"

引导员:"请问您存款金额超过五千元吗"

客户:"不超过五千"

引导员:"好的,请您跟我到自助服务区操作"

在这个场景里,用户明确表达了存款意图,但是缺少账户类型信息,所以需要询问用户账户类型,当收集到账户类型信息后,会引导用户去办理业务。

详细流程如下图:

在对话中,我们可以抽象出构成整个交互流程的基本元素,并捋清元素间的关联关系,从而将复杂的交互转化为清晰的图解表示,这就是我们设计交互流程图的初衷。在整个图中,用意图和槽位做原料,用节点和连线来组装,生成定制化和个性化的交互流程。

节点介绍

在交互流程设计中,会涉及以下几个节点的使用,具体介绍如下:

根节点

进入交互流程的入口,这个节点本身不会配置判断条件,与根节点连接的判断节点作为进入判断。

节点显示为:

具体内容为:

判断节点

触发交互流程某个环节的节点,当满足该节点包含的条件,就可以触发该节点对应的交互环节。

节点显示为:

具体内容为:

处理节点

处理节点允许开发者编写代码来进行复杂逻辑的处理,进而提供更智能的对话体验。如词槽值校验、查询API获取业务系统结果等。目前,开发者可以在页面上通过代码编辑的形式,编写自己的逻辑代码,并返回相应处理结果。

节点显示为:

具体内容为:

下面这个代码编辑的例子中,我们以航班查询为例,涉及槽位值(原始值、归一化值)引用、结果返回、以及已有槽位值(原始值、归一化值)赋值。

Node.js

exports.handle = (event, context, callback) => {
    try {
        // 返回正常结果
        var slotInfo = JSON.parse(event.Payload.slotInfos);
        var departure = slotInfo['FLIGHT_FROM_TO.filghdeparture'];
        var arrival = slotInfo['FLIGHT_FROM_TO.filgharrival'];
        if (departure == null) {
            departure = "北京";
        }
        var time = slotInfo['FLIGHT_FROM_TO.flight_time'];
        if (time == null) {
            time = "今天";
        }
        var response = {
            "functionResponse": JSON.stringify(
                {
                    "departure": departure,
                    "time": time,
                    "arrival": arrival
                }
            ),
            "overrideResponse": JSON.stringify(
                {
                    "FLIGHT_FROM_TO.filghtdeparture.origin":"北京"
                }
            )
        };
        callback(null, response);
    } catch(e) {
        // 将异常错误信息返回
        callback(e, null);
    }
};

填槽节点

填槽节点是为某个意图统一收集槽位的节点,当满足触发条件的意图缺失槽位,会根据填槽节点的反问配置进行反问,直至收集齐。

根据槽位值进行流程分支:对于需要在交互流程中通过词槽的值进行分支的场景,可以在填槽节点中只选择一个槽位,并在填槽节点后连接多个判断节点,判断具体槽位值后,进行交互流程的分支。

节点显示为:

具体内容为:

交互节点

交互节点主要用来将交互的结果回复给客户端,同时支持等待客户端下一轮输入。交互的内容目前支持文本类型和自定义指令类型,自定义指令类型中支持按照平台的协议格式来返回多种类型的结果,如图片、列表等。

节点显示为:

具体内容为:

怎样使用变量

什么是变量

在整个交互流程中可以使用的字段,我们称之为变量,比如意图的槽位、处理节点返回结果等。变量可以在交互节点、判断节点等被引用,来实现动态的内容回复,或根据变量值来进行具体的业务流程处理。

变量引用


变量 引用方式 说明
槽位归一化值 ${intentName.slotName} 例如,${FLIGHT_FROM_TO.flightdeparture}
槽位原始值 ${intentName.slotName.origin} 例如,${FLIGHT_FROM_TO.flightdeparture.origin}
处理节点返回值 ${functionResponse.处理节点名称.字段名} 例如,${functionResponse.处理多航班查询.time}
变量路径 处理节点判断条件,直接引用变量的path 判断节点使用处理节点返回值做判断条件时,变量路径可以直接引用,例如:返回值为 {"functionResponse":{"var1":{"var2":"value1"}},"var3":"value2"},引用var2时使用var1.var2,引用var3时使用var3。

已有变量赋值

在返回值中添加overrideResponse字段,数据类型是JSON,每个字段的KEY是已有变量名,VALUE是将要赋值的具体值,例如:

"overrideResponse":{
    "FLIGHT_FROM_TO.filghtdeparture.origin":"北京"
}
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部