业务流程的执行控制方法及程序产品与流程
本公开涉及软件工程,具体涉及一种业务流程的执行控制方法及程序产品。
背景技术:
1、在大语言模型技术快速发展的背景下,越来越多的计算机系统开始将大语言模型嵌入业务流程的自动化处理中。典型场景中,系统需要按照预设的多步骤任务序列逐一完成信息采集、外部数据查询、参数生成和结果确认等操作,并在部分关键步骤处等待用户确认或审批后才能继续推进后续流程。这类场景对流程执行顺序的确定性、外部工具调用的安全性和状态更新的可控性提出了较高的技术要求。
2、在实际的计算机系统工程中,大语言模型本质上是基于概率分布的自回归文本生成模型,其输出内容和行为走向具有一定的不可控性。当大语言模型被置于需要严格按照预设顺序执行多步骤任务的业务流程环境时,其概率生成特性可能与业务流程对执行顺序的刚性约束产生冲突。同时,在调用外部工具的场景中,若大语言模型能够不受限制地选择或触发各类工具调用,可能导致与当前任务无关的工具被错误调用,进而影响业务流程的正确执行。此外,在长时间运行的多步骤业务流程中,系统需要在流程推进过程中可靠地定位当前任务位置、记录各任务处理状态并在适当的时机挂起等待外部输入,这对流程状态的表示、状态更新的控制机制以及状态推进的确定性提出了进一步的技术要求。
3、在上述技术背景下,需要一种能够在调用大语言模型处理业务数据的同时保持流程控制权不受大语言模型生成行为影响的计算机实现方案。
技术实现思路
1、本说明书实施例提供一种业务流程的执行控制方法,应用于包括图式工作流执行引擎、由所述图式工作流执行引擎调度的多个执行节点、工具注册中心的计算机控制系统。预先设置用于表示有限状态机的业务流程状态区,以及用于更新所述业务流程状态区中的控制类字段的状态转移函数;其中,所述业务流程状态区是在由所述图式工作流执行引擎维护的全局状态内存中划定的部分内存区域,所述控制类字段包括流程阶段字段、任务项游标字段、任务项序列中每个任务项的任务项状态字段;所述流程阶段字段用于表示所述业务流程当前所处的流程阶段,所述任务项游标字段用于在所述业务流程中定位当前待完成任务项,每个任务项的任务项状态字段用于表示该任务项的处理状态;所述状态转移函数的调用接口与大语言模型的输出接口相隔离。预先设置用于根据所述流程阶段字段和所述任务项游标字段在执行节点之间路由的节点路由函数,所述节点路由函数的调用接口与所述大语言模型的输出接口相隔离。预先设置每个第一类执行节点绑定的可用字段名单与可用工具名单,该第一类执行节点为用于调用所述大语言模型生成任务相关内容的执行节点,该可用字段名单用于限定该第一类执行节点调用所述大语言模型时可提供的业务输入字段,所述可用工具名单用于限定该第一类执行节点调用所述大语言模型时可提供的工具。所述方法包括:响应于接收的确定性业务事件,所述图式工作流执行引擎从所述业务流程状态区读取所述流程阶段字段和所述任务项游标字段,调用所述节点路由函数确定当前执行节点,调度所述当前执行节点;在所述当前执行节点为第一类执行节点的情况下,所述当前执行节点根据所绑定的可用字段名单,从所述全局状态内存和/或接收的确定性业务事件中读取相应的业务输入数据,并根据读取的业务输入数据构造局部上下文,以及,根据所绑定的可用工具名单,从所述工具注册中心中确定可用工具集;基于所述局部上下文与所述可用工具集调用所述大语言模型,根据所述大语言模型返回的生成内容确定业务输出数据并写入所述全局状态内存中的非控制类字段;所述当前执行节点若确定满足与其对应的状态转移触发条件,则调用所述状态转移函数,以根据所述业务流程状态区中的字段与接收的确定性业务事件,通过所述业务流程状态区的写入接口,更新所述业务流程状态区中字段,并向所述图式工作流执行引擎返回调度响应信号;所述图式工作流执行引擎根据所述调度响应信号,结束所述当前执行节点的本次执行,并执行:继续确定并调度下一执行节点,或停止本次对后续执行节点的连续调度并等待下一确定性业务事件,或终止执行所述业务流程。
2、在上述方法中,通过将流程阶段字段、任务项游标字段和任务项状态字段共同构成的控制类字段设置于独立的业务流程状态区中,并将状态转移函数和节点路由函数的调用接口与大语言模型的输出接口相隔离,流程的控制权不再经过大语言模型,而是由预先配置的确定性函数基于受保护的控制状态执行。当前执行节点由确定性路由确定后,第一类执行节点只能按节点级可用字段名单读取业务输入数据并构造局部上下文、按节点级可用工具名单确定可用工具集,使大语言模型仅在当前节点限定的输入范围和工具范围内运行。大语言模型的生成内容只能被转换为业务输出数据写入非控制类字段,无法接触控制类字段的写入路径。控制状态的更新仍由状态转移函数根据业务流程状态区字段和确定性业务事件通过写入接口执行。由此,大语言模型被限制为节点内部的局部数据处理模块,流程的确定性推进通过受保护的控制状态和隔离的确定性转移规则实现。
3、可选地,所述确定性业务事件包括事件类型字段和事件载荷字段;所述事件类型字段包括业务动作类型和/或事件来源类型;所述业务动作类型用于表示任务项确认事件、任务项跳过事件、流程取消事件、任务项选择事件、审批事件中的至少一种;所述事件来源类型用于表示http回调事件、消息队列事件、webhook事件和定时触发事件中的至少一种;所述事件载荷字段用于携带与所述事件类型字段对应的业务参数。
4、可选地,所述计算机控制系统还包括业务流程分发网关。所述业务流程分发网关响应于首次触发业务流程的流程触发事件,根据所述流程触发事件中的业务流程标识、会话标识和事件类型中的至少一种,确定待处理业务流程,并向所述图式工作流执行引擎发送流程触发指令。所述图式工作流执行引擎根据所述流程触发指令,创建用于承载所述业务流程的实例,并在所述全局状态内存中划定并初始化所述业务流程状态区。进一步地,在初始化所述业务流程状态区时,可以在其中写入流程阶段字段、任务项游标字段和每个任务项的任务项状态字段;将流程阶段字段设置为表示初始阶段,将任务项游标字段指向任务项序列中的首个任务项,将每个任务项的任务项状态字段设置为表示未处理状态。
5、可选地,所述全局状态内存中的非控制类字段可以包括设置于所述业务流程状态区内的状态区内非控制类字段,与设置于所述业务流程状态区外的状态区外非控制类字段。所述状态区内非控制类字段包括任务项序列中每个任务项中的任务执行结果字段与任务项信息字段;所述任务项信息字段包括任务项唯一主键字段、任务项类型字段、任务项名称字段中的至少一种。
6、可选地,所述流程阶段字段可以用于表示初始阶段、任务项处理阶段、确定性业务事件等待阶段和终止阶段中的一种。进一步地,终止条件可以包括流程取消终止条件,或者任务项序列完成终止条件。
7、可选地,所述任务项游标字段为用于表示所述当前待完成任务项在所述任务项序列中的位置的程序计数字段。通过所述状态转移函数更新所述业务流程状态区中字段时,在所述确定性业务事件表示任务项确认事件或任务项跳过事件的情况下,可以将所述任务项游标字段按照所述任务项序列的排列顺序推进一个任务项位置。进一步地,在推进后进行边界检测:若指向任务项则更新为任务项处理阶段,若越界则更新为终止阶段。
8、可选地,所述任务项状态字段用于表示未处理状态、已确认状态、已跳过状态和已取消状态中的一种。
9、可选地,在所述大语言模型返回的生成内容可按照预设数据结构要求进行数据转换的情况下,所述业务输出数据是由所述生成内容进行所述数据转换得到的任务执行结果,将所述业务输出数据写入所述全局状态内存中的非控制类字段时,可以将所述业务输出数据写入所述任务项游标字段所定位的当前待完成任务项中的任务执行结果字段,或者写入作为所述状态区外非控制类字段的元数据字段;其中,所述元数据字段用于存储面向业务流程调用方或下游组件输出的响应数据。在所述大语言模型返回的生成内容不可按照预设数据结构要求进行数据转换的情况下,所述业务输出数据则是按照预设错误提示规则生成的错误提示数据,写入所述元数据字段。
10、可选地,所述节点路由函数中预先设置有节点路由关系,该节点路由关系包括第一对应关系和第二对应关系;所述第一对应关系为流程阶段字段取值与执行节点标识之间的对应关系;所述第二对应关系为流程阶段字段取值、任务项类型字段取值与执行节点标识之间的对应关系。调用所述节点路由函数确定当前执行节点时,可以根据所述流程阶段字段确定目标路由分支;在所述目标路由分支不属于任务项处理分支的情况下,根据所述流程阶段字段和所述第一对应关系确定所述当前执行节点的执行节点标识;在所述目标路由分支属于任务项处理分支的情况下,根据所述任务项游标字段从所述任务项序列中确定当前待完成任务项,确定所述当前待完成任务项中的任务项类型字段,并根据所述流程阶段字段、确定的任务项类型字段以及所述第二对应关系,确定所述当前执行节点的执行节点标识。
11、可选地,所述第一类执行节点根据所绑定的可用字段名单构造局部上下文时,可以创建与所述第一类执行节点对应的局部消息列表;根据所述可用字段名单从所述任务项游标字段所定位的当前待完成任务项和/或接收的确定性业务事件中提取业务字段值;根据提取的业务字段值构造局部上下文对象;将所述局部上下文对象写入所述局部消息列表,以形成所述局部上下文。进一步地,还可以在所述局部消息列表中写入约束性系统提示。
12、可选地,所述当前执行节点基于所述局部上下文与所述可用工具集调用所述大语言模型时,可以将所述可用工具集绑定至所述大语言模型,得到与所述当前执行节点对应的受限模型实例,再基于所述局部上下文调用所述受限模型实例。进一步地,基于所述局部上下文调用所述受限模型实例时,可以创建与所述当前执行节点对应的循环计数器;在一次循环中,基于所述局部上下文调用所述受限模型实例得到模型响应消息并将该消息写入所述局部上下文;解析所述模型响应消息中是否包含工具调用指令;在不包含工具调用指令的情况下,将所述模型响应消息确定为所述大语言模型返回的生成内容;在包含工具调用指令的情况下,从所述工具调用指令中确定属于所述可用工具集的待调用工具和工具调用参数,执行对应的工具调用并生成工具返回消息,将所述工具返回消息写入所述局部上下文并更新所述循环计数器;在所述循环计数器未达到预设迭代上限的情况下,基于写入所述模型响应消息和所述工具返回消息后的局部上下文再次调用所述受限模型实例。如果在所述循环计数器达到预设迭代上限且尚未确定所述生成内容的情况下,可以生成预设兜底响应消息并将其确定为所述大语言模型返回的生成内容。
13、可选地,在执行工具调用时,在所述模型响应消息中包含多个工具调用指令的情况下,可以从每个工具调用指令中解析工具名称、工具调用参数和工具调用标识;根据所述工具名称和所述工具调用参数为每个工具调用指令创建对应的异步工具调用任务;对每个异步工具调用任务设置超时约束;在异步工具调用任务于所述超时约束内返回的情况下,根据该异步工具调用任务的返回结果以及对应的工具调用标识生成工具返回消息;在异步工具调用任务未于所述超时约束内返回的情况下,捕获对应的超时异常,禁止将所述超时异常传递至所述图式工作流执行引擎或所述状态转移函数,并根据对应的工具调用标识生成表示工具调用超时的工具返回消息。
14、可选地,根据所述大语言模型返回的生成内容确定业务输出数据并写入所述全局状态内存中的非控制类字段时,可以将所述生成内容输入预设的结构化转换校验流程;在通过的情况下,将通过校验后得到的结构化数据确定为任务执行结果并写入非控制类字段;在未通过的情况下,按照预设错误提示规则生成错误提示数据并写入非控制类字段。进一步地,在将所述生成内容输入结构化转换校验流程时,可以将所述生成内容确定为待校验候选数据,并在通过所述结构化转换校验流程之前,使所述待校验候选数据保持在临时处理路径中;其中,所述临时处理路径与所述业务流程状态区中的控制类字段的写入接口相隔离,并且与所述任务执行结果字段和所述元数据字段中用于存储有效业务输出数据的目标写入路径相隔离。所述结构化转换校验流程可以包括:对所述待校验候选数据执行直接解析处理;在直接解析失败的情况下,从所述待校验候选数据中提取符合预设边界标识的结构化数据片段并再次解析;在解析成功后得到待规范化数据对象;将所述待规范化数据对象中的字段名称与预设字段别名映射关系进行匹配和替换,生成字段名称规范化后的数据对象;将字段名称规范化后的数据对象输入与预设数据结构要求对应的强类型数据模型,执行必填字段校验、字段类型校验、缺省字段补全和字段取值范围校验;在满足校验要求的情况下生成类型安全的结构化数据对象,整体写入目标写入位置。在未通过结构化转换校验流程的情况下,生成错误提示数据写入元数据字段,并禁止将待校验候选数据写入任务执行结果字段,以及确定状态转移触发条件未满足或者保持任务项游标字段不推进。
15、可选地,所述多个执行节点还可以包括第二类执行节点,该第二类执行节点为在本次执行中不调用所述大语言模型生成任务相关内容、并根据预设确定性处理逻辑处理所述确定性业务事件和/或所述业务流程状态区中的字段的执行节点。
16、可选地,所述当前执行节点确定满足与其对应的状态转移触发条件时,可以获取与其对应的预设状态转移触发条件;从所述业务流程状态区读取所述流程阶段字段、所述任务项游标字段以及所述任务项游标字段所定位的当前待完成任务项的任务项状态字段;从所述确定性业务事件中读取事件类型字段和事件载荷字段;根据读取到的各字段判断所述确定性业务事件是否与所述当前执行节点对应的预设状态转移触发条件相匹配。所述预设状态转移触发条件可以包括任务项处理完成触发条件、数据就绪触发条件、确定性处理完成触发条件、流程初始化完成触发条件和流程取消触发条件中的至少一种。在同时满足所述流程取消触发条件以及所述任务项处理完成触发条件、所述数据就绪触发条件或所述确定性处理完成触发条件的情况下,所述当前执行节点可以按照所述流程取消触发条件优先调用所述状态转移函数。
17、可选地,在调用所述状态转移函数更新所述业务流程状态区中字段时,可以根据所满足的预设状态转移触发条件确定对应的状态转移分支,所述状态转移分支包括流程初始化转移分支、任务项完成转移分支、数据就绪转移分支、确定性处理转移分支和流程取消转移分支中的一种;在确定所述状态转移分支后,通过所述业务流程状态区的写入接口,对所述流程阶段字段、所述任务项游标字段以及所述任务项游标字段所定位的当前待完成任务项的任务项状态字段中的至少一种进行更新。其中,任务项完成转移分支可区分确认、跳过、选择、审批四类事件动作:确认或跳过时更新任务项状态字段并推进游标;选择时根据被选择对象标识确定写入数据后更新状态并推进游标;审批时根据审批结果确定状态更新值后推进游标。推进后根据游标是否越界更新流程阶段字段为任务项处理阶段或终止阶段。数据就绪转移分支将流程阶段字段更新为确定性业务事件等待阶段并保持游标和任务项状态不变。流程取消转移分支将流程阶段字段更新为终止阶段并保持游标不变,不逐项推进。
18、可选地,所述调度响应信号可以包括继续调度信号、事件等待信号和流程终止信号中的一种。在所述调度响应信号为继续调度信号的情况下,所述图式工作流执行引擎可以从所述业务流程状态区读取经所述状态转移函数更新后的流程阶段字段和任务项游标字段;调用所述节点路由函数,根据读取到的所述流程阶段字段和所述任务项游标字段确定下一执行节点;在确定出所述下一执行节点的情况下,在本次对后续执行节点的连续调度过程中调度所述下一执行节点。在所述调度响应信号为事件等待信号的情况下,所述图式工作流执行引擎可以停止在本次调度过程中继续调用所述节点路由函数确定后续执行节点;保持所述业务流程状态区中经所述状态转移函数更新后的字段,作为下一确定性业务事件到达后进行节点路由的读取基础。在所述调度响应信号为流程终止信号的情况下,所述图式工作流执行引擎可以停止调用所述节点路由函数确定所述业务流程对应的后续执行节点;禁止继续调度所述业务流程对应的执行节点;将所述业务流程对应的实例标记为终止状态。
19、可选地,在所述图式工作流执行引擎执行停止本次对后续执行节点的连续调度并等待下一确定性业务事件时,还可以在停止本次对后续执行节点的连续调度之前,将所述全局状态内存中的至少部分状态数据序列化为检查点数据,并将所述检查点数据与所述业务流程对应的实例标识和/或会话标识关联持久化。在接收到所述下一确定性业务事件后,可以根据所述实例标识和/或会话标识读取对应的检查点数据,进行反序列化处理以重构所述全局状态内存中的所述业务流程状态区;从重构后的所述业务流程状态区读取所述流程阶段字段和所述任务项游标字段,并基于读取到的字段调用所述节点路由函数确定对应的执行节点。
20、可选地,所述确定性业务事件等待阶段可以包括候选对象选择等待阶段。所述候选对象选择等待阶段用于表示:所述任务项游标字段所定位的当前待完成任务项为候选对象选择类任务项,且所述全局状态内存中的元数据字段已写入候选对象集合对应的页面渲染指令块,所述业务流程等待携带被选择对象标识的下一确定性业务事件。
21、本说明书实施例还提供一种业务流程的执行控制装置,该装置包括图式工作流执行引擎、业务流程状态区管理模块、节点路由函数模块、多个执行节点、状态转移函数模块和工具注册中心。上述装置实施例中的各模块与方法实施例中的各步骤具有执行对应关系。
22、本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述任一实施例所述的业务流程的执行控制方法的步骤。
23、本说明书实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前述任一实施例所述的业务流程的执行控制方法的步骤。
24、本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一实施例所述的业务流程的执行控制方法的步骤。
25、通过上述技术方案,本说明书实施例提供的业务流程的执行控制方法能够带来以下有益效果:
26、在流程控制方面,通过将控制类字段设置于独立的业务流程状态区中并将状态转移函数和节点路由函数的调用接口与大语言模型的输出接口相隔离,大语言模型无法通过其输出直接影响节点路由结果或触发状态转移。在工具调用安全方面,通过为第一类执行节点分别设置可用工具名单并绑定为受限模型实例,大语言模型只能在当前节点限定的工具范围内产生工具调用指令。在数据安全方面,通过将全局状态内存中的字段区分为控制类字段和非控制类字段,大语言模型的生成内容只能被转换为业务输出数据后写入非控制类字段,无法接触控制类字段的写入路径。还可以通过将大语言模型的生成内容输入预设的结构化转换校验流程并以原子提交方式写入,以及在事件等待时将控制状态数据序列化为检查点数据并持久化,还可以获得数据校验安全和跨请求状态恢复的技术效果。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com