CN109408800B - 对话机器人系统及相关技能配置方法 - Google Patents
对话机器人系统及相关技能配置方法 Download PDFInfo
- Publication number
- CN109408800B CN109408800B CN201810969490.4A CN201810969490A CN109408800B CN 109408800 B CN109408800 B CN 109408800B CN 201810969490 A CN201810969490 A CN 201810969490A CN 109408800 B CN109408800 B CN 109408800B
- Authority
- CN
- China
- Prior art keywords
- module
- skill
- sub
- target
- language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013515 script Methods 0.000 claims abstract description 55
- 238000013507 mapping Methods 0.000 claims description 46
- 238000012549 training Methods 0.000 claims description 30
- 230000002776 aggregation Effects 0.000 claims description 24
- 238000004220 aggregation Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 19
- 238000004519 manufacturing process Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 12
- 230000008520 organization Effects 0.000 abstract description 6
- 230000001419 dependent effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000011161 development Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 241000287828 Gallus gallus Species 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种对话机器人系统及相关技能配置方法。该技能配置方法包括:获取针对目标技能的技能语料;基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块;以及将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块。由此,对话机器人引擎中技能和应用的数据组织方式,配置上应用数据依赖技能数据,从而实现技能生产者只需关系技能相关的服务自身,不用关心架构全链路上的依赖的效果。
Description
技术领域
本发明涉及计算领域,尤其涉及一种对话机器人系统及相关技能配置方法。
背景技术
随着计算机和人工智能技术的发展,对话系统或是聊天机器人也已变得愈发智能。现有的对话系统大致可以分为基于文本和基于语音两类。在这其中,语音对话系统(也可称为口语对话系统)以其输入方便而得到越来越广泛的应用。
图1示出了现有口语对话系统的处理流程示意图。如图1所示,用户语音经过语音识别模块(AutomaticSpeechRecognition,ASR)产生语音识别结果,即用户话语;随后自然语言理解模块(NaturalLanguageUnderstanding,NLU)对用户话语进行语义解析;对话管理模块(DialogManagement,DM)根据NLU语义解析结果选择需要执行的系统行为。自然语言生成模块(NaturalLanguageGeneration,NLG)根据系统行为结果生成自然语言或者系统话语;最后,生成的语言由语音合成模块(Text-to-Speech,TTS)朗读给用户听。
随着对话机器人能够执行的任务越来越多,其需要掌握的技能也越来越多。新技能的加入和已有技能的更新成为对话机器人系统一直需要面对的问题。在这其中,如何高效地确保技能的生成和上线,同时又能保障线上数据和服务逻辑的稳定性,成为对话机器人系统亟需解决的一大问题。
为此,需要一种能够灵活独立配置技能的对话机器人系统。
发明内容
本发明的目的是提供一种对话机器人系统及相关技能配置方法,通过将相关服务按技能领域的粒度进行划分,支持不同技能的独立迭代,从而保障技能的高效生产与上线,同时确保线上数据和服务逻辑的稳定性。
根据本发明的一个方面,提供了一种对话机器人的技能配置方法,包括:获取针对目标技能的技能语料;基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块;以及将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块。由此,通过针对目标技能的服务模块化,方便实现技能的添加与更新。
可选地,获取针对目标技能的技能语料可以包括:通过众包获取针对目标技能的技能语料。由此方便语料的大量获取。
可选地,该方法还可以包括:在搜索聚合模块中实现针对所述目标技能的webhook配置。由此,对内容服务也能够高效方便地实现技能粒度的划分。
可选地,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块可以包括:分别生成或更新所述语言理解模块和语言生成模块对接入的所述语言理解子模块和语言生成子模块的访问配置数据;以及分别生成或更新所述目标技能到所述语言理解子模块和语言生成子模块的服务映射数据。
由此,方便子服务与NLU和NLG服务本身以及目标技能的关联。
可选地,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块可以包括:在涉及针对不同目标技能的接入时,优先接入更新的子剧本、语言理解子模块和语言生成子模块。由此,通过服务部署的可打断性,实现快速更新,并最小化因新模块数据的大量载入对系统正常运作的影响。
可选地,该方法还可以包括:将生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块存储至技能库。
可选地,该方法还可以包括:从所述技能库中选择多个目标技能;生成基于所述多个目标技能的应用。
可选地,生成基于所述多个目标技能的应用可以包括:训练具有泛意图确定功能的应用通用剧本;训练具有技能判别功能的应用级语言理解模板。
可选地,生成基于所述多个目标技能的应用可以包括:定制为所述多个目标技能进行优先级排序的排序插件。
可选地,从所述技能库中选择多个目标技能可以包括:从所述技能库中获取针对多个目标技能中每一个目标技能的语言理解子模块服务名、技能webhook配置、对话管理模块副本、语言生成模板、包含实体列表和用于应用训练的语料;以及生成基于所述多个目标技能的应用可以包括如下至少一项:生成搜索聚合服务名、用户实体文件地址;以及基于所述多个目标技能生成对话管理模块剧本动态库地址、语言理解子模块相关模型文件地址、目标技能到实体列表映射数据、目标技能到语言理解子模块服务映射数据、应用级语言生成模板、目标技能列表和目标技能到webhook映射数据。
可选地,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块可以包括:将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;将用户实体文件、语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;将应用级语言生成模板推送至所述语言生成模块;将目标技能列表推送至搜索聚合模块;以及将目标技能到webhook映射数据推送至技能网关。
可选地,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块可以包括:将目标技能和/或包含目标技能的应用经迭代、验证、预发和线上环境进行接入。
由此,使服务依照迭代->验证->预发->线上的这个过程顺序集成,同时也使过程中相邻环境间可以独立集成,业务开发人员,测试人员,架构开发人员的工作可以依赖执行,也可以独立执行,保证线上稳定的同时,也分别给开发,测试,上线三个过程提升了效率。
根据本发明的另一方面,还提供了一种对话机器人系统,包括:语料库,用于获取针对各种目标技能的技能语料;技能生产平台,用于基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块;语言理解模块,用于识别用户输入话语的语义和意图,以及接入针对所述目标技能的语言理解子模块;对话管理模块,用于根据剧本对对话进行决策,以及接入针对所述目标技能的子剧本;以及语言生成模块,用于基于决策结果生成自然语言,以及接入针对所述目标技能的语言生成子模块。
可选地,该系统还可以包括:搜索聚合模块,用于基于所述意图和语义进行查询与排序以得到经排序的查询结果,其中,所述搜索聚合模块实现针对所述目标技能的webhook配置。
可选地,所述语言理解模块基于其对所述语言理解子模块的访问配置数据以及所述目标技能到所述语言理解子模块的服务映射数据来接入针对所述目标技能的语言理解子模块,并且所述语言生成模块基于其对所述语言生成子模块的访问配置数据以及所述目标技能到所述语言生成子模块的服务映射数据来接入针对所述目标技能的语言生成子模块。
可选地,所述语言理解模块可以优先接入更新的语言理解子模块。
可选地,该系统还可以包括:技能库,用于存储由所述技能生成平台生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。
可选地,该系统还可以包括:应用训练流程引擎,用于从所述技能库中选择多个目标技能以训练出基于多个目标技能的应用。
可选地,应用训练流程引擎可以进一步用于:训练具有泛意图确定功能的应用通用剧本;训练具有技能判别功能的应用级语言理解模板。
可选地,应用训练流程引擎可以进一步用于:定制为所述多个目标技能进行优先级排序的排序插件。
可选地,该系统还可以包括:应用库,用于存储应用相关数据;其中,所述应用训练流程引擎从所述技能库中获取针对多个目标技能中每一个目标技能的语言理解子模块服务名、技能webhook配置、对话管理模块副本、语言生成模板、包含实体列表和用于应用训练的语料以生成对话管理模块剧本动态库地址、语言理解子模块相关模型文件地址、目标技能到实体列表映射数据、目标技能到语言理解子模块服务映射数据、应用级语言生成模板、目标技能列表和目标技能到webhook映射数据并生成的上述数据存储在所述应用库中。
可选地,该系统还可以包括:运营管理平台,用于管理技能和应用的运营,其中,所述应用库还存储从所述运营管理平台获取的搜索聚合服务名。
可选地,所述运营管理平台可以进一步用于:将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;将语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;将应用级语言生成模板推送至所述语言生成模块;将目标技能列表推送至搜索聚合模块;以及将目标技能到webhook映射数据推送至技能网关。
可选地,该系统还可以包括:开放平台,用于用户自行建立技能和/或组装应用,其中,所述运营管理平台将所述应用库从所述开发平台获取的用户实体文件地址推送至所述语言理解模块。
可选地,该系统还可以包括:控制中心,所述技能生成平台通过访问所述控制中心生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。
由此,本发明的对话机器人系统及相关技能配置方法,根据本发明TaskBot引擎中技能和应用的数据组织方式,配置上应用数据依赖技能数据,对外服务上应用是独立的,不受技能数据迭代影响。同时,线上技能相关服务通过根据技能上线操作自动部署的方式,实现技能相关服务自动接入技能处理链路,从而实现技能生产者只需关系技能相关的服务自身,不用关心架构全链路上的依赖的效果。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了现有口语对话系统的处理流程示意图。
图2示出了TaskBot的系统示意图。
图3示出了TaskBot的细化系统示意图。
图4示出了根据本发明一个实施例的对话机器人技能配置方法的流程示意图。
图5示出了根据本发明一个实施例的TaskBot的细化系统示意图。
图6示出了技能开发或更新的主要流程。
图7示出了根据本发明一个实施例的对话机器人系统的结构示意图。
图8示出了从技能数据生成到应用上线的流程图。
图9示出了本发明中应用上线的流程。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
任务驱动的对话机器人(TaskBot)是智能对话机器人的一种,适用于用户带着明确目的,希望得到满足特定限制条件的信息或服务的应用场景,例如:订餐,订票,寻找音乐、电影或某种商品,等等。最简单的单轮对话方式通常是:通过输入的自然语言识别出具体领域和意图,从自然语言中抽出结构化槽位字段,然后结合识别出的意图和槽位字段从特定的内容服务器中获取结构化内容,最后将结构化内容生成为自然语言进行输出。但由于用户的需求可以比较复杂,可能需要分多轮进行陈述,用户也可能在对话过程中不断修改或完善自己的需求。此外,当用户的陈述的需求不够具体或明确的时候,机器也可以通过询问、澄清或确认来帮助用户找到满意的结果。
在此,意图可以指代用户的精确目的,例如,股票技能下的可以有查询股价和查询公司名对应股票代码这样不同的意图。槽位是按实体类别从自然语言中抽取出的自然实体,例如从‘XXX(“XXX”在此指代某个名人的名字)的年龄’中抽取‘XXX’作为实体类别‘人物’的槽位。一个意图对应了一组槽位,即从自然语言中抽取出的结构化输入。
对于多轮对话,主要有以下这三种场景。
在单轮对话过程中对意图的判定存在模棱两可的状态,或者识别出了较粗粒度的意图,但需要更细粒度的意图,来更好地提供内容。这需要引导用户在新一轮对话中输入带有精确意图的语句,因此需要通过NLG生成新一轮对话的问题。例如输入为“我想吃鸡”,用户可能想玩“吃鸡”游戏,或者只是想吃鸡肉,于是第一轮的输出为“请问你是想玩吃鸡的游戏,还是想看附近的餐馆信息”,那么用户的下一轮输入就会精确地定位意图了;
在单轮对话过程中识别出了意图,但因为输入语句中的槽位信息不足,需要通过NLG生成问题,引导新一轮的输入,例如输入为“我想订一张电影票”,缺少“电影名”和“时间”等槽位信息,于是第一轮的输出为“你想订什么时间的什么电影呢”,这样用户在下一轮的输入中就会提供需要的槽位信息了;
需要根据历史的对话内容来理解当前的输入,例如第一轮用户输入为“今天杭州天气怎么样”,第二轮的用户输入为“北京呢”,那么需要根据第一轮的天气意图来补充第二轮的输入中用户省略的部分。
从单轮到多轮,不论是模棱两可的意图确定,或是槽位不足的判定,亦或是对话上下文的状态维护,都需要一个对话管理的服务来管理当前对话的状态,并按照不同领域和意图的剧本来生成回复。对于这种模式,如果按照功能职责进行划分,可以形成如图2所示的微服务架构。图2示出了TaskBot的系统示意图。如图2所示,由对话管理模块(DM)获取用户输入的话语并将其送至语言理解模块(NLU),NLU从输入的话语中识别出意图和槽位信息,并将其返回给DM,DM将上述意图和槽位信息输入内容服务器以获取包含用户所需答案的结构化内容,随后语言生成模块(NLG)将获取的结构化内容生成为自然语言进行输出。
为了更为高效精确地按照技能领域识别意图,以及在判断出多个意图的情况下进行排序选择,可以将内容服务器进一步细化为包括搜索聚合模块(US)和技能网关模块(Skill Gateway)。图3示出了TaskBot的细化系统示意图。如图3所示,US可以用作结果查询和排序模块,当用户的语音输入对应于多个意图时,US可以经由技能网关从下游各技能内容中获取内容后进行排序,以设定不同的排序策略。
在此,图2和图3中所涉及的各个模块,即,DM、NLU、NLG、内容服务模块(具体可以包括US和技能网关模块),可以看作是提供某种特定功能的服务。具体地,这些服务各自可以实现为Http服务器,接收相应的输入,进行对应功能的处理,并将处理结果加以输出。例如,NLU服务接收输入是自然语言的句子,处理过程是进行语义分析,输出语句对应的意图和槽位;内容服务接收的输入是意图和槽位信息,处理过程是进行数据检索,再输出对应的数据。服务与服务之间通过输入和输出进行串联,整体形成对话机器人系统。
随着对话机器人能够执行的任务越来越多,其需要掌握的技能也越来越多。新技能的加入和已有技能的更新成为对话机器人系统一直需要面对的问题。在这其中,如何高效地确保技能的生成和上线,同时又能保障线上数据和服务逻辑的稳定性,成为对话机器人系统亟需解决的一大问题。
为此,本发明提出了一种对话机器人的技能配置方法,其通过将相关服务按技能领域的粒度进行划分,支持不同技能的独立迭代,从而保障技能的高效生产与上线,同时确保线上数据和服务逻辑的稳定性。图4示出了根据本发明一个实施例的对话机器人技能配置方法的流程示意图。
在步骤S410,获取针对目标技能的技能语料。在步骤S420,基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。在步骤S430,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块。进一步地,可以对内容服务也实现技能粒度的划分,于是本发明的技能配置方法还可以包括在搜索聚合模块中实现针对所述目标技能的webhook配置。
在此,技能可以指代TaskBot能力的最小单元,典型的技能如天气技能,提供查询天气的能力;如股票技能,提供查询股价的能力。技能由意图组成,意图是从技能中细分出来的用户精确目的,例如,股票技能下查询股价和查询公司名对应股票代码的不同意图。一个意图会对应无数的自然语言泛化,这些自然语言泛化就是技能语料,可以使用大量的技能语料训练语料模型。
进一步地,本发明的TaskBot系统可以实现为如图5所示的细化形态。如图5所示,在本发明中,可以将NLU和NLG(以及优选的内容服务器)按技能领域的粒度进行划分,以支持不同技能的独立迭代。优选地,可以生成或更新所述语言理解模块和语言生成模块各自对接入的所述语言理解子模块和语言生成子模块的访问配置数据,以及目标技能到其对应的语言理解子模块和语言生成子模块的服务映射数据。即,如图5所示,可以在进行技能添加或更新时,例如在添加技能A时,可以生成NLU对技能A的子NLU(Sub NLU)的访问配置数据,以及技能A到其对应子NLU的服务映射数据,以实现经由NLU对特定子NLU(例如,SkillASub NLU)的访问。进一步地,可以在添加技能A时,生成或准备专用于技能A的内容服务,如图5所示可经由技能网关(SkillGateway)访问的技能A的内容服务器(SkillAContentServer),优选地,上述针对技能A的内容服务的添加能够以Webhook方式实现。另外,不同于NLU、NLG和内容服务,针对目标技能A添加的子剧本能够更为完全地整合至已有的对话管理服务,而这与对话管理服务本身的实现和运行机制相关。
如下将从技能语料、DM剧本、技能的NLU实体类型、技能的NLG模板、技能的SubNLU、技能的Sub NLG和技能的内容服务webhook配置对技能数据的生产和迭代进行描述。
训练技能需要首先获取技能语料。在本发明中,例如可以先按产品维度划分技能下的意图,再按意图模板来泛化不同的自然语言语料。优选地可以通过众包的方式来收集大量的语料,再根据语料训练出技能的自然语言理解模型,从而能够对自然语言进行理解,判断出是否属于对应的技能,以及是属于技能下的什么意图。
DM剧本是实现对话管理的核心,主要是根据不同的意图实现不同的剧本逻辑控制,起到上下游服务协议串联的功能。DM服务例如可以根据NLU给出的语义分析结果基于剧本访问下游US服务获取召回结果。在此,剧本可以指代DM中的对话任务树。对话任务树是对话管理引擎中的重要组成部分,可由不同的代理组件组成。大部分的业务需求都可以描述为一个明确的对话任务,同时也可以细分为几个具体的对话子任务。DM通过对话任务树的形式描述对话任务的分层模型。一个对话任务可由一个对话任务树组成,对话任务树的每个代理节点可以负责处理一个子任务的执行。本发明的TaskBot引擎实现例如可以根据用户的剧本配置生成对应的C++逻辑代码并编译成插件集成到DM服务中。
技能的NLU实体类型是NLU对自然语言进行处理时,在判断所属领域时,先按领域下包含的实体对自然语言进行结构化处理,作为判断依据,以及在确定意图之后根据实体抽取对应的槽位信息。在此,实体可以指代人名、机构名、地名以及其他所有以名称为标识的实体,其通常是人们所感兴趣内容的主体。
技能的NLG子模块例如可以是该技能的NLG模板,其主要按照意图的粒度定义了从内容服务返回的结构化字段中抽取字段组成自然语言回复,以及在槽位缺失或意图不明的情况下根据结构化数据生成引导回复。
针对特定技能的Sub NLU和Sub NLG的生成是技能的NLU和NLG定制策略。按技能维度来设立NLU和NLG的目的,主要是保障每个技能的自然语言理解和生成逻辑迭代的独立性。通过使用服务化的方式来实现Sub NLU和Sub NLG,使得技能在配置时只需要指定对应的服务名称即可。在此,服务化指的是每个技能都有一个独立的NLU服务和一个独立的NLG服务来实现这个技能下特定的逻辑,由此方便实现技能的独立迭代。
技能的内容服务与Sub NLU和Sub NLG不同,可以没有固定的框架模式,只需要按照剧本根据指定的输入提供指定的输出即可。因此优选地,可以在实现上使用面向开放和扩展更为友好的webhook方式,只要实现了指定的协议,提供内容的服务可以是任意的HTTP服务。
因为技能的语料包含了技能的所有意图信息,和基于意图下的实体进行泛化的信息,所以可以用于自动化生成初步的剧本、初步的NLG模板以及NLU实体类型,从而方便技能的快速开发。图6示出了技能开发或更新的主要流程。
如图6所示,首先技能的众包语料统一录入语料管理平台。在此可以对语料进行预处理,生成按意图结构化好的数据,然后按版本进行存储。技能生产平台在新增或迭代技能配置时,需要指定从语料管理平台获取的语料版本。在获取到语料后,技能生产平台会优选访问后端的CC(Control Center,控制中心)服务,根据语料自动生成初步的剧本、初步的NLG模板以及NLU实体类型。随后,可以在技能生产平台完善剧本和NLG模板的配置,主要是针对下游技能内容服务协议对接部分,同时还需要配置Sub NLU和NLG,以及内容服务的webhook配置。在全都配置好之后,生成一个新版本的技能数据。虽然在一个实施例中,上述技能数据可以直接送入相应的DM、NLU和NLG服务中,但优选地将上述技能数据统一存储到技能库中,由此完成了技能的创建或者已有技能的新版本迭代。
由此,在一个实施例中,本发明可以实现为一种对话机器人系统。图7示出了根据本发明一个实施例的对话机器人系统的结构示意图。如图所示,系统700可以包括语料库710、技能生产平台720、语言理解模块(NLU)730、对话管理模块(DM)740和语言生产模块(NLG)750。
语料库710可以用于获取针对各种目标技能的技能语料。技能生产平台720可以用于基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。语言理解模块730可以用于识别用户输入话语的语义和意图,以及接入针对所述目标技能的语言理解子模块。对话管理模块740可以用于根据剧本对对话进行决策,以及接入针对所述目标技能的子剧本。语言生成模块750则可用于基于决策结果生成自然语言,以及接入针对所述目标技能的语言生成子模块。
优选地,对话机器人系统700还可以包括搜索聚合模块(US),用于基于所述意图和语义进行查询与排序以得到经排序的查询结果,其中,所述搜索聚合模块实现针对所述目标技能的webhook配置。US可以与技能网关相连,后者可以接入各自针对一种技能的内容服务器,例如,可以以webhook方式实现。
在系统700中,NLU730可以基于其对目标技能(例如,SkillA)的Sub NLU的访问配置数据以及SkillA到Sub NLU的服务映射数据来接入上述SkillASub NLU。相应地,NLG750可以基于其对目标技能(例如,SkillA)的Sub NLG的访问配置数据以及SkillA到Sub NLG的服务映射数据来接入上述SkillASub NLG。
优选地,系统700还可以如图6所示包括技能库。技能库可以用于存放生成或更新的技能数据,具体地,可用于存储由技能生成平台720生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块,例如,Skill A的子剧本、Sub NLU和Sub NLG。
上述技能库的引入,有助于应用的生成和上线。本发明中引入应用来封装相关联的多个技能。在此,应用可以是TaskBot对外提供服务的最小单元,不同的应用可以由不同的技能组成,对外表现为不同功能的TaskBot。
应用是可以理解成是基于技能能力的封装。封装可以包括任意技能的组装,还可以包括技能优先级的定制。对于应用的配置运营,可以通过设计应用运营平台来配置应用包含的技能以及技能优先级策略。基于应用服务的概念,可以在TaskBot引擎上实现开放平台。开放平台允许用户自建技能,自己定义实体,然后组装自己的应用。
应用维度上的技能组织除了聚合技能的能力以外,还引入了新的要素:应用的剧本和应用的NLU模型。应用的剧本不是简单的技能剧本聚合。这是由于在意图无法完全确定的情况下,需要基于通用的剧本进行泛意图的确定收拢,然后在多个技能剧本间进行并行处理,甚至还会出现不同技能剧本间互相跳转的情况,因此需要根据配置的技能训练出应用级别的剧本。应用的NLU模型同样需要根据各技能的语料进行特征抽取,训练出技能判别模型,能够较精确的将自然语言划分到一类或多类技能领域中去。此外还需要准备应用级的NLG模板。这是因为技能的NLG模板配置较为通用,而应用层面会有定制模板的需要。在配置应用级的NLG模板时,可以对根据技能组装的模板进行修改,以保存为应用定制的模板。
由于US模块可以分别提供针对各技能的内容服务器,因此在应用段的技能优先级定制可以实现框架和插件的分离。不同的业务应用可以实现自己的排序插件,来给应用配置的技能设定不同的优先级。
因此应用配置数据的组织方式主要是基于技能配置的拼装,基于技能语料的剧本和模型进行应用训练、以及定制的技能排序插件服务配置。应用训练流程引擎,用于从所述技能库中选择多个目标技能以训练出基于多个目标技能的应用。
优选地,系统700还可以包括应用训练流程引擎,用于从技能库中选择多个目标技能以训练出基于多个目标技能的应用。例如,应用训练流程引擎可以如上训练具有泛意图确定功能的应用通用剧本;以及训练具有技能判别功能的应用级语言理解模板。再例如,应用训练流程引擎可以进一步用于:定制为所述多个目标技能进行优先级排序的排序插件。进一步地,系统700还可以包括应用库,用于存储应用相关数据。
图8示出了从技能数据生成到应用上线的流程图。如图所示,技能库中的灰色部分是技能库中单个技能的数据配置,而应用库中的灰色部分是技能数据通过流程引擎生成的应用数据,包括了基于技能数据进行拼装的部分,以及根据语料进行训练的剧本和NLU模型。如果是开放平台的用户配置的应用,会在应用库中包含该用户自己的实体文件,从而实现用户实体优先处理,确保用户自建技能不会受到默认系统实体词典的影响。应用库中的US服务名即根据US框架实现的服务化的策略插件。
如应用库数据的线条指向所示的,US服务名和DM剧本动态库地址会推送给AC(AICenter,AI中心)服务。在此,AC是一个DM服务,根据不同的应用配置使用了不同的技能剧本和根据技能训练的通用剧本,并且会根据US服务名配置,为应用选择指定的US服务进行技能数据的排序。
NLU相关模型、用户实体文件、技能到实体列表映射、技能到子NLU服务映射会被推送到NLU服务上。应用级的NLG模板会推送给NLG服务,确保NLG服务对不同的应用请求选择不同的模板进行处理。技能列表会推送给US服务,技能的webhook映射则被推送给技能网关服务,由此US服务可以不关心对接各个技能内容服务的底层细节,只需要关心有哪些技能,以及如何排序的问题。而技能网关服务则会根据webhook配置选择不同的访问方式来获取技能内容。
本发明的系统700还可以包括图8所示的运营管理平台,用于管理技能和应用的运营。应用库还可以存储从运营管理平台获取的搜索聚合服务名。优选地,运营管理平台可以进一步用于:将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;将语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;将应用级语言生成模板推送至所述语言生成模块;将目标技能列表推送至搜索聚合模块;以及将目标技能到webhook映射数据推送至技能网关。
本发明的系统700还可以包括用于用户自行建立技能和/或组装应用的上述开放平台。运营管理平台可以将应用库从开发平台获取的用户实体文件地址推送至所述语言理解模块。
本发明的系统700还可以包括上述控制中心。技能生成平台720可以通过访问控制中心生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。
相应地,本发明的方法还可以包括:将生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块存储至技能库。
进一步地,本发明的方法还可以包括:从所述技能库中选择多个目标技能;以及生成基于所述多个目标技能的应用。优选地,生成基于所述多个目标技能的应用可以包括:训练具有泛意图确定功能的应用通用剧本;以及训练具有技能判别功能的应用级语言理解模板。优选地,生成基于所述多个目标技能的应用可以包括:定制为所述多个目标技能进行优先级排序的排序插件。
从所述技能库中选择多个目标技能可以包括:从所述技能库中获取针对多个目标技能中每一个目标技能的语言理解子模块服务名、技能webhook配置、对话管理模块副本、语言生成模板、包含实体列表和用于应用训练的语料;以及生成基于所述多个目标技能的应用包括如下至少一项:生成搜索聚合服务名、用户实体文件地址;以及基于所述多个目标技能生成对话管理模块剧本动态库地址、语言理解子模块相关模型文件地址、目标技能到实体列表映射数据、目标技能到语言理解子模块服务映射数据、应用级语言生成模板、目标技能列表和目标技能到webhook映射数据。
优选地,步骤S430可以包括:将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;将用户实体文件、语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;将应用级语言生成模板推送至所述语言生成模块;将目标技能列表推送至搜索聚合模块;以及将目标技能到webhook映射数据推送至技能网关。
如图8所示,同一应用的数据被拆分成了几份推送到了不同的服务上,由此会出现不同服务间应用更新不同步的情况。例如,应用更新了配置,生成的webhook配置已生效,而对应的DM剧本则还没有更新,就可能会造成应用无法服务的风险。为了解决这个问题,可以采用应用按版本更新,并且按照先部署再发布两步上线的方式。
图9示出了本发明中应用上线的流程。如图所示,当应用数据更新到了V2版本需要上线,且当前线上运行的数据是V1版本时,上线步骤可以先将V2版本进行部署,但不对线上流量生效,在等到所有服务都接收到了V2版本的数据,确认事务完成后,才执行发布流程。在V2发布之后,不会立即回收V1版本的数据,这样一旦V2版本上线发现问题,可以重新发布V1版本实现快速回滚。
先部署后发布的功能,同样方便开放平台的用户。用户可以直接训练一个新版本的应用部署到线上,并在请求中指定版本号进行测试,测试没有问题后再进行发布。
此外,如图8所示,还可以通过引入物理分区来实现应用间的物理隔离。因为开放平台面向所有用户开放,为确保核心用户应用不受影响,优选进行物理隔离来保证数据安全。在实际应用中,可以生成全局一份的分区路由数据,推送给路由服务(Router),以将不同的应用路由到不同的分区。
技能在正式上线使用之前,通常需要进行技能验证。技能验证的过程中不单单需要技能开放者自己进行白盒测试,还需要专门的技能评测人员通过统一的外部接口进行黑盒测试。由于本发明的TaskBot引擎以应用为最小服务单元。因此可以将单个技能训练成应用,从而以技能维度对外提供服务,方便单个技能的评测。具体技能的评测流程如下:
在配置技能之前,需部署好技能Sub NLU和Sub NLG以及技能内容服务;
在技能生产平台迭代或创建技能配置时,从当前已创建的服务中选择技能SubNLU和Sub NLG以及技能内容服务;
完成技能配置后自动训练新版的技能应用,将技能配置的服务自动集成到技能请求的链路上,并在技能生产平台提供人工评测入口可以进行技能的对话测试;
技能配置包含技能的语料版本,因此还可支持从对应的语料中抽样进行自动评测,从而覆盖技能下各个意图的功能测试。
由此,技能开发者只需关心自己技能所依赖的服务,无需关心这些服务是如何被集成到技能请求的链路上,技能NLU和NLG以及技能内容服务都可以按技能维度独立迭代。
以Sub NLU为例说明这一功能的实现方式。技能开发者可以通过提供的服务运营平台新创建了一个技能的Sub NLU。上述Sub NLU需要先进行技能验证,不能直接部署到线上环境。一般可将服务先部署到迭代环境中,以触发迭代环境NLU的更新。可以设定技能发布步骤,在技能开发选定环境进行技能发布时,会触发相应环境NLU的更新,在这个自动触发更新的过程中,首先会判断当前发布技能依赖的Sub NLU是否已经在环境中部署,如果未部署则会发布失败;已部署的情况下,会根据当前环境所有已部署的Sub NLU服务,重新为NLU生成一份下游Sub NLU访问配置数据,和一份技能到Sub NLU服务映射的数据,然后更新NLU服务,加载这两份数据从而将该技能的Sub NLU集成到NLU对该技能的处理链路上。技能的Sub NLG以及技能内容服务也可以通过同样的方式来实现部署。
如上的部署方式实现了下游服务配置与环境关联,而与服务自身配置解耦,不会因为NLU和NLG这些服务自身配置版本的迭代,造成下游访问的出错。由于NLU服务启动需要加载大量数据到内存,部署耗时较长,当多个技能串行发布时,如果挨个部署会消耗大量时间,因此优选服务部署具有可打断性。如果发现当前的部署版本更新,可以对正在进行的部署进行打断,转为部署更新版本的配置。换句话说,在本发明的步骤S430中,可以在涉及针对不同目标技能的接入时,优先接入更新的(而非生成的)子剧本、语言理解子模块和语言生成子模块。
在本发明中,迭代环境是专门用于开发的不稳定的环境,技能相关的服务会先在迭代环境进行开发,开发到一版稳定的版本之后,会再把这些服务部署到验证环境上。技能的配置里有包含依赖的服务信息,比如Sub NLU服务,Sub NLG服务,还有内容服务,这些配置通过技能版本的粒度可以上线到指定的环境,技能的测试验证在验证环境进行,所以首先是将一个技能的指定版本先发布到验证环境,在这个过程中会把这个版本配置依赖的服务部署到验证环境上。
应用的配置中也包含依赖的服务信息,是US服务,此外,应用还包含更多的控制应用特点逻辑的配置,比如应用包含哪些技能,应用的执行剧本,在对应版本的配置上线到指定环境上后,这些数据会推送到对应环境上指定的服务上。
在此,为开发人员提供迭代环境做服务的日常开发使用,当产品需要上线时,将服务上线到验证环境;再由质量保障测试人员与开发人员在验证环境确认待上线的服务,将服务统一上线到预发环境,完成集成测试工作;最后再由架构开发人员,负责将测试人员确认完毕的服务,从预发环境更新到线上环境。验证环境在这里发挥的是迭代环境收敛的功能,既帮助业务开发人员区分非正式和正式的环境,也帮助测试人员梳理待上线的服务;预发环境由测试人员掌控,保证了预发环境的稳定性,继而也确保了线上环境的稳定性。总体而言这套质量保障体系使服务依照迭代->验证->预发->线上的这个过程顺序集成,同时也使过程中相邻环境间可以独立集成,业务开发人员,测试人员,架构开发人员的工作可以依赖执行,也可以独立执行,保证线上稳定的同时,也分别给开发,测试,上线三个过程提升了效率。数据的上线分为技能数据和应用数据。另外,还可以包括线上服务的上线流程。
本发明的配置方法和对话机器人系统可以实现多种任务类型的技能并行生产,迭代,上线,提高任务类型技能的生产效率,同时保证线上服务在技能持续生产和迭代过程中的稳定性。
[应用例]
假设如下一个场景:我方应用需要新上线一个电影票购买的技能,同时已有的天气技能需要用新的多轮语料进行训练;而此时又有第三方的应用在使用天气技能,且希望保留这个版本,不希望被更新,也不需要电影票购买技能。基于本发明的方案,在技能生产上可以并行开展两部分工作:
电影票购买技能的语料收集,进行NLU、NLG和技能服务搭建;
同时,天气技能语料收集,进行NLU、NLG和技能服务迭代。
完成技能生产后,技能验证工作也可以并行开展:
电影票技能在验证环境上线,使用语料抽样进行功能验证;
新版天气技能在验证环境上线,使用语料抽样,以及线上历史查询进行回归验证。
完成技能验证后,就可以将技能进行发布。于是在应用运营配置处可以新增一个电影票购买技能,天气技能也已更新至最新版本。此时,我方应用可以修改技能配置,添加电影票技能,使用新版的天气技能,重新训练应用,完成回归测试后发布上线。而第三方的应用则不会受技能迭代的影响,依然保持与这轮迭代前一致。
上文中已经参考附图详细描述了根据本发明的对话机器人系统及其技能配置方法。根据本发明TaskBot引擎中技能和应用的数据组织方式,配置上应用数据依赖技能数据,对外服务上应用是独立的,不受技能数据迭代影响。同时,线上技能相关服务通过根据技能上线操作自动部署的方式,实现技能相关服务自动接入技能处理链路,从而实现技能生产者只需关系技能相关的服务自身,不用关心架构全链路上的依赖的效果。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (25)
1.一种对话机器人的技能配置方法,包括:
获取针对目标技能的技能语料;
基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块;以及
将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块,
其中,所述对话管理模块用于获取用户输入的话语并将其送至所述语言理解模块,所述语言理解模块用于从输入的话语中识别出意图和槽位信息,
其中,每个目标技能使用独立的语言理解子模块和语言生成子模块实现该目标技能下特定的逻辑,
其中,所述对话管理模块通过对话任务树的形式描述对话任务的分层模型,剧本用于指代所述对话管理模块中的对话任务树,对话任务树的每个代理节点负责处理一个子任务的执行。
2.如权利要求1所述的方法,其中,获取针对目标技能的技能语料包括:
通过众包获取针对目标技能的技能语料。
3.如权利要求1所述的方法,还包括:
在搜索聚合模块中实现针对所述目标技能的webhook配置。
4.如权利要求1所述的方法,其中,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块包括:
分别生成或更新所述语言理解模块和语言生成模块对接入的所述语言理解子模块和语言生成子模块的访问配置数据;以及
分别生成或更新所述目标技能到所述语言理解子模块和语言生成子模块的服务映射数据。
5.如权利要求1所述的方法,其中,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块包括:
在涉及针对不同目标技能的接入时,优先接入更新的子剧本、语言理解子模块和语言生成子模块。
6.如权利要求1所述的方法,还包括:
将生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块存储至技能库。
7.如权利要求6所述的方法,还包括:
从所述技能库中选择多个目标技能;
生成基于所述多个目标技能的应用。
8.如权利要求7所述的方法,其中,生成基于所述多个目标技能的应用包括:
训练具有泛意图确定功能的应用通用剧本;
训练具有技能判别功能的应用级语言理解模板。
9.如权利要求8所述的方法,其中,生成基于所述多个目标技能的应用包括:
定制为所述多个目标技能进行优先级排序的排序插件。
10.如权利要求7所述的方法,其中,从所述技能库中选择多个目标技能包括:
从所述技能库中获取针对多个目标技能中每一个目标技能的语言理解子模块服务名、技能webhook配置、对话管理模块副本、语言生成模板、包含实体列表和用于应用训练的语料;以及
生成基于所述多个目标技能的应用包括如下至少一项:
生成搜索聚合服务名、用户实体文件地址;以及
基于所述多个目标技能生成对话管理模块剧本动态库地址、语言理解子模块相关模型文件地址、目标技能到实体列表映射数据、目标技能到语言理解子模块服务映射数据、应用级语言生成模板、目标技能列表和目标技能到webhook映射数据。
11.如权利要求10所述的方法,其中,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块包括:
将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;
将用户实体文件、语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;
将应用级语言生成模板推送至所述语言生成模块;
将目标技能列表推送至搜索聚合模块;以及
将目标技能到webhook映射数据推送至技能网关。
12.如权利要求1-11中任一项所述的方法,其中,将针对所述目标技能的子剧本、语言理解子模块和语言生成子模块分别接入用于所述对话机器人的对话管理模块、语言理解模块和语言生成模块包括:
将目标技能和/或包含目标技能的应用经迭代、验证、预发和线上环境进行接入。
13.一种对话机器人系统,包括:
语料库,用于获取针对各种目标技能的技能语料;
技能生产平台,用于基于所述技能语料,生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块;
语言理解模块,用于识别用户输入话语的语义和意图,以及接入针对所述目标技能的语言理解子模块;
对话管理模块,用于根据剧本对对话进行决策,以及接入针对所述目标技能的子剧本;以及
语言生成模块,用于基于决策结果生成自然语言,以及接入针对所述目标技能的语言生成子模块,
其中,所述对话管理模块用于获取用户输入的话语并将其送至所述语言理解模块,所述语言理解模块用于从输入的话语中识别出意图和槽位信息,
其中,每个目标技能使用独立的语言理解子模块和语言生成子模块实现该目标技能下特定的逻辑,
其中,所述对话管理模块通过对话任务树的形式描述对话任务的分层模型,剧本用于指代所述对话管理模块中的对话任务树,对话任务树的每个代理节点负责处理一个子任务的执行。
14.如权利要求13所述的系统,还包括:
搜索聚合模块,用于基于所述意图和语义进行查询与排序以得到经排序的查询结果,其中,所述搜索聚合模块实现针对所述目标技能的webhook配置。
15.如权利要求13所述的系统,其中,所述语言理解模块基于其对所述语言理解子模块的访问配置数据以及所述目标技能到所述语言理解子模块的服务映射数据来接入针对所述目标技能的语言理解子模块,并且
所述语言生成模块基于其对所述语言生成子模块的访问配置数据以及所述目标技能到所述语言生成子模块的服务映射数据来接入针对所述目标技能的语言生成子模块。
16.如权利要求13所述的系统,其中,所述语言理解模块优先接入更新的语言理解子模块。
17.如权利要求13所述的系统,还包括:
技能库,用于存储由所述技能生成平台生成或更新的针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。
18.如权利要求17所述的系统,还包括:
应用训练流程引擎,用于从所述技能库中选择多个目标技能以训练出基于多个目标技能的应用。
19.如权利要求18所述的系统,其中,应用训练流程引擎进一步用于:
训练具有泛意图确定功能的应用通用剧本;
训练具有技能判别功能的应用级语言理解模板。
20.如权利要求19所述的系统,其中,应用训练流程引擎进一步用于:
定制为所述多个目标技能进行优先级排序的排序插件。
21.如权利要求18所述的系统,还包括:
应用库,用于存储应用相关数据;
其中,所述应用训练流程引擎从所述技能库中获取针对多个目标技能中每一个目标技能的语言理解子模块服务名、技能webhook配置、对话管理模块副本、语言生成模板、包含实体列表和用于应用训练的语料以生成对话管理模块剧本动态库地址、语言理解子模块相关模型文件地址、目标技能到实体列表映射数据、目标技能到语言理解子模块服务映射数据、应用级语言生成模板、目标技能列表和目标技能到webhook映射数据并生成的上述数据存储在所述应用库中。
22.如权利要求21所述的系统,还包括:
运营管理平台,用于管理技能和应用的运营,其中,
所述应用库还存储从所述运营管理平台获取的搜索聚合服务名。
23.如权利要求22所述的系统,其中,所述运营管理平台进一步用于:
将搜索聚合服务名和对话管理模块剧本动态库地址推送给所述对话管理模块;
将语言理解子模块相关模型文件、目标技能到实体列表映射数据和目标技能到语言理解子模块服务映射数据推送至所述语言理解模块;
将应用级语言生成模板推送至所述语言生成模块;
将目标技能列表推送至搜索聚合模块;以及
将目标技能到webhook映射数据推送至技能网关。
24.如权利要求22所述的系统,还包括:
开放平台,用于用户自行建立技能和/或组装应用,其中,
所述运营管理平台将所述应用库从所述开放平台获取的用户实体文件地址推送至所述语言理解模块。
25.如权利要求13所述的系统,还包括:
控制中心,所述技能生成平台通过访问所述控制中心生成或更新针对所述目标技能的子剧本、语言理解子模块和语言生成子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810969490.4A CN109408800B (zh) | 2018-08-23 | 2018-08-23 | 对话机器人系统及相关技能配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810969490.4A CN109408800B (zh) | 2018-08-23 | 2018-08-23 | 对话机器人系统及相关技能配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408800A CN109408800A (zh) | 2019-03-01 |
CN109408800B true CN109408800B (zh) | 2024-03-01 |
Family
ID=65463690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810969490.4A Active CN109408800B (zh) | 2018-08-23 | 2018-08-23 | 对话机器人系统及相关技能配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408800B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020191093A1 (en) * | 2019-03-19 | 2020-09-24 | Liveperson, Inc. | Dynamic communications routing to disparate endpoints |
CN111737408B (zh) * | 2019-03-25 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 基于剧本的对话方法、设备及电子设备 |
CN110442701B (zh) * | 2019-08-15 | 2022-08-05 | 思必驰科技股份有限公司 | 语音对话处理方法及装置 |
CN110597972B (zh) * | 2019-09-16 | 2022-07-05 | 京东科技控股股份有限公司 | 对话机器人生成方法、对话机器人管理平台及存储介质 |
CN110659361B (zh) * | 2019-10-11 | 2023-01-17 | 卢卡(北京)智能科技有限公司 | 一种对话方法、装置、设备及介质 |
CN112052316A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 模型评估方法、装置、存储介质及电子设备 |
CN112069830B (zh) * | 2020-08-13 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 一种智能会话方法及装置 |
CN112800195B (zh) * | 2021-01-18 | 2024-04-16 | 南京奥拓电子科技有限公司 | 一种对话机器人的配置方法及系统 |
CN112905869A (zh) * | 2021-03-26 | 2021-06-04 | 北京儒博科技有限公司 | 语言模型的自适应训练方法、装置、存储介质及设备 |
CN115213885B (zh) * | 2021-06-29 | 2023-04-07 | 达闼科技(北京)有限公司 | 机器人技能生成方法、装置、介质及云端服务器、机器人控制系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201552A (zh) * | 2016-07-22 | 2016-12-07 | 北京智能管家科技有限公司 | 一种软件升级方法、客户端、服务器及系统 |
WO2018000207A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳狗尾草智能科技有限公司 | 基于单意图的技能包并行执行管理方法、系统及机器人 |
WO2018000205A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳狗尾草智能科技有限公司 | 一种基于多意图的多技能包问答方法、系统和机器人 |
CN107623621A (zh) * | 2016-07-14 | 2018-01-23 | 腾讯科技(深圳)有限公司 | 聊天语料收集方法和装置 |
-
2018
- 2018-08-23 CN CN201810969490.4A patent/CN109408800B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018000207A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳狗尾草智能科技有限公司 | 基于单意图的技能包并行执行管理方法、系统及机器人 |
WO2018000205A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳狗尾草智能科技有限公司 | 一种基于多意图的多技能包问答方法、系统和机器人 |
CN107623621A (zh) * | 2016-07-14 | 2018-01-23 | 腾讯科技(深圳)有限公司 | 聊天语料收集方法和装置 |
CN106201552A (zh) * | 2016-07-22 | 2016-12-07 | 北京智能管家科技有限公司 | 一种软件升级方法、客户端、服务器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109408800A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408800B (zh) | 对话机器人系统及相关技能配置方法 | |
WO2021232957A1 (zh) | 人机对话中的响应方法、对话系统及存储介质 | |
Campagna et al. | Genie: A generator of natural language semantic parsers for virtual assistant commands | |
JP5481570B2 (ja) | 検索クエリ処理 | |
EP3513324B1 (en) | Computerized natural language query intent dispatching | |
US6505162B1 (en) | Apparatus and method for portable dialogue management using a hierarchial task description table | |
US20140156282A1 (en) | Method and system for controlling target applications based upon a natural language command string | |
Busemann | Best-first surface realization | |
EP1583076A1 (en) | System and method for automatic generation of dialogue run time systems | |
CN117008923B (zh) | 基于ai大模型的代码生成和编译部署方法、平台和设备 | |
CN109408799B (zh) | 语义决策方法和系统 | |
US20220413820A1 (en) | Transformation templates to automate aspects of computer programming | |
CN116644168A (zh) | 一种交互数据构建方法、装置、设备及存储介质 | |
CN116266117A (zh) | 模型转换方法、计算机程序产品、存储介质及电子设备 | |
CN112837683A (zh) | 语音服务方法及装置 | |
Truong et al. | Maca: A modular architecture for conversational agents | |
Konnerth et al. | JADL–an agent description language for smart agents | |
CN109254774A (zh) | 软件开发系统中代码的管理方法和装置 | |
Srivastava et al. | Contextual Reactive Pattern on Chatbot building Platforms | |
CN106682221B (zh) | 问答交互的响应方法、装置及问答系统 | |
Jonker et al. | Design of collaborative information agents | |
CN111221843A (zh) | 大数据处理方法及装置 | |
CN117111902B (zh) | Ai智能软件开发方法及装置 | |
CN113408597B (zh) | 一种基于两阶段框架的Java方法名推荐方法 | |
CN118035403A (zh) | 一种基于多模型和知识图谱的智能问答系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201229 Address after: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 unit 01, 13th floor, Tower B, Pingyun Plaza, 163 xipingyun Road, Huangpu Avenue, Tianhe District, Guangzhou City, Guangdong Province Applicant before: UC MOBILE (CHINA) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |