基于多节点条件路由状态图的对话流程编排方法及系统与流程
本发明涉及互联网,尤其涉及一种基于多节点条件路由状态图的对话流程编排方法及系统。
背景技术:
1、在面向垂直领域的对话式查询系统中,如建筑能耗分析助手、智能客服、医疗问诊系统等,系统需要根据用户输入的意图、已收集信息的完备程度、当前业务模式等多个维度的信号,决定对话的走向是继续引导用户补充信息、是直接调用业务api获取结果、还是处理闲聊等非业务话题。
2、这类系统的对话流程通常包含意图分类、槽位提取、缺失项引导、api调用、结果解读等多个阶段,且不同阶段之间存在复杂的条件跳转关系。
3、现有技术中,此类对话流程编排通常采用以下方案:
4、方案a:llm端到端自由对话方案
5、将对话的所有决策权交给大语言模型,由llm自行决定何时收集信息、何时调用工具、何时给出结果。该方案存在以下缺陷:
6、llm的决策具有随机性和不可控性:同一输入多次执行可能走不同的对话路径,无法保证关键业务流程(如槽位完备性检查)一定被执行;
7、llm无法提供确定性的流程控制:当槽位未齐时,llm可能直接调用api产生无效查询,也可能过度引导用户而不发起应有的查询;
8、对话流程不可审计:无法从llm的自由对话中提取出确定性的路由决策链,难以定位流程错误;
9、事件推送与llm生成过程深度耦合,无法在llm推理之外独立控制前端ui状态。
10、方案b:基于if-else链的线性管道方案
11、使用传统的if-else条件判断链,按固定顺序依次执行各处理阶段,根据条件跳过或执行某些步骤。该方案存在以下缺陷:
12、流程控制逻辑散布在各处理函数中,形成深层嵌套的if-else,可读性和可维护性极差;
13、无法表达多分支路由:当意图分类有3种以上结果、槽位状态有多种组合时,线性管道无法自然表达的图结构;
14、状态管理混乱:所有处理阶段共享同一个状态字典,前一阶段写入的中间变量可能被后续阶段误读,不同轮次之间的路由残留信号可能互相干扰;
15、难以扩展新的对话分支:每增加一个分支需要修改多处条件判断,违反开闭原则。
16、方案c:基于传统有限状态机(fsm)的对话管理方案
17、使用传统的有限状态机定义对话状态及转移条件,状态转移由查表或规则引擎驱动。该方案存在以下缺陷:
18、传统有限状态机的转移函数通常定义为(当前状态, 事件/输入) → 下一状态,其条件判断基于单一事件或输入,难以自然地表达基于多个上下文信号(例如意图分类结果、槽位完备性、业务模式等)的组合条件路由。在对话系统中,路由决策往往需要同时考量多个维度的信息,而fsm的二元映射模型无法高效处理这种多维条件,通常需要将多维逻辑拆解为大量中间状态或复杂的事件组合,导致状态爆炸和逻辑分散,显著降低系统的可维护性和可扩展性。
19、传统fsm缺乏对状态字段粒度的合并语义控制:所有字段要么整体替换要么整体保留,无法区分路由信号应覆盖、事件列表应追加等不同语义;
20、传统fsm通常不支持将异步事件通道注入运行时配置,节点无法在执行过程中向外推送增量事件,只能在整个fsm执行完毕后一次性输出结果;
21、状态持久化与瞬态路由信号未做隔离,fsm的当前状态天然携带上一轮的所有信息,上一轮的路由决策可能残留到下一轮导致误路由。
22、方案d:基于langchain 智能体的react循环方案
23、使用langchain的智能体框架,通过react(reasoning acting)循环让llm自主选择工具和决定下一步行动。该方案存在以下缺陷:
24、智能体的行动轨迹完全由llm决定,缺乏确定性的流程保障;无法保证调用api前必须经过槽位完备性检查等业务约束;
25、react循环中llm的推理开销大;每个决策步骤都需要一次llm调用,对于确定性路由如槽位齐了就调api是不必要的开销;
26、智能体无法精细控制前端ui状态:react循环的中间步骤对前端是黑盒,无法在流程的特定节点推送增量ui事件。
27、针对现有方案存在的上述问题,本技术提出了一种基于多节点条件路由状态图的对话流程编排方法及系统。
技术实现思路
1、因此,本发明的目的在于提供一种基于多节点条件路由状态图的对话流程编排方法及系统,本技术通过纯函数条件路由实现确定性决策,通过双层状态隔离杜绝信号残留,通过类型注解实现字段级合并语义自动识别,通过异步事件通道实现计算与传输解耦,通过混合终态策略统一终态行为。五项机制协同,实现从概率性llm决策到确定性可审计编排的范式转变,可广泛应用于智能客服、垂直领域对话系统等场景。
2、为了实现上述目的,本发明提供的一种基于多节点条件路由状态图的对话流程编排方法,包括以下步骤:
3、s1、构建有向状态图,所述有向状态图包含多个功能节点和条件路由边;
4、s2、将对话状态划分为持久态和瞬态两个层级,所述持久态跨对话轮次存活,所述瞬态仅存于单轮有向状态图执行期间;在所述持久态和所述瞬态的状态字段定义中,通过类型注解声明合并语义,根据所述类型注解声明在状态字段合并时自动执行合并操作;
5、s3、响应用户输入,采用轮次隔离的双向转换机制,执行轮次开始时,将所述持久态转换为所述瞬态,在转换时将所述瞬态中的路由信号字段重置为初始值;
6、s4、以所述瞬态作为状态参数,执行所述有向状态图,在所述有向状态图的各功能节点执行过程中,通过运行时注入的事件通道异步向外推送增量事件;
7、s5、根据所述功能节点的类型执行终态处理,其中,交互引导类节点执行完毕后直接连接图终点,业务查询类节点执行完毕后汇入终态汇聚节点统一处理后连接图终点;
8、s6、将执行完成后的所述瞬态回写至所述持久态,在回写时丢弃所述瞬态中的路由信号字段,以实现轮次结束时的路由信号隔离。
9、进一步优选的,所述有向状态图的功能节点按职责划分为五类,包括:
10、路由分发类,包括路由分发节点;
11、理解分析类,包括意图分类节点、槽位提取节点和流程控制节点;
12、交互引导类,包括引导节点和闲聊节点;
13、业务查询类,包括事件查询节点、诊断查询节点和标准查询节点;
14、辅助类包括模式选择节点、状态查询节点、自动查询节点和终态汇聚节点;
15、所述条件路由边包括6条条件路由边及对应的路由函数:
16、从所述路由分发节点出发的第一条件路由边,对应第一路由函数route_dispatch,用于基于用户输入类型信号进行路由;
17、从所述模式选择节点出发的第二条件路由边,对应第二路由函数route_dispatch,用于基于槽位完备性信号进行路由;
18、从所述意图分类节点出发的第三条件路由边,对应第三路由函数route_classify_intent,用于基于意图分类结果信号进行路由;
19、从所述槽位提取节点出发的第四条件路由边,对应第四路由函数route_slot_extract,用于基于意图类型信号进行路由;
20、从所述流程控制节点出发的第五条件路由边,对应第五路由函数route_flow_control,用于基于槽位完备性信号和查询决策信号进行路由;
21、从所述自动查询节点出发的第六条件路由边,对应第六路由函数route_auto_fetch,用于基于缺失槽位信号、地理实体门控信号和业务查询模式信号进行路由;
22、进一步优选的,所述条件路由边由三维路由信号驱动,所述三维路由信号包括:
23、所述意图分类结果信号由所述有向状态图中的意图分类节点调用大语言模型产生,取值包括闲聊意图、状态查询意图及业务意图;
24、所述槽位完备性信号由流程控制节点或自动查询节点计算产生,表示当前尚未收集齐全的必填槽位列表;
25、所述业务查询模式信号由路由分发节点或所述流程控制节点设置,用于确定调用何种业务api。
26、进一步优选的,所述自动查询节点对应的路由函数执行三重优先级路由判定:
27、第一优先级:若缺失槽位列表非空,则路由至引导节点;
28、第二优先级:若地理实体门控标志为真,则路由至引导节点;
29、第三优先级:若所述缺失槽位列表为空且所述地理实体门控标志为假,则按照所述业务查询模式信号路由至对应的业务查询节点。
30、进一步优选的,在s2中,在所述持久态和所述瞬态的状态字段定义中,通过类型注解声明合并语义,包括:所述状态字段定义为覆盖语义和追加语义;
31、对采用覆盖语义的字段,以第一注解类型进行标注,框架层在合并时以节点返回的新值覆盖旧值;
32、对采用追加语义的字段,以第二注解类型进行标注,框架层在合并时将节点返回的新列表追加至旧列表尾部。
33、进一步优选的,所述覆盖语义的字段分配10个包括:路由分支信号、意图分类结果、查询模式信号、是否查询标志、缺失槽位列表、地理实体门控标志、引导用户消息、当前模式、对话阶段、槽位数据;所述追加语义的字段分配4个包括:对话历史、流式事件列表、思考步骤列表、已完成模式列表,均为列表型累积字段,各节点产生的内容应全部保留。
34、进一步优选的,在s3中,在所述有向状态图的各功能节点执行过程中,通过运行时注入的事件通道异步向外推送增量事件,其中,所述事件通道为基于异步队列的封装,提供以下接口:
35、异步写入接口,用于向队列写入事件数据,队列满时阻塞等待;
36、异步读取接口,用于从队列读取事件数据,队列空时阻塞等待;
37、关闭接口,用于向队列写入哨兵信号以终止消费循环。
38、进一步优选的,还包括向外推送增量事件时,通过以下双协程异步架构实现:
39、子任务协程执行所述有向状态图,各功能节点在执行过程中通过所述异步写入接口推送增量事件,有向状态图执行完成后通过所述关闭接口写入哨兵信号;
40、主协程通过所述异步读取接口消费事件,收到非哨兵信号的事件时向外输出,收到所述哨兵信号时终止消费循环并等待所述子任务协程完成。
41、进一步优选的,在s5中,根据所述功能节点的类型执行终态处理具体包括:
42、自终止路径:对于交互引导类节点,所述交互引导类节点包括闲聊节点、状态查询节点和引导节点,所述交互引导类节点执行完毕后自行发射选项事件和完成事件,并通过有向状态图的边直接连接图终点,不经过终态汇聚节点;
43、汇聚路径:对于业务查询类节点,所述业务查询类节点包括事件查询节点、诊断查询节点和标准查询节点,所述业务查询类节点执行完毕后汇入终态汇聚节点;
44、所述终态汇聚节点统一执行以下后处理:根据已完成模式列表构建快捷选项并隐藏已完成模式的选项、发射选项事件、发射完成事件、更新对话阶段状态;其中,每个对话轮次有且仅有一个完成事件发出,由终止节点负责发射所述完成事件,所述自终止路径由所述交互引导类节点发射所述完成事件,所述汇聚路径由所述终态汇聚节点发射所述完成事件。
45、本发明还提供一种基于多节点条件路由状态图的对话流程编排系统,状态图构建模块,被配置为构建包含多个功能节点和条件路由边的有向状态图;状态管理模块,被配置为将对话状态划分为持久态和瞬态两个层级,执行持久态与瞬态之间的双向转换,并具有跨轮次路由信号隔离功能;路由执行模块,被配置为以瞬态作为状态参数执行所述有向状态图;事件通道模块,被配置为在各功能节点执行过程中通过运行时注入的事件通道异步向外推送增量事件;终态处理模块,被配置为根据功能节点的类型执行混合终态策略:交互引导类节点直连图终点,业务查询类节点汇入终态汇聚节点统一处理后连接图终点。
46、有益效果
47、本技术提出了一套系统化的基于多节点条件路由状态图的对话流程编排方法及系统,将对话流程从传统的规则散落、状态混用、计算耦合模式转变为节点化路由、双层隔离、通道解耦的确定性与可审计架构。相比于现有技术至少具有以下优点:
48、1、本发明首创性提供了基于意图-槽位-模式三维信号的多节点条件路由状态图;创新性地将对话流程的路由决策抽象为三维信号(意图分类结果、槽位完备性、业务查询模式)驱动的纯函数条件路由,克服了传统fsm仅支持(状态, 输入) 到下一状态二元映射的局限;路由决策完全由状态字段值确定,不依赖llm黑盒推理,具备确定性、可审计性和可单元测试性。
49、2、本发明采用了持久态/瞬态双层状态结构及轮次隔离机制,将对话状态创新性地划分为持久态和瞬态两个层级,通过深拷贝转出和显式白名单回写的双向转换机制,在轮次边界实现路由信号的彻底隔离。彻底杜绝了跨轮次路由信号残留导致的误路由问题;有向状态图执行失败时原始持久态不受影响,实现了图内的失败隔离与自动回滚。
50、3、本发明采用了类型注解声明合并语义策略
51、在状态字段定义时即声明合并语义;路由信号字段使用覆盖语义,累积型字段使用追加语义。框架层根据注解自动选择正确的合并策略。解决了传统方案无法在字段粒度区分合并语义的痛点,彻底消除手动处理合并逻辑带来的错误。
52、4、本发明采用了基于asyncio.queue的事件通道解耦;设计eventchannel封装异步队列,通过运行时配置注入图节点。采用双协程架构,即子协程执行图并推送事件,主协程消费事件并通过sse输出,两者通过queue解耦。none哨兵保证消费循环可靠终止。实现图计算与http传输层完全解耦,支持流式增量推送,无需等待有向状态图执行完毕。
53、5、本发明采用了自终止与汇聚的混合终态策略;交互引导类节点(闲聊、状态查询、引导)自终止直连end,避免被汇聚节点误处理;业务查询类节点统一汇入终态汇聚节点后处理,消除代码重复。“谁终止谁发射done”确保每轮有且仅有一个完成事件,避免重复或遗漏。
54、综上所述上述5方面创新协同配合实现从“llm概率决策”到“确定性可审计编排”的范式转变:路由确定可追溯、跨轮状态绝对安全、节点独立可扩展、流式实时推送、终态行为一致。可广泛应用于智能客服、能耗分析、医疗问诊等垂直领域对话系统。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com