云服务器内容精选

  • 需求分析 根据上述流程,我们可以分析出整个流程需要如下资源和配置: 表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}” 单击右下角的“保存”。 单击右上角“训练”,提示训练成功。 单击右上角“测试”,对当前意图模板进行测试。 若您在添加意图时配置了上下文,询问机器人之前请在聊天界面的上下文输入框中输入已配置的上下文,否则可不输入。 测试时请根据您的语料对机器人进行询问,查看机器人的返回,如果返回类似如下内容,表示匹配成功。
  • 操作步骤 添加领域。 参见添加实体添加两个实体:医生、科室。 图1 添加医生实体界面 图2 添加科室实体界面 添加挂号意图。 单击进入新创建的领域,单击“新增”,选择“一般意图”。 填写意图的名称,例如“挂号”。 在“上下文”页签,单击“输入上下文”后的“新增”,可以添加当前意图的上下文,此示例不添加上下文。 上下文指多轮对话时,机器人根据该值将多组语句当做同一轮次的对话处理。当需要使用指定的意图模板时,可通过上下文配置的字符串进行定位。 在“语料”页签,单击“新增”,添加语料。 分析客户可能回答,并将这些回答添加到语料中去,例如,客户可能回答我要挂一个明天下午16:00李医生的内科,则双击文本框输入“我要挂一个明天下午16:00李医生的内科”,然后鼠标左键选择“明天下午”,在弹出的菜单中选择“@system.date”,选择“16:00”,在弹出的菜单中选择“@system.time”。 如何标记槽位? 在语料输入完毕后,按回车,即可实现槽位自动标记,但是有些语料比较特殊(比如本例),回车后自动标记的槽位并不符合我们的要求,因此需要手工标记。 语料您可以做如下添加: 在“槽位”页签,设置槽位的名称,是否必选以及当槽位信息缺失时系统给出的提问信息。 槽位的名称将是您在流程编排时使用的槽位变量名称的一部分。 由于时间、日期、科室、医生必须提供完整才能确认一次预约挂号的信息,这四个槽位本应该是必选的,因此此处需要配置成“必选”。 在“响应”页签,单击“新增”,配置本次意图匹配成功后返回的命令字。 响应是指当匹配到该意图时,需要反馈的文本或命令字信息。响应支持根据不同的条件表达式返回不同的文本或命令字。通常在需要匹配到的意图向客户返回某些提示信息时,可配置回复文本,当需要将响应匹配到的事件写入TOC.IntentCode变量,返回给调用方(例如对话流程)时,可配置回复命令字。、 单击“命令”文本框,设置其值为“finish”。 单击“命令”文本框或单击“新增回复”按钮,设置“回复类型”为“回复文本”,单击“请输入”文本框,设置其值为“你预定了{$date}的{$time}的{$doctor}的{$room}” 单击右下角的“保存”。 单击右上角“训练”,提示训练成功。 单击右上角“询问机器人”,对当前意图模板进行测试。 若您在添加意图时配置了上下文,询问机器人之前请在聊天界面的上下文选择框中输入已配置的上下文,否则可不选。 测试时请根据您的语料对机器人进行询问,查看机器人的返回,如果返回类似如下内容,表示匹配成功。
  • 操作步骤 添加领域。 参见添加实体添加两个实体:医生、科室。 图1 添加医生实体界面 图2 添加科室实体界面 添加挂号意图。 单击进入新创建的领域,单击“新增”,选择“一般意图”。 填写意图的名称,例如“挂号”。 在“上下文”页签,单击“输入上下文”后的“新增”,可以添加当前意图的上下文,此示例不添加上下文。 上下文指多轮对话时,机器人根据该值将多组语句当做同一轮次的对话处理。当需要使用指定的意图模板时,可通过上下文配置的字符串进行定位。 在“语料”页签,单击“新增”,添加语料。 分析客户可能回答,并将这些回答添加到语料中去,例如,客户可能回答我要挂一个明天下午16:00李医生的内科,则双击文本框输入“我要挂一个明天下午16:00李医生的内科”,然后鼠标左键选择“明天下午”,在弹出的菜单中选择“@system.date”,选择“16:00”,在弹出的菜单中选择“@system.time”。 如何标记槽位? 在语料输入完毕后,按回车,即可实现槽位自动标记,但是有些语料比较特殊(比如本例),回车后自动标记的槽位并不符合我们的要求,因此需要手工标记。 语料您可以做如下添加: 在“槽位”页签,设置槽位的名称,是否必选以及当槽位信息缺失时系统给出的提问信息。 槽位的名称将是您在流程编排时使用的槽位变量名称的一部分。 由于时间、日期、科室、医生必须提供完整才能确认一次预约挂号的信息,这四个槽位本应该是必选的,因此此处需要配置成“必选”。 在“响应”页签,单击“新增”,配置本次意图匹配成功后返回的命令字。 响应是指当匹配到该意图时,需要反馈的文本或命令字信息。响应支持根据不同的条件表达式返回不同的文本或命令字。通常在需要匹配到的意图向客户返回某些提示信息时,可配置回复文本,当需要将响应匹配到的事件写入TOC.IntentCode变量,返回给调用方(例如对话流程)时,可配置回复命令字。、 单击“命令”文本框,设置其值为“finish”。 单击“命令”文本框或单击“新增回复”按钮,设置“回复类型”为“回复文本”,单击“请输入”文本框,设置其值为“你预定了{$date}的{$time}的{$doctor}的{$room}” 单击右下角的“保存”。 单击右上角“训练”,提示训练成功。 单击右上角“询问机器人”,对当前意图模板进行测试。 若您在添加意图时配置了上下文,询问机器人之前请在聊天界面的上下文选择框中输入已配置的上下文,否则可不选。 测试时请根据您的语料对机器人进行询问,查看机器人的返回,如果返回类似如下内容,表示匹配成功。