场景任务的执行方法、装置、设备和存储介质与流程

文档序号:33249092发布日期:2023-02-18 00:17阅读:46来源:国知局
场景任务的执行方法、装置、设备和存储介质与流程

1.本技术涉及场景引擎技术领域,尤其涉及一种场景任务的执行方法、装置、设备和存储介质。


背景技术:

2.相关技术中,通过将对话逻辑通过硬编码的方式写入系统中,从而实现车端语音对话场景。例如,需要实现语音对话的导航,那么就将语音对话及车辆组件的执行逻辑写入系统中。如果执行逻辑有更新,那么需要更新整个系统。如果需要新增对话场景,那么需要再重新编排新的对话逻辑再写入系统,并更新系统。这种方式的灵活性很差,且不能够快速更新迭代。


技术实现要素:

3.本技术实施例提供一种场景任务的执行方法、装置、设备和存储介质,以解决相关技术存在的问题,技术方案如下:
4.第一方面,本技术实施例提供了一种场景任务的执行方法,包括:
5.从预设的信号域中确定目标信号;
6.根据与目标信号对应的目标触发条件监测目标信号;
7.在监测到目标信号满足目标触发条件的情况下,确定与目标信号对应的目标执行域;
8.执行目标执行域中的待执行任务。
9.在一种实施方式中,该方法还包括:
10.将有信号监测需求的待执行任务所属的执行域注册至信号域;
11.为所要监测的信号预设触发条件。
12.在一种实施方式中,执行目标执行域中的待执行任务之前,该方法还包括:
13.在监测到目标信号满足目标触发条件的情况下,通知目标执行域。
14.在一种实施方式中,执行目标执行域中的待执行任务,包括:
15.发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文中获取当前用户的全局对话上下文;
16.根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
17.第二方面,本技术实施例提供一种场景任务的执行装置,包括:
18.目标信号确定模块,用于从预设的信号域中确定目标信号;
19.监测模块,用于根据与目标信号对应的目标触发条件监测目标信号;
20.目标执行域确定模块,用于在监测到目标信号满足目标触发条件的情况下,确定与目标信号对应的目标执行域;
21.任务执行模块,用于执行目标执行域中的待执行任务。
22.在一种实施方式中,该装置还包括:
23.注册模块,用于将有信号监测需求的待执行任务所属的执行域注册至信号域;
24.条件预设模块,用于为所要监测的信号预设触发条件。
25.在一种实施方式中,该装置还包括:
26.通知模块,用于在执行目标执行域中的待执行任务之前,在监测到目标信号满足目标触发条件的情况下,通知目标执行域。
27.在一种实施方式中,任务执行模块具体用于:
28.发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文中获取当前用户的全局对话上下文;
29.根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
30.第三方面,本技术实施例还提供一种电子设备,包括:
31.至少一个处理器;以及
32.与该至少一个处理器通信连接的存储器;其中,
33.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行以上方法。
34.第四方面,本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现以上方法。
35.上述技术方案中的优点或有益效果至少包括:基于监测信号自动触发对话场景,从而实现主动式对话场景,且能够把多变的语音对话场景与不变的执行引擎做天然的隔离,对话逻辑的迭代与执行引擎之间互不影响,从而可以方便语音对话场景的快速迭代。
36.上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本技术进一步的方面、实施方式和特征将会是容易明白的。
附图说明
37.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术公开的一些实施方式,而不应将其视为是对本技术范围的限制。
38.图1为根据本技术实施例场景任务的执行方法的流程图;
39.图2为根据本技术实施例场景任务的执行方法的一个应用示例图;
40.图3为根据本技术实施例场景任务的执行方法的又一个应用示例图;
41.图4为根据本技术实施例一种实施方式的场景任务的执行装置的结构框图;
42.图5为根据本技术实施例另一种实施方式的场景任务的执行装置的结构框图;
43.图6为根据本技术实施例的电子设备的示意图。
具体实施方式
44.在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
45.本技术实施例提供一种场景任务的执行方法,如图1所示,该方法包括:
46.步骤s101:从预设的信号域中确定目标信号;
47.步骤s102:根据与目标信号对应的目标触发条件监测目标信号;
48.步骤s103:在监测到目标信号满足目标触发条件的情况下,确定与目标信号对应的目标执行域;
49.步骤s104:执行目标执行域中的待执行任务。
50.预设的信号域(signal)可以用于承载车辆感知设备的模态数据、环境感知(vehicle to everything,v2x)设备的模态数据、可穿戴设备等设备的模态数据,是一种可编排、可观察、可调度的信号池。信号域可以有多个,一个设备对应一个信号域,用于缓存该设备的信号模态数据。因此,信号域是海量信号的容器。
51.待执行任务通过对至少一个作用域中的模态数据进行模态编排而生成;同一作用域中的各模态数据具有相同或相关联的数据类型。而信号域即是一种作用域。执行域通过对至少一个待执行任务进行逻辑编排而生成。
52.作用域还可以包括参数域(param)、标签域(tag)、服务域(service)、隐藏域(mask)和沙箱域(sandbox)等。
53.示例性地,参数域可以用于存储场景域、执行域、待执行任务等在跨区块调度运行时所传输的参数。标签域可以用于承载以数据为中心的用户大数据画像,如年龄、性别、爱好、嗜好、行为习惯等标签,是一种由若干标签构成用户标签池。标签域可以有多个,一个用户对应一个标签域,以缓存该用户的大数据画像。
54.情景式对话和交互式场景脚本需调用系统内应用的应用程序接口(application programming interface,api),以及系统外的服务,而服务域用于封装服务的调用细节,编排服务返回的数据。其中,系统内应用可以包括导航、多媒体、收音机(frequency modulation,fm)、账号、数字车等,系统外服务可以为车企的场景服务,如极客世界,也可以为第三方服务,如人工智能(artificial intelligence,ai)服务irobot。
55.隐藏域可以用于承载与当前语义输入对应的对话上下文,由对话和交互式场景按需复用或重新生成,而隐藏域与执行域是绑定的,每个执行域都会绑定一个隐藏域,用于承载该执行域的对话上下文。
56.沙箱域可以承载某一设备或某一个用户的全局对话上下文,用于隔离不同设备或不同用户的可编排数据,是一种超级上下文。可以理解的是,在执行域的任务执行过程中会产生数据,这些数据作为对话上下文被存储于隐藏域中,并将该隐藏域与该执行域进行绑定,以记录此次对话。沙箱域中存储全局对话上下文,包括所有的对话上下文。
57.通过模态编排可以决定如何运行作用域中的模态数据,以生产待执行人。模态编排可以是一种运算,如比较运算、包含运算、赋值运算等。待执行任务为基本的对话或业务场景单元,不支持独立执行,是构成执行域的最小单元。待执行任务可以为标准任务,即由条件组和执行组构成的任务,也可以为逻辑任务,即由if,elseif,else及foreach等逻辑条件构成的逻辑块任务,还可以包括简单任务,即通过键(key)快速找到赋值(value),状态变为结束(end)或返回(return)的任务。
58.从而,业务开发人员可以根据业务需求确定待执行任务,并根据该待执行任务的任务需求调用相应作用域中的模态数据,并进行运算,以生成该待执行任务。进一步地,对一个或多个待执行任务进行逻辑编排,可以生成一个执行域。
59.逻辑编排可以包括引用(using)待执行任务或在执行域中内嵌(embed)待执行任务。根据逻辑编排形式不同,执行域可以包括简单域、复杂域和聚合域。
60.简单域包括一个或多个第一待执行任务,其中,第一待执行任务用于实现单轮对话业务,也就是说简单域用于承载可执行的单轮对话或简单的主动业务场景或被动业务场景。复杂域包括一个或多个第二待执行任务,第二待执行任务用于实现多轮对话业务,也就是说,复杂域用于承载可执行的多轮情景式对话,或复杂的交互式业务场景。聚合域包括一个或多个第一待执行任务以及一个或多个第二待执行任务,也就是说,复杂域用于承载可执行的多轮、跨域及聚合情景式对话,或由若干单一的、孤立的、不连贯的能力点、业务点、业务片段、场景片段等聚合而成的交互式业务场景。执行域可以对一个待执行任务进行编排,也可以对多个待执行任务进行编排。
61.各种域的编排是与执行引擎分开的。独立于执行引擎,信号的生产者(设备)不断的向信号域注册信号,信号的观察者从信号域中订阅感兴趣的信号(注册观察者)。其中,观察可以理解为监测或监听。注册观察者的过程可以包括:将有信号监测需求的待执行任务所属的执行域注册至信号域;为所要监测的信号预设触发条件。凡是拥有注册观察者的信号都可以作为目标信号。
62.示例性地,可以根据用户场景版本信息,整合各观察者。
63.在一种实施方式中,在步骤s104之前可以包括:在监测到目标信号满足目标触发条件的情况下,通知目标执行域。
64.执行引擎在执行过程中,将根据注册信号和注册观察者进行。例如:车速作为一种目标信号,车速不断变化,注册过该信号的目标执行域可以监测到车速变化,或者,在注册该目标信号时,预设车速变化的触发条件,当车速变化满足该触发条件(目标触发条件)时,目标执行域就会被通知。
65.在一种实施方式中,在步骤s104中可以包括:发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文中获取当前用户的全局对话上下文;根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
66.其中,多个用户的全局对话上下文存储于作用域持有者的数据库中。示例性地,在作用域持有者的数据库中,包括每个用户以及每个设备的全局对话上下文,根据当前用户的身份标识,可以得到当前用户的全局对话上下文。进一步地,在作用域持有者的数据库中,还包括可执行场景脚本(schema)、沙箱域、信号域、标签域、注册的监听器及请求会话等数据结构,待引擎执行使用。
67.在一个应用示例中,如图2所示,该方法可以用于执行标准任务。具体地,主动式引擎在监测到目标信号满足目标触发条件的情况下,通知目标执行域(观察者),向信号触发器提交作业,从而使信号触发器进行作业调度,以执行目标执行域中的各任务。
68.另外,在监测到目标信号满足目标触发条件的情况下,主动式引擎发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文(作用域持有者的数据库)中获取当前用户的全局对话上下文(当前用户的沙箱域);使信号触发器进行作业调度,根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
69.进一步地,信号触发器进行作业调度,根据当前用户的全局对话上下文执行目标执行域中的待执行任务,包括:新建会话(对话)和绑定会话,根据印迹从当前用户的全局对
话上下文(当前用户的沙箱域)中搜索当前对话上下文(隐藏域)。基于上述关于隐藏域和沙箱域的介绍可知,当前用户的全局对话上下文存储于该用户的沙箱域中,每一次对话都会对应有一个对话上下文,该对话上下文存储于相应的隐藏域中。印迹由引擎生成,并与隐藏域存在一一绑定的关系,因此,印迹是引擎查找隐藏域的口令,根据印迹可以从当前用户的沙箱域中搜索与该印迹对应的隐藏域。在搜索到隐藏域的情况下,复用隐藏域,在未搜索到隐藏域的情况下,新建一个隐藏域。
70.其中,绑定会话可以理解为:一次语义请求由引擎生成一个会话,会话绑定可执行场景脚本(schema)、沙箱域、信号域和标签域的引用,绑定由引擎复用或生成的隐藏域引用,绑定由引擎动态生成的请求域、应答域、参数域和服务域。会话由作用域持有者通过线程局部变量(thread local)机制绑定作用域持有者的身份标识rid,并由作用域持有者的继承者通过rid从全局上下文中快速方便的搜索会话。引擎会通过thread local机制维护rid与时域(session)的关系。
71.进一步地,信号触发器进行作业调度,以执行目标执行域中的各任务,还包括:对目标执行域中的待执行任务进行任务迭代及执行,包括顺序执行/返回或结束/跳转。具体地,由任务执行工厂实现。在该应用示例中,待执行任务为标准任务。执行条件组会根据已有的若干if表达式(可支持不多于两层的嵌套)进行条件确定和宏执行。其中,在宏执行过程中,通过引用(using)的方式来搜索宏。当执行条件组对条件确定的执行结果为真(true)时,执行执行组执行该标准任务,如执行服务(调用系统内应用的api或系统外服务),根据赋值表达式执行赋值,根据条件执行动作。执行动作包括执行赋值、执行nlg、执行引导等。其中,可以通过引用的方式搜索nlg公共键,执行nlg,进而向用户返回对话结果,可以通过引用的方式搜索引导公共键执行引导,进而向用户返回引导结果。
72.在任务执行完成后,对过程中的数据进行解码,并回调给监听器缓存,然后解绑会话。
73.在又一个应用示例中,如图3所示,该方法可以用于执行简单任务。具体地,主动式引擎在监测到目标信号满足目标触发条件的情况下,通知目标执行域(观察者),向信号触发器提交作业,从而使信号触发器进行作业调度,以执行目标执行域中的各任务。
74.另外,在监测到目标信号满足目标触发条件的情况下,主动式引擎发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文(作用域持有者的数据库)中获取当前用户的全局对话上下文(当前用户的沙箱域);使信号触发器进行作业调度,根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
75.进一步地,信号触发器进行作业调度,根据当前用户的全局对话上下文执行目标执行域中的待执行任务,包括:新建会话(对话)和绑定会话,根据印迹从当前用户的全局对话上下文(当前用户的沙箱域)中搜索当前对话上下文(隐藏域)。基于上述关于隐藏域和沙箱域的介绍可知,当前用户的全局对话上下文存储于该用户的沙箱域中,每一次对话都会对应有一个对话上下文,该对话上下文存储于相应的隐藏域中。印迹由引擎生成,并与隐藏域存在一一绑定的关系,因此,印迹是引擎查找隐藏域的口令,根据印迹可以从当前用户的沙箱域中搜索与该印迹对应的隐藏域。在搜索到隐藏域的情况下,复用隐藏域,在未搜索到隐藏域的情况下,新建一个隐藏域。
76.进一步地,信号触发器进行作业调度,以执行目标执行域中的各任务,还包括:对
目标执行域中的待执行任务进行任务迭代及执行,包括顺序执行/返回或结束/跳转。具体地,由任务执行工厂实现。在该应用示例中,待执行任务为简单任务。如根据赋值表达式执行赋值,根据条件执行动作。执行动作包括执行赋值、执行nlg、执行引导等。其中,可以通过引用的方式搜索nlg公共键,执行nlg,进而向用户返回对话结果,可以通过引用的方式搜索引导公共键执行引导,进而向用户返回引导结果。
77.在任务执行完成后,对过程中的数据进行解码,并回调给监听器缓存,然后解绑会话。
78.根据本技术实施例的执行方法,可以全面获得车辆使用过程中的各项数据(如车辆数据、用户数据、环境数据等),将其抽象化后(以模态数据的形式)分类(可读、可写、可读写)保存在作用域中。然后,业务开发人员可根据实际需求,对作用域中的模态数据进行编排,产生功能单元(待执行任务);多个功能单元编排/组合形成相对完整的业务单元,再分类存放在执行域中。由此,业务开发人员可以方便地根据实际需求编排各种对话逻辑,以实现相应的主动式对话场景。
79.相较于现有技术中的将对话逻辑硬编码写死或通过表单来配置,本技术实施例的执行方法中,由于对业务单元(对话逻辑)的设计过程进行了拆解、抽象和建模,可以得到基于xml的脚本语言,进而基于该脚本语言可在线快速开发迭代出适合用户使用习惯的人机对话过程,使得业务单元的设计可完全由开发者在线完成,并通过数加的热更新运营通道,快速部署到车机端。
80.另外,把多变的对话逻辑(域的编排)与不变的执行引擎,做天然的隔离,对话逻辑的迭代与执行引擎之间互不影响,从而可以方便对话逻辑的快速迭代。
81.本技术实施例还提供一种场景任务的执行装置,如图4所示,该装置包括:
82.目标信号确定模块401,用于从预设的信号域中确定目标信号;
83.监测模块402,用于根据与目标信号对应的目标触发条件监测目标信号;
84.目标执行域确定模块403,用于在监测到目标信号满足目标触发条件的情况下,确定与目标信号对应的目标执行域;
85.任务执行模块404,用于执行目标执行域中的待执行任务。
86.在一种实施方式中,如图5所示,该装置还包括:
87.注册模块501,用于将有信号监测需求的待执行任务所属的执行域注册至信号域;
88.条件预设模块502,用于为所要监测的信号预设触发条件。
89.在一种实施方式中,如图5所示,该装置还包括:
90.通知模块503,用于在执行目标执行域中的待执行任务之前,在监测到目标信号满足目标触发条件的情况下,通知目标执行域。
91.在一种实施方式中,任务执行模块404具体用于:发送任务执行请求给调度线程池,以使调度线程池从多个用户的全局对话上下文中获取当前用户的全局对话上下文;根据当前用户的全局对话上下文执行目标执行域中的待执行任务。
92.本技术实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
93.图6示出根据本技术实施例的电子设备的结构框图。如图6所示,该设备包括:存储器601和处理器602,存储器601内存储有可在处理器602上运行的指令。处理器602执行该指
令时实现上述实施例中的任一种方法。存储器601和处理器602的数量可以为一个或多个。该终端或服务器旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。终端或服务器还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
94.该设备还可以包括通信接口603,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器602可以对在终端或服务器内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个终端或服务器,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
95.可选的,在具体实现上,如果存储器601、处理器602及通信接口603集成在一块芯片上,则存储器601、处理器602及通信接口603可以通过内部接口完成相互间的通信。
96.应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
97.本技术实施例提供了一种计算机可读存储介质(如上述的存储器601),其存储有计算机指令,该程序被处理器执行时实现本技术实施例中提供的方法。
98.可选的,存储器601可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据终端或服务器的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器601可选包括相对于处理器602远程设置的存储器,这些远程存储器可以通过网络连接至终端或服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
99.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
100.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性
或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
101.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
102.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
103.应理解的是,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
104.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
105.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1