一种多轮人机交互的方法及系统与流程

文档序号:11250952阅读:360来源:国知局
一种多轮人机交互的方法及系统与流程
本发明涉及互联网
技术领域
,具体而言,涉及一种多轮人机交互的方法及系统。
背景技术
:随着企业互联网的迅速发展,各个移动应用对智能化的需求越来越大,通过语音完成不同场景的多轮交互操作,而多轮交互的场景维持尤为重要。目前典型的类似国外苹果针对个人的siri、微软的小娜以及国内的支付宝、小米的语音助手只能通过简单的交互完成简单的操作。比如siri,能够实现给某某打个电话,支付宝的语音助手,能够实现“给我查看一下xx”快递单以及页面跳转操作。但基本上都是语音一次交互,一次完成。而在企业应用中除了有打电话和查找人的一次语音交互场景外,存在更多的是多次交互的场景,比如请假、报销、发邮件等。例如,请假应用的场景需要询问请假类型、起止时间、原因、负责人、知会人,又如建立任务类型,需要明确知道建立任务的时间,相关参与人以及任务内容等。而目前现有语音助手类应用几乎都不能满足多次交互。针对目前在企业应用中加入语音助手的主要技术难点如下:1.企业应用中很多应用场景是多轮交互,比如请假,需要与用户交互询问用户的请假类型、请假的起止时间、请假的负责人以及原因等。2.如何根据用户的输入信息,准确分发到相应场景,比如说拨打张三,需要准确分发到打电话的场景。3.如何定义和存储不同场景的相关信息。4.如何进行场景状态的维护以及场景内不同类型的跳转。5.如何进行场景内各个槽的参数的抽取以及槽参数抽取器的设计,比如时间抽取,人名抽取,城市抽取。技术实现要素:本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。为此,本发明的一个目的在于提出了一种多轮人机交互的方法。本发明的另一个目的在于提出了一种多轮人机交互的系统。有鉴于此,根据本发明的一个目的,提出了一种多轮人机交互的方法,包括:获取用户的输入信息及用户的用户id;对输入信息进行场景分发,获取输入信息的场景;根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息;将返回信息发送至应用服务端,以供应用服务端执行返回信息。本发明提供的多轮人机交互的方法,通过第三方语音识别软件获取用户语音信息,将语音信息转化为输入信息并获取用户id,此转化的输入信息为文本输入信息,根据输入信息获取对应的输入信息的场景,根据输入信息、用户id、输入信息的场景进行多轮人机交互,返回相应的问答提示信息、相关参数或者操作,由智能秘书应用服务端执行,本发明通过多轮人机交互使得在更加复杂的企业应用场景中也能通过语音来完成各种交互操作,使用范围更加广泛,并且实现了场景的精确分发,显著提高了交互准确度和效率。根据本发明的上述多轮人机交互的方法,还可以具有以下技术特征:在上述技术方案中,优选地,对输入信息进行场景分发,获取输入信息的场景的步骤,具体包括:在分发状态映射表中查找是否具有输入信息的场景记录;当具有输入信息的场景记录时,将场景记录作为输入信息的场景。在该技术方案中,在多轮场景的交互过程,用户给出的信息通常无法直接判断出用户所处的场景,比如周一,可能是请假场景的请假开始时间,也可能是提醒场景的提醒时间,这时需要使用分发状态映射表,用来维护用户所处的场景,将输入信息分发到不同的场景,首先查找分发状态映射表中是否具有输入信息的场景记录,如果有则直接返回此场景记录,解决了多轮人机交互过程中用户的输入过短而无法明确交互场景的问题。在上述任一技术方案中,优选地,还包括:当不具有输入信息的场景记录时,将场景模式库中的预存场景分发给输入信息;当分发成功后,将预存场景作为输入信息的场景,同时将预存场景记录至分发状态映射表中。在该技术方案中,当不具有输入信息的场景记录时,在场景模式库中查找预存场景分发给输入信息,当分发成功后,即输入信息中包含明确的分发模式,则将预存场景作为输入信息的场景,并将此预存场景记录至分发状态映射表中,以便后续分发场景使用,通过预存场景的分发能够快速、精准完成场景分发,提高交互效率。在上述任一技术方案中,优选地,还包括:当分发不成功时,根据输入信息的至少一个特征词,获取输入信息的场景;获取输入信息的场景成功后,将输入信息的场景记录至分发状态映射表中;获取输入信息的场景不成功时,返回空字符。在该技术方案中,当未在场景模式库中分发到预存场景时,也就是对输入信息无法匹配到准确的场景的情况下,根据输入信息的至少一个特征词,获取输入信息的场景,获取输入信息的场景成功后将输入信息的场景记录至分发状态映射表中,实现场景的精确分发。获取输入信息的场景不成功时,返回空字符,以提示用户未获取到场景。在上述任一技术方案中,优选地,根据输入信息的至少一个特征词,获取输入信息的场景,具体包括:对输入信息的至少一个特征词的场景进行权重值累加,将累加后的权重值最高的场景作为输入信息的场景。在该技术方案中,将用户的输入信息经过trie树扫描,累加碰到的特征词,并对不同特征词的场景权重累加,权重最高的场景作为输入信息的场景,如果有多个场景分类得分相同,可以配置特征词的优先级,并按照优先级别分类场景,对输入信息进行快速精确地场景分发,提高了交互效率和准确性。在上述任一技术方案中,优选地,根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息的步骤,具体包括:根据用户id及输入信息的场景,读取输入信息的场景的当前内容槽;根据当前内容槽的问答抽取项,从输入信息中抽取消息参数;抽取消息参数成功后,将消息参数转化为符合调用api(applicationprogramminginterface,应用程序编程接口)服务的参数,以及将消息参数记录到json文件中,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息。在该技术方案中,输入信息的场景分发完毕后,进行多轮人机交互过程,根据用户id及输入信息的场景读取当前内容槽,根据问答抽取项从输入信息中抽取消息参数,如果抽取到了消息参数,将消息参数转化为实际数据,即符合api服务的调用参数,便于后续对api服务的调用,并根据用户id及输入信息的场景进入下一个内容槽,同时返回给用户异常提示,以提示用户输入下一个输入信息。在上述任一技术方案中,优选地,还包括:从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数;当输入信息中不存在消息参数时,返回信息为当前内容槽的对应问句,并获取下一个输入信息;当输入信息中存在消息参数时,判断当前内容槽是否为必填槽以及当前内容槽是否提供默认参数;当当前内容槽不为必填槽时,设置抽取的消息参数为空,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息。在该技术方案中,从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数,当输入信息中不存在消息参数时,说明用户只是进入了场景并没有提供参数,需要和用户交互来获取所需参数,则返回当前内容槽的对应问句,询问用户进而获取下一个输入信息。当输入信息中存在消息参数时而未提取出来的情况下,若当前内容槽为非必填槽,则将抽取的消息参数设为空,即此槽不填写,并进入下一个内容槽,异常提示可以为等待输入,等待用户输入下一个输入信息。在上述任一技术方案中,优选地,还包括:当当前内容槽为必填槽以及当前内容槽提供默认参数时,将默认参数作为消息参数;将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,同时进入下一个内容槽;当当前内容槽为必填槽以及当前内容槽未提供默认参数时,累加对输入信息的获取次数;判断获取次数是否超过预设次数;当获取次数超过预设次数时,使返回信息为失败提示。在该技术方案中,从输入信息中抽取消息参数未成功但是输入信息中存在消息参数时,若当前槽为必填槽以及当前内容槽提供了默认参数时,将默认参数作为抽取到的消息参数,并转化为符合调用api服务的参数后进入下一个内容槽。若当前槽为必填槽以及当前内容槽没有提供默认参数时,说明用户的输入信息有误,继续获取用户的输入信息同时累加获取次数,当获取次数超过预设次数后,场景收集参数阶段失败,将场景中的失败提示返回给用户,退出交互过程。在上述任一技术方案中,优选地,还包括:当获取次数未超过预设次数时,使返回信息为异常提示,并获取下一个输入信息。在该技术方案中,当未超过预设次数时,返回给用户的异常提示可以为重新输入,等待用户重新输入信息。在上述任一技术方案中,优选地,还包括:当下一个内容槽为终止槽时,返回信息为根据消息参数调用api服务;当下一个内容槽不为终止槽时,返回信息为当前内容槽的对应问句,获取下一个输入信息。在该技术方案中,上述方案中的进入下一个内容槽前,判断此内容槽是否为终止槽,当为终止槽时场景收集参数阶段结束,根据消息参数调用api服务,当不为终止槽时,返回信息为当前槽的对应问句,询问用户并等待用户输入下一个输入信息。在上述任一技术方案中,优选地,当返回信息为根据消息参数调用api服务时,还包括:根据输入信息的场景,获取api服务的api模板;将符合调用api服务的参数替换api模板中的参数。在该技术方案中,当需要调用api服务时,根据输入信息的场景名称找到对应的api模板以及抽取的消息参数,根据api模板的槽名找到json文件中同一槽名的值进行转换,替换api模板中的槽名,改写完api模板格式后,可以直接将api模板数据交给智能秘书服务端,智能秘书服务端在根据解析返回的参数列表,并根据返回的类型执行相关操作。在上述任一技术方案中,优选地,内容槽的参数包括以下一种或其组合:槽编号、槽名称、是否为必填槽、槽类型、优先级、对应问句、问答抽取项、异常提示、异常类型、是否必须交互。在该技术方案中,内容槽的参数包括以下一种或其组合:槽编号、槽名称代表着frameparser框架中对应槽的位置编号及标记名称,槽类型包括起始槽、终结槽、终止槽,起始槽指的是frameparser解析开始遍历的槽位置,终结槽是指遍历需要结束的槽,而终止槽指的是整个框架遍历需要结束的槽,优先级代表着frameparser槽遍历的顺序,优先级越高越优先发问,同一优先级的可以随便安排顺序,即frameparser在响应用户请求的时候按照优先级来逐步和用户交互来收集任务所需参数信息,对应问句指的是frameparser跳转到该槽需要对用户进行提示的问句信息,问答抽取项指的是frameparser对用户回答句子的处理逻辑,是否必须交互指的当前槽的数据获得是否需要通过交互获得,主要解决有些槽的数据在交互的时候通过上一次回答的数据获得。根据本发明的另一个目的,提出了一种多轮人机交互的系统,包括:获取单元,用于获取用户的输入信息及用户的用户id;场景分发单元,用于对输入信息进行场景分发,获取输入信息的场景;信息交互单元,用于根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息;发送单元,用于将返回信息发送至应用服务端,以供应用服务端执行返回信息。本发明提供的多轮人机交互的系统,通过第三方语音识别软件获取用户语音信息,获取单元将语音信息转化为输入信息并获取用户id,此转化的输入信息为文本输入信息,场景分发单元根据输入信息获取对应的输入信息的场景,信息交互单元根据输入信息、用户id、输入信息的场景进行多轮人机交互,发送单元返回相应的问答提示信息、相关参数或者操作,由智能秘书应用服务端执行,本发明通过多轮人机交互使得在更加复杂的企业应用场景中也能通过语音来完成各种交互操作,使用范围更加广泛,并且实现了场景的精确分发,显著提高了交互准确度和效率。根据本发明的上述多轮人机交互的系统,还可以具有以下技术特征:在上述技术方案中,优选地,场景分发单元,具体用于:在分发状态映射表中查找是否具有输入信息的场景记录;当具有输入信息的场景记录时,将场景记录作为输入信息的场景。在该技术方案中,在多轮场景的交互过程,用户给出的信息通常无法直接判断出用户所处的场景,比如周一,可能是请假场景的请假开始时间,也可能是提醒场景的提醒时间,这时需要通过场景分发单元使用分发状态映射表,用来维护用户所处的场景,将输入信息分发到不同的场景,首先查找分发状态映射表中是否具有输入信息的场景记录,如果有则直接返回此场景记录,解决了多轮人机交互过程中用户的输入过短而无法明确交互场景的问题。在上述任一技术方案中,优选地,场景分发单元,还用于:当不具有输入信息的场景记录时,将场景模式库中的预存场景分发给输入信息;当分发成功后,将预存场景作为输入信息的场景,同时将预存场景记录至分发状态映射表中。在该技术方案中,当不具有输入信息的场景记录时,场景分发单元在场景模式库中查找预存场景分发给输入信息,当分发成功后,即输入信息中包含明确的分发模式,则将预存场景作为输入信息的场景,并将此预存场景记录至分发状态映射表中,以便后续分发场景使用,通过预存场景的分发能够快速、精准完成场景分发,提高交互效率。在上述任一技术方案中,优选地,场景分发单元,还用于:当分发不成功时,根据输入信息的至少一个特征词,获取输入信息的场景;获取输入信息的场景成功后,将输入信息的场景记录至分发状态映射表中;获取输入信息的场景不成功时,返回空字符。在该技术方案中,当未在场景模式库中分发到预存场景时,也就是对输入信息无法匹配到准确的场景的情况下,场景分发单元根据输入信息的至少一个特征词,获取输入信息的场景,获取输入信息的场景成功后将输入信息的场景记录至分发状态映射表中,实现场景的精确分发。获取输入信息的场景不成功时,返回空字符,以提示用户未获取到场景。在上述任一技术方案中,优选地,场景分发单元,还用于:对输入信息的至少一个特征词的场景进行权重值累加,将累加后的权重值最高的场景作为输入信息的场景。在该技术方案中,场景分发单元将用户的输入信息经过trie树扫描,累加碰到的特征词,并对不同特征词的场景权重累加,权重最高的场景作为输入信息的场景,如果有多个场景分类得分相同,可以配置特征词的优先级,并按照优先级别分类场景,对输入信息进行快速精确地场景分发,提高了交互效率和准确性。在上述任一技术方案中,优选地,信息交互单元,具体用于:根据用户id及所述输入信息的场景,读取输入信息的场景的当前内容槽;根据当前内容槽的问答抽取项,从输入信息中抽取消息参数;抽取消息参数成功后,将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息。在该技术方案中,输入信息的场景分发完毕后,进行多轮人机交互过程,信息交互单元根据用户id及输入信息的场景读取当前内容槽,根据问答抽取项从输入信息中抽取消息参数,如果抽取到了消息参数,将消息参数转化为实际数据,即符合api服务的调用参数,便于后续对api服务的调用,并根据用户id及输入信息的场景进入下一个内容槽,同时返回给用户异常提示,以提示用户输入下一个输入信息。在上述任一技术方案中,优选地,信息交互单元,还用于:从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数;当输入信息中不存在所述消息参数时,使返回信息为当前内容槽的对应问句,并获取下一个输入信息;当输入信息中存在消息参数时,判断当前内容槽是否为必填槽以及当前内容槽是否提供默认参数;当当前内容槽不为所述必填槽时,设置抽取的消息参数为空,进入下一个内容槽;以及使返回信息为异常提示,并获取下一个输入信息。在该技术方案中,从输入信息中抽取消息参数未成功时,信息交互单元判断输入信息中是否存在消息参数,当输入信息中不存在消息参数时,说明用户只是进入了场景并没有提供参数,需要和用户交互来获取所需参数,则返回当前内容槽的对应问句,询问用户进而获取下一个输入信息。当输入信息中存在消息参数时而未提取出来的情况下,若当前内容槽为非必填槽,则将抽取的消息参数设为空,即此槽不填写,并进入下一个内容槽,异常提示可以为等待输入,等待用户输入下一个输入信息。在上述任一技术方案中,优选地,信息交互单元,还用于:当当前内容槽为所述必填槽以及当前内容槽提供默认参数时,将默认参数作为消息参数;将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,同时进入下一个内容槽;当当前内容槽为必填槽以及当前内容槽未提供默认参数时,累加对输入信息的获取次数;判断获取次数是否超过预设次数;当获取次数超过预设次数时,使返回信息为失败提示。在该技术方案中,从输入信息中抽取消息参数未成功但是输入信息中存在消息参数时,若当前槽为必填槽以及当前内容槽提供了默认参数时,将默认参数作为抽取到的消息参数,并转化为符合调用api服务的参数后进入下一个内容槽。若当前槽为必填槽以及当前内容槽没有提供默认参数时,说明用户的输入信息有误,继续获取用户的输入信息同时累加获取次数,当获取次数超过预设次数后,场景收集参数阶段失败,将场景中的失败提示返回给用户,退出交互过程。在上述任一技术方案中,优选地,信息交互单元,还用于:当获取次数未超过预设次数时,使返回信息为异常提示,并获取下一个输入信息。在该技术方案中,当未超过预设次数时,信息交互单元返回给用户的异常提示可以为重新输入,等待用户重新输入。在上述任一技术方案中,优选地,信息交互单元,还用于:当下一个内容槽为终止槽时,返回信息为根据消息参数调用所述api服务;当下一个内容槽不为终止槽时,返回信息为当前内容槽的对应问句,并获取下一个输入信息。在该技术方案中,上述方案中的进入下一个内容槽前,判断此内容槽是否为终止槽,当为终止槽时场景收集参数阶段结束,根据消息参数调用api服务,当不为终止槽时,返回信息为当前槽的对应问句,询问用户并等待用户输入的下一个输入信息。在上述任一技术方案中,优选地,当返回信息为根据消息参数调用api服务时,信息交互单元,还用于:根据输入信息的场景,获取api服务的api模板;将符合调用api服务的参数替换api模板中的参数。在该技术方案中,当需要调用api服务时,根据输入信息的场景名称找到对应的api模板以及抽取的消息参数,根据api模板的槽名找到json文件中同一槽名的值进行转换,替换api模板中的槽名,改写完api模板格式后,可以直接将api模板数据交给智能秘书服务端,智能秘书服务端在根据解析返回的参数列表,并根据返回的类型执行相关操作。在上述任一技术方案中,优选地,内容槽的参数包括以下一种或其组合:槽编号、槽名称、是否为必填槽、槽类型、优先级、对应问句、问答抽取项、异常提示、异常类型、是否必须交互。在该技术方案中,内容槽的参数包括以下一种或其组合:槽编号、槽名称代表着frameparser框架中对应槽的位置编号及标记名称,槽类型包括起始槽、终结槽、终止槽,起始槽指的是frameparser解析开始遍历的槽位置,终结槽是指遍历需要结束的槽,而终止槽指的是整个框架遍历需要结束的槽,优先级代表着frameparser槽遍历的顺序,优先级越高越优先发问,同一优先级的可以随便安排顺序,即frameparser在响应用户请求的时候按照优先级来逐步和用户交互来收集任务所需参数信息,对应问句指的是frameparser跳转到该槽需要对用户进行提示的问句信息,问答抽取项指的是frameparser对用户回答句子的处理逻辑,是否必须交互指的当前槽的数据获得是否需要通过交互获得,主要解决有些槽的数据在交互的时候通过上一次回答的数据获得。本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1示出了本发明的一个实施例的多轮人机交互的方法的流程示意图;图2示出了本发明的另一个实施例的多轮人机交互的方法的流程示意图;图3示出了本发明的再一个实施例的多轮人机交互的方法的流程示意图;图4示出了本发明的一个实施例的多轮人机交互的系统的示意图;图5示出了本发明的一个具体实施例的多轮人机交互的系统的整体架构图。具体实施方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。本发明第一方面的实施例,提出一种多轮人机交互的方法,图1示出了本发明的一个实施例的多轮人机交互的方法的流程示意图。其中,该方法包括:步骤102,获取用户的输入信息及用户的用户id;步骤104,对输入信息进行场景分发,获取输入信息的场景;步骤106,根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息;步骤108,将返回信息发送至应用服务端,以供应用服务端执行返回信息。本发明提供的多轮人机交互的方法,通过第三方语音识别软件获取用户语音信息,将语音信息转化为输入信息并获取用户id,此转化的输入信息为文本输入信息,根据输入信息获取对应的输入信息的场景,根据输入信息、用户id、输入信息的场景进行多轮人机交互,返回相应的问答提示信息、相关参数或者操作,由智能秘书应用服务端执行,本发明通过多轮人机交互使得在更加复杂的企业应用场景中也能通过语音来完成各种交互操作,使用范围更加广泛,并且实现了场景的精确分发,显著提高了交互准确度和效率。图2示出了本发明的另一个实施例的多轮人机交互的方法的流程示意图。其中,该方法包括:步骤202,获取用户的输入信息及用户的用户id;步骤204,在分发状态映射表中查找是否具有输入信息的场景记录;步骤206,当具有输入信息的场景记录时,将场景记录作为输入信息的场景;步骤208,当不具有输入信息的场景记录时,将场景模式库中的预存场景分发给输入信息;步骤210,判断预存场景分发给输入信息是否成功;步骤212,当分发成功后,将预存场景作为输入信息的场景,同时将预存场景记录至分发状态映射表中;步骤214,当分发不成功时,对输入信息的至少一个特征词的场景进行权重值累加,将累加后的权重值最高的场景作为输入信息的场景;步骤216,判断是否成功根据特征词获取输入信息的场景;步骤218,获取输入信息的场景成功后,将输入信息的场景记录至分发状态映射表中;步骤220,获取输入信息的场景不成功时,返回空字符;步骤222,根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息;步骤224,将返回信息发送至应用服务端,以供应用服务端执行返回信息。在该实施例中,在多轮场景的交互过程,用户给出的信息通常无法直接判断出用户所处的场景,比如周一,可能是请假场景的请假开始时间,也可能是提醒场景的提醒时间,这时需要使用分发状态映射表,用来维护用户所处的场景,将输入信息分发到不同的场景,首先查找分发状态映射表中是否具有输入信息的场景记录,如果有则直接返回此场景记录,解决了多轮人机交互过程中用户的输入过短而无法明确交互场景的问题。当不具有输入信息的场景记录时,在场景模式库中查找预存场景分发给输入信息,当分发成功后,即输入信息中包含明确的分发模式,则将预存场景作为输入信息的场景,并将此预存场景记录至分发状态映射表中,以便后续分发场景使用,通过预存场景的分发能够快速、精准完成场景分发,提高交互效率。当未在场景模式库中分发到预存场景时,也就是对输入信息无法匹配到准确的场景的情况下,根据输入信息的至少一个特征词,获取输入信息的场景,获取输入信息的场景成功后将输入信息的场景记录至分发状态映射表中,实现场景的精确分发。获取输入信息的场景不成功时,返回空字符,以提示用户未获取到场景。根据输入信息的至少一个特征词,获取输入信息的场景,具体包括:将用户的输入信息经过trie树扫描,累加碰到的特征词,并对不同特征词的场景权重累加,权重最高的场景作为输入信息的场景,如果有多个场景分类得分相同,可以配置特征词的优先级,并按照优先级别分类场景,对输入信息进行快速精确地场景分发,提高了交互效率和准确性。图3示出了本发明的再一个实施例的多轮人机交互的方法的流程示意图。其中,该方法包括:步骤302,获取用户的输入信息及用户的用户id;步骤304,对输入信息进行场景分发,获取输入信息的场景;步骤306,根据用户id及输入信息的场景,读取输入信息的场景的当前内容槽;根据当前内容槽的问答抽取项,从输入信息中抽取消息参数;步骤308,判断从输入信息中抽取消息参数是否成功;步骤310,抽取消息参数成功后,将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息;步骤312,从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数,当输入信息中不存在消息参数时,进入步骤314,当输入信息中不存在消息参数时,进入步骤316;步骤314,返回信息为当前内容槽的对应问句,并获取下一个输入信息;步骤316,判断当前内容槽是否为必填槽;步骤318,当当前内容槽不为必填槽时,设置抽取的消息参数为空,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息;步骤320,当当前内容槽为必填槽时,判断当前内容槽是否提供默认参数;步骤322,当当前内容槽提供默认参数时,将默认参数作为消息参数;将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,同时进入下一个内容槽;步骤324,当当前内容槽未提供默认参数时,累加对输入信息的获取次数;判断获取次数是否超过预设次数;当获取次数超过预设次数时,使返回信息为失败提示;当获取次数未超过预设次数时,使返回信息为异常提示,并获取下一个输入信息;步骤326,判断下一个内容槽是否为终止槽,当下一个内容槽不为终止槽时,进入步骤316;步骤328,当下一个内容槽为终止槽时,返回信息为根据消息参数调用api服务;步骤330,将返回信息发送至应用服务端,以供应用服务端执行返回信息。需要说明的是,上述任一步骤中出现获取下一个输入信息时,可以从步骤304开始再进行。在该实施例中,输入信息的场景分发完毕后,进行多轮人机交互过程,根据用户id及输入信息的场景读取当前内容槽,根据问答抽取项从输入信息中抽取消息参数,如果抽取到了消息参数,将消息参数转化为实际数据,即符合api服务的调用参数,便于后续对api服务的调用,并根据用户id及输入信息的场景进入下一个内容槽,同时返回给用户异常提示,以提示用户输入下一个输入信息。从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数,当输入信息中不存在消息参数时,说明用户只是进入了场景并没有提供参数,需要和用户交互来获取所需参数,则返回当前内容槽的对应问句,询问用户进而获取下一个输入信息。当输入信息中存在消息参数时而未提取出来的情况下,若当前内容槽为非必填槽,则将抽取的消息参数设为空,即此槽不填写,并进入下一个内容槽,异常提示可以为等待输入,等待用户输入下一个输入信息。从输入信息中抽取消息参数未成功但是输入信息中存在消息参数时,若当前槽为必填槽以及当前内容槽提供了默认参数时,将默认参数作为抽取到的消息参数,并转化为符合调用api服务的参数后进入下一个内容槽。若当前槽为必填槽以及当前内容槽没有提供默认参数时,说明用户的输入信息有误,继续获取用户的输入信息同时累加获取次数,当获取次数超过预设次数后,场景收集参数阶段失败,将场景中的失败提示返回给用户,退出交互过程。当未超过预设次数时,返回给用户的异常提示可以为重新输入,等待用户重新输入信息。上述方案中的进入下一个内容槽前,判断此内容槽是否为终止槽,当为终止槽时场景收集参数阶段结束,根据消息参数调用api服务,当不为终止槽时,返回信息为当前槽的对应问句,询问用户并等待用户输入下一个输入信息。在本发明的一个实施例中,优选地,当返回信息为根据消息参数调用api服务时,还包括:根据输入信息的场景,获取api服务的api模板;将符合调用api服务的参数替换api模板中的参数。在该实施例中,当需要调用api服务时,根据输入信息的场景名称找到对应的api模板以及抽取的消息参数,根据api模板的槽名找到json文件中同一槽名的值进行转换,替换api模板中的槽名,改写完api模板格式后,可以直接将api模板数据交给智能秘书服务端,智能秘书服务端在根据解析返回的参数列表,并根据返回的类型执行相关操作。在本发明的一个实施例中,优选地,内容槽的参数包括以下一种或其组合:槽编号、槽名称、是否为必填槽、槽类型、优先级、对应问句、问答抽取项、异常提示、异常类型、是否必须交互。在该实施例中,内容槽的参数包括以下一种或其组合:槽编号、槽名称代表着frame框架中对应槽的位置编号及标记名称,槽类型包括起始槽、终结槽、终止槽,起始槽指的是frameparser解析开始遍历的槽位置,终结槽是指遍历需要结束的槽,而终止槽指的是整个框架遍历需要结束的槽,优先级代表着frameparser槽遍历的顺序,优先级越高越优先发问,同一优先级的可以随便安排顺序,即frameparser在响应用户请求的时候按照优先级来逐步和用户交互来收集任务所需参数信息,对应问句指的是frameparser跳转到该槽需要对用户进行提示的问句信息,问答抽取项指的是frameparser对用户回答句子的处理逻辑,是否必须交互指的当前槽的数据获得是否需要通过交互获得,主要解决有些槽的数据在交互的时候通过上一次回答的数据获得。本发明第二方面的实施例,提出一种多轮人机交互的系统400,图4示出了本发明的一个实施例的多轮人机交互的系统400的示意图。其中,该系统包括:获取单元402,用于获取用户的输入信息及用户的用户id;场景分发单元404,用于对输入信息进行场景分发,获取输入信息的场景;信息交互单元406,用于根据输入信息、用户id、输入信息的场景,通过多轮人机交互获取返回信息;发送单元408,用于将返回信息发送至应用服务端,以供应用服务端执行返回信息。本发明提供的多轮人机交互的系统400,通过第三方语音识别软件获取用户语音信息,获取单元402将语音信息转化为输入信息并获取用户id,此转化的输入信息为文本输入信息,场景分发单元404根据输入信息获取对应的输入信息的场景,信息交互单元406根据输入信息、用户id、输入信息的场景进行多轮人机交互,发送单元408返回相应的问答提示信息、相关参数或者操作,由智能秘书应用服务端执行,本发明通过多轮人机交互使得在更加复杂的企业应用场景中也能通过语音来完成各种交互操作,使用范围更加广泛,并且实现了场景的精确分发,显著提高了交互准确度和效率。在本发明的一个实施例中,优选地,场景分发单元404,具体用于:在分发状态映射表中查找是否具有输入信息的场景记录;当具有输入信息的场景记录时,将场景记录作为输入信息的场景。在该实施例中,在多轮场景的交互过程,用户给出的信息通常无法直接判断出用户所处的场景,比如周一,可能是请假场景的请假开始时间,也可能是提醒场景的提醒时间,这时需要通过场景分发单元404使用分发状态映射表,用来维护用户所处的场景,将输入信息分发到不同的场景,首先查找分发状态映射表中是否具有输入信息的场景记录,如果有则直接返回此场景记录,解决了多轮人机交互过程中用户的输入过短而无法明确交互场景的问题。在本发明的一个实施例中,优选地,场景分发单元404,还用于:当不具有输入信息的场景记录时,将场景模式库中的预存场景分发给输入信息;当分发成功后,将预存场景作为输入信息的场景,同时将预存场景记录至分发状态映射表中。在该实施例中,当不具有输入信息的场景记录时,场景分发单元404在场景模式库中查找预存场景分发给输入信息,当分发成功后,即输入信息中包含明确的分发模式,则将预存场景作为输入信息的场景,并将此预存场景记录至分发状态映射表中,以便后续分发场景使用,通过预存场景的分发能够快速、精准完成场景分发,提高交互效率。在本发明的一个实施例中,优选地,场景分发单元404,还用于:当分发不成功时,根据输入信息的至少一个特征词,获取输入信息的场景;获取输入信息的场景成功后,将输入信息的场景记录至分发状态映射表中;获取输入信息的场景不成功时,返回空字符。在该实施例中,当未在场景模式库中分发到预存场景时,也就是对输入信息无法匹配到准确的场景的情况下,场景分发单元404根据输入信息的至少一个特征词,获取输入信息的场景,获取输入信息的场景成功后将输入信息的场景记录至分发状态映射表中,实现场景的精确分发。获取输入信息的场景不成功时,返回空字符,以提示用户未获取到场景。在本发明的一个实施例中,优选地,场景分发单元404,还用于:对输入信息的至少一个特征词的场景进行权重值累加,将累加后的权重值最高的场景作为输入信息的场景。在该实施例中,场景分发单元404将用户的输入信息经过trie树扫描,累加碰到的特征词,并对不同特征词的场景权重累加,权重最高的场景作为输入信息的场景,如果有多个场景分类得分相同,可以配置特征词的优先级,并按照优先级别分类场景,对输入信息进行快速精确地场景分发,提高了交互效率和准确性。在本发明的一个实施例中,优选地,信息交互单元406,具体用于:根据用户id及所述输入信息的场景,读取输入信息的场景的当前内容槽;根据当前内容槽的问答抽取项,从输入信息中抽取消息参数;抽取消息参数成功后,将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,进入下一个内容槽;以及返回信息为异常提示,并获取下一个输入信息。在该实施例中,输入信息的场景分发完毕后,进行多轮人机交互过程,信息交互单元406根据用户id及输入信息的场景读取当前内容槽,根据问答抽取项从输入信息中抽取消息参数,如果抽取到了消息参数,将消息参数转化为实际数据,即符合api服务的调用参数,便于后续对api服务的调用,并根据用户id及输入信息的场景进入下一个内容槽,同时返回给用户异常提示,以提示用户输入下一个输入信息。在本发明的一个实施例中,优选地,信息交互单元406,还用于:从输入信息中抽取消息参数未成功时,判断输入信息中是否存在消息参数;当输入信息中不存在所述消息参数时,使返回信息为当前内容槽的对应问句,并获取下一个输入信息;当输入信息中存在消息参数时,判断当前内容槽是否为必填槽以及当前内容槽是否提供默认参数;当当前内容槽不为所述必填槽时,设置抽取的消息参数为空,进入下一个内容槽;以及使返回信息为异常提示,并获取下一个输入信息。在该实施例中,从输入信息中抽取消息参数未成功时,信息交互单元406判断输入信息中是否存在消息参数,当输入信息中不存在消息参数时,说明用户只是进入了场景并没有提供参数,需要和用户交互来获取所需参数,则返回当前内容槽的对应问句,询问用户进而获取下一个输入信息。当输入信息中存在消息参数时而未提取出来的情况下,若当前内容槽为非必填槽,则将抽取的消息参数设为空,即此槽不填写,并进入下一个内容槽,异常提示可以为等待输入,等待用户输入下一个输入信息。在本发明的一个实施例中,优选地,信息交互单元406,还用于:当当前内容槽为所述必填槽以及当前内容槽提供默认参数时,将默认参数作为消息参数;将消息参数转化为符合调用api服务的参数,以及将消息参数记录到json文件中,同时进入下一个内容槽;当当前内容槽为必填槽以及当前内容槽未提供默认参数时,累加对输入信息的获取次数;判断获取次数是否超过预设次数;当获取次数超过预设次数时,使返回信息为失败提示。在该实施例中,从输入信息中抽取消息参数未成功但是输入信息中存在消息参数时,若当前槽为必填槽以及当前内容槽提供了默认参数时,将默认参数作为抽取到的消息参数,并转化为符合调用api服务的参数后进入下一个内容槽。若当前槽为必填槽以及当前内容槽没有提供默认参数时,说明用户的输入信息有误,继续获取用户的输入信息同时累加获取次数,当获取次数超过预设次数后,场景收集参数阶段失败,将场景中的失败提示返回给用户,退出交互过程。在本发明的一个实施例中,优选地,信息交互单元406,还用于:当获取次数未超过预设次数时,使返回信息为异常提示,并获取下一个输入信息。在该实施例中,当未超过预设次数时,信息交互单元406返回给用户的异常提示可以为重新输入,等待用户重新输入。在本发明的一个实施例中,优选地,信息交互单元406,还用于:当下一个内容槽为终止槽时,返回信息为根据消息参数调用所述api服务;当下一个内容槽不为终止槽时,返回信息为当前内容槽的对应问句,并获取下一个输入信息。在该实施例中,上述方案中的进入下一个内容槽前,判断此内容槽是否为终止槽,当为终止槽时场景收集参数阶段结束,根据消息参数调用api服务,当不为终止槽时,返回信息为当前槽的对应问句,询问用户并等待用户输入的下一个输入信息。在本发明的一个实施例中,优选地,当返回信息为根据消息参数调用api服务时,信息交互单元406,还用于:根据输入信息的场景,获取api服务的api模板;将符合调用api服务的参数替换api模板中的参数。在该实施例中,当需要调用api服务时,根据输入信息的场景名称找到对应的api模板以及抽取的消息参数,根据api模板的槽名找到json文件中同一槽名的值进行转换,替换api模板中的槽名,改写完api模板格式后,可以直接将api模板数据交给智能秘书服务端,智能秘书服务端在根据解析返回的参数列表,并根据返回的类型执行相关操作。在本发明的一个实施例中,优选地,内容槽的参数包括以下一种或其组合:槽编号、槽名称、是否为必填槽、槽类型、优先级、对应问句、问答抽取项、异常提示、异常类型、是否必须交互。在该实施例中,内容槽的参数包括以下一种或其组合:槽编号、槽名称代表着frame框架中对应槽的位置编号及标记名称,槽类型包括起始槽、终结槽、终止槽,起始槽指的是frameparser解析开始遍历的槽位置,终结槽是指遍历需要结束的槽,而终止槽指的是整个框架遍历需要结束的槽,优先级代表着frameparser槽遍历的顺序,优先级越高越优先发问,同一优先级的可以随便安排顺序,即frameparser在响应用户请求的时候按照优先级来逐步和用户交互来收集任务所需参数信息,对应问句指的是frameparser跳转到该槽需要对用户进行提示的问句信息,问答抽取项指的是frameparser对用户回答句子的处理逻辑,是否必须交互指的当前槽的数据获得是否需要通过交互获得,主要解决有些槽的数据在交互的时候通过上一次回答的数据获得。本发明具体实施例中,智能秘书的主要工作过程是根据用户的输入信息分发到不同的场景提示用户完成不同场景的交互。该方案的整体架构图如图5所示,从宏观上看主要分为三大子系统:场景分发系统、场景解析frameparser系统以及应用api管理系统。下面分别来叙述各子系统:一.场景分发系统该部分主要负责根据输入信息,分发不同的场景。场景的分发状态可以分为两种,一是没有进入场景,二是已经进入场景。关于场景分发系统中的基础构件包括:1.场景分发系统的基础构件场景分发系统主要包含三个基础构件,一个是场景分发状态映射表,另一个是场景模式分发器,再一个是场景分类器。(1)场景分发状态映射表:在多轮场景的交互过程,用户给出的信息通常无法直接判断出用户所处的场景,比如周一,可能是请假场景的请假开始时间,也可能是提醒场景的提醒时间,这时需要使用场景分发状态映射表来维护用户所处的场景,用于解决多轮人机交互过程中用户的输入信息较短,而无法明确交互场景的问题。场景分发状态映射表的具体实现方式采用键值对数据库redis进行实现,在redis建立一个用于场景分发的场景分发状态映射表,其中key是用户的唯一id,value是用户所处的某个场景的编号。(2)场景模式分发器:场景模式分发器主要用于解决用户的输入信息中包含明确的场景分发模式的情况。例如在“给xx打个电话”中,可以明确知道是要分发到打电话场景,“向xx请个假”中,可以明确知道是要分发到请假场景。场景模式分发器主要实现方式是正确匹配场景模式库中的模式。场景模式库里面包含了许多的场景模式,即模式名称为key,场景编码为value的映射资源文件。该部分场景分发通常比较准确,不易误判。(3)场景分类器:场景分类器是整个场景分发器的核心,在整个场景分发子系统中主要解决通过模式无法准确进行匹配到场景的情况,核心思想是通过一些场景特征词构建一个场景分类器,进行不同场景打分,选择一个得分最高的场景。场景分类器具体的实现是通过“配置文件+trie树”的方式,加速场景模式的匹配,从而加速场景的分发。实现细节如下,首先建立的场景特征词的配置文件如表1所示:表1关键词场景编号概率优先级股票gp0.82股价gp0.82翻译tr1.01机票ap1.01在系统初始化时候,将上述配置文件加载到trie树中,叶子节点存储场景编号及其概率和优先级。利用上述配置文件可以简单的建立一个场景分发器,场景分发过程是将用户输入经过trie树扫描,累加碰到的关键词,并对不同类别权重累加,权重最高的作为分类结果,如果有多个场景分类得分相同,则按照优先级别分类。2.场景分发系统的基本流程用户首先查找分发状态映射表是否有场景记录,如果有则直接返回场景,如果没有场景,那么进入场景选择模块,场景选择模块主要通过两种方式,一种是根据分发模式进行分发,另一种是构建一个分类器按照场景的特征词进行分发。如果用户能够在场景模式中得到分发,那么首先在分发状态映射表中记录用户所处的场景状态,然后返回用户所处的场景。如果用户不能在场景模式分发中进行匹配,那么进入场景分类器根据关键词进行匹配,如果能得到匹配的场景,同样在分发状态映射表中记录用户的场景,返回用户所处的场景,但如果匹配不到,那么直接返回空字符表示不能确定用户所处的场景,整个场景分发子系统就此结束。从图5的整体交互架构看,经过场景分发子系统分发到相应的场景,下一步交给具体的frameparser进行场景交互。二.frameparserframeparser主要完成从场景分发器接收用户id、场景id、用户的输入信息,然后根据用户从状态stateredis获得用户当前场景处于哪个状态来采取动作和输出,每次响应有两个工作要做:第一个是根据frame信息以及当前用户所处场景状态输出对应的问句;第二个是根据用户的输入信息抽取出当前场景任务所需的参数信息并保存。1.frameparser的基础构件(1)frame槽结构设计:一个场景对应一个框架frame,比如订航班的框架可能采取如表2形式:表2针对frame框架中的每个槽对应的各个参数的解释如下:1)槽序号和名称,代表着frame框架中对应槽的位置编号及标记名称2)槽类型,主要包括起始槽、终结槽、终止槽。起始槽指的是frameparser解析开始遍历的槽位置,终结槽是指遍历需要结束的槽,而终止槽指的是整个框架遍历需要结束的槽。3)优先级,代表着frame槽遍历的顺序,优先级越高越优先发问,同一优先级的可以随便安排顺序,即frameparser在响应用户请求的时候按照优先级来逐步和用户交互来收集任务所需参数信息。4)对应问句,指的是frameparser跳转到该槽需要对用户进行提示的问句信息。5)异常提示,指的是frameparser没有获取到相关参数给予的提示信息,异常提示只对必填槽起作用,选填槽不需要,当抽取邮件等处理程序没有按照预期获得结果时候作为给用户的提示信息。异常类型分为三种:一种是重复,代表如果没有抽取到参数需要重复执行;第二种是结束,代表找不到处理失败要退出frameparser;第三种是缺省,代表如果找不到则取缺省值。6)问答抽取,指的是frameparser对用户回答句子的处理逻辑。all代表所有输入作为整体获取到的参数,mail代表抽取邮箱内容作为获取参数,还有一些类型比如city(火车或者飞机等地理位置相关),time(时间类)等其他常见类型。7)是否交互,指的当前槽的数据获得是否需要通过交互获得,主要解决有些槽的数据未在交互的时候通过上一次回答的数据得到,比如针对上述订票场景,询问出发城市的时候,用户可能说,北京到上海,间接的把下一个槽的到达城市说了,如果该槽是否交互设置为false,那么到达城市槽可以直接不进行交互完成抽取。在具体每个场景的frame采用xml(json)格式文件进行储存,除了整体的槽结构外,针对具体的每个场景,不同的场景含有不同的属性,场景的名称、场景的编号、场景的错误提示、场景的异常提示、场景的保持时间、主动退出模式等。(2)frameparser场景基本属性设计:针对每个场景,在frameparser定义文件里面定义如下四个参数:1)每个场景需要定义参数,即会话过期时间,不同场景可能长度不同,比如比较长的会话可以设定长些,短的会话设定短些,以秒为单位比较灵活。2)每个场景也需要定义一个主动退出模式,比如订机票的:放弃、不订了等等,不同的场景可能都不一样,所以需要写到场景的frameparser定义文件里面。3)同时要定义一句主动退出情况下对应的输出,这是发现用户主动放弃会话的时候的响应语句,可能不同场景对应输出不同。4)任务失败提示语,如果场景分析失败,比如抽取不到必填的内容,则给出任务失败提示语,与主动放弃提示语可以相同也可以不同。(3)frameparser的场景状态映射表:1)映射表1:每个框架对应的起始槽位编号,可以单独有个映射表,输入框架编号,返回其对应的起始框架编号;2)映射表2:建立框架槽位之间转移关系,通过每个槽的具体位置,可以直接获取到下一个槽的具体位置。3)映射表3:记载某个框架槽编号对应的所有槽信息,映射表结构,key可以是框架id+槽编号,value结构存储frameparser中槽的每行信息,该行信息是一个槽类型结构。4)映射表4:记载每个场景的状态抽取参数信息。状态参数抽取信息,用户记录相关场景中参数的抽取信息。状态参数抽取信息有对应的一个状态文件,采取json格式,这个状态文件在用户进入这个场景时候,由场景分发器将对应槽位为空值的json文件插入状态信息中。json文件应该包含frameparser对应的所有可选必选槽名称及其对应的值,比如上述的邮件例子对应json状态文件需要包含如下信息(并标明是必填还是选填):fromcity=nulltocity=nulldate=null通常上述的1)至4)结构的场景交互状态映射表在具体实现的时候,采用redis进行存储和实现,由于都是键值对信息,存取效率较高。2.frameparser的工作流程步骤1.初始数据的加载,加载各个功能的frame框架数据,构建如上的四个映射表结构。步骤2.响应服务请求,作为服务响应请求,输入为用户id+用户所处的场景id+用户问句,输出为智能会话的回答语句,假设用户已经分发到某个场景中,执行如下操作。步骤2.1根据用户id+场景id作为key,读取状态信息映射表中映射表3读取对应内容槽的数据结构,进行步骤2.2的处理逻辑。步骤2.2执行下列操作:步骤2.2.1根据槽属性中“问答抽取”项调用相应的抽取器从输入信息文本中抽取参数,此时有两种可能:抽取到了所需信息或者没有抽取到所需信息,如果抽取到了所需信息,则进行步骤2.2.2,否则进行步骤2.2.3。步骤2.2.2.抽到了所需信息,这种情况下需要根据抽取到的参数进行相应转化为实际的数据比如用户name转为用户id等类似操作,将具体参数记录到抽取的状态映射表4的json文件中,再根据场景id和当前槽位查找下一个槽位编号从利用状态映射表2找到新槽位置,执行相关移动操作,并在状态映射表1中设置当前槽编号设置为新的槽编号,并从状态信息映射表3的提示信息返回给用户提示用户输入相应参数。如果新槽的类型是“终止槽”,则退出循环,退出前将保存到状态信息表4的json文件中所有参数返回,同时清空用户当前所处的状态,并记录退出时标志退出原因t1。如果不是终止槽,记录当前槽属性的“对应问句”直接返回,并标志退出原因t2。步骤2.2.3.没有抽取到所需信息,可能分以下两种情况:(1)用户只是进入场景,没有提供参数,比如用户说:打电话,建立一个提醒;(2)用户提供了数据但是没有抽取出来。针对(1)这类情况主要发生在第一次进入时,只需要将起始槽属性的“对应问句”返回给用户,提示用户完成相应抽取,并标志退出原因t2。针对(2)这类用户提供了数据但是没有抽取,此时需要结合当前槽是否是必填槽以及当前槽是否提供默认函数这四种情况进行考虑。如果是必填槽,提供了默认函数,按照默认函数得到默认值,比如说查天气,用户没有给出查询时间,用户默认的是当天,设置相关抽取值,这种情况跳转到步骤2.2.2步执行相关操作。如果是可选槽,无论是否提供默认函数,此时假设抽取值为空,执行类似步骤2.2.2步的操作,根据场景id和当前槽位查找下一个槽位编号从利用状态映射表2找到新槽位置,执行相关移动操作,并在状态映射表1中设置当前槽编号设置为新的槽编号,并从状态信息映射表3的提示信息返回给用户提示用户输入相应参数。如果是必填槽,用户没有提供默认函数,说明是用户输入出错(包括抽取器不能正常抽取这类数据的情况),那么累加用户的重试次数,判断重试的次数是否超过用户指定的次数,如果超过则退出整个场景,清空记录的状态信息,并标志退出的原因为t3,否则从当前槽的“异常提示”中取出对应问句再次进行询问用户,并标志退出原因t4。步骤2.3退出操作后处理逻辑:步骤2.3.1如果退出原因是t2,说明需要和用户交互来获取所需参数,此时首先将当前槽对应的“对应问句”提示返回给用户,等待用户新输入,程序退出frameparser模块。步骤2.3.2如果退出原因是t1,说明场景收集参数阶段结束,将框架的抽取参数传给api应用管理部分或者直接传给后台智能秘书服务端,退出整个frameparser模块。步骤2.3.3如果退出原因是t4,说明需要和用户交互来获取所需参数,此时首先将当前槽对应的“异常提示”提示返回给用户,等待用户新输入,程序退出frameparser模块。步骤2.3.4如果退出原因是t3,说明场景收集参数阶段失败,将场景中的“异常信息”提示返回给用户,退出整个frameparser模块。三.应用api相关管理存在应用api管理的步骤是因为之前通过frameparser解析得到的参数,往往还不能直接作为调用相关api服务的参数,需要进行转化操作。比如以上述的订票服务为例,我们抽取到起始城市为北京和上海,而api的结构是fromcity=bj&tocity=sh,此时需要针对抽取出的参数进行字段名称和字段值进一步去做转化。应用api管理的目的是灵活管理各个场景对应的外部服务api,自动根据与用户的交互收集到的参数构造api请求,然后将请求结果返回,并构造输出json内容。针对每个场景需要存储一个是api模板与输出模板文件。比如,打电话的api模板定义如下:api改写逻辑:1.根据场景名称找到对应的api模板以及读取抽取的参数信息。2.根据api里面的槽名找到redis对应json中同一槽名的值,对值执行action动作,这里往往是一个值转换过程,比如“北京”需要转换为“bj”等。将转换后的值填入并替换掉对应的[槽名|action。3.action可能为空,就是原值不动,action对应的功能最好类似于frameparser的“回答抽取”一样,进行相应的转化操作。改写完的api格式后,可以直接将api的模板数据交给智能秘书服务端,智能秘书服务端在根据解析返回的参数列表,并根据返回的类型执行相关操作。本发明基于智能秘书的多轮人交互框架具备以下优点:1.能够快速支持新的场景,针对新的场景不需要重新开发,只需要编写新的场景的frameparser文件都可以支持新的场景的操作。2.支持场景的完整,可以加入相关条件槽操作,实现槽的跳转,理论上可以支持任意任务型操作,因为程序语言的角度看,当定义了顺序、条件、循环结构,任意程序都可以编写。3.用户的比较体验好,加入预取操作可以同时接受用户多个的参数,较少了用户之间的交互操作。4.会话框架的回答抽取支持不少语音上模糊操作,能对一些企业人名、请假类型等进行不同层度的纠错处理。在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1