工作流Agent:如何使用全局跳转节点搭建飞行客服小助手
整体概述
本文介绍如何通过千帆AppBuilder的工作流Agent搭建一个飞行客服小助手,这个小助手可以理解用户意图,帮助用户查询航班动态或查询天气,也可以解答用户关于飞行的相关问题。这个小助手还可以在与用户对话过程中,实现话题的灵活跳出和拉回。
通过阅读本内容,读者可以掌握意图分类节点、信息收集节点和全局跳转等节点的使用方法,快速搭建出自己的工作流Agent。
该飞行客服小助手的工作流如下图所示:
在该工作流中,使用意图识别节点对用户原始提问进行分流,不同的意图进入不同的后续流程。 识别意图后,通过信息收集节点询问并收集需要的用户信息,然后通过分支器分流以下两种情况:
1)当收集到所需的用户信息,则通过天气查询组件或者航班信息查询组件查询结果,然后通过大模型节点总结润色结果后输出给用户。
2)当没有收集到所需的用户信息,说明用户表达了其他意图或者提出了其他问题,则通过全局跳转节点跳转到相应的意图、或基于知识库回复用户问题、或基于闲聊大模型回复用户问题,然后将话题拉回到原意图,继续询问收集所需的用户信息。
效果示例:
用户:查天气
飞行客服小助手:请提供您要查询哪个城市的天气?
(意图识别完成,分支到查询天气的意图,执行信息收集节点,询问城市)
用户:我先查个航班吧
飞行客服小助手:请提供您要查询的航班号
(信息收集节点没有收集到城市信息,分支器分流到全局跳转节点,执行全局意图识别,识别到查询航班动态的意图,跳转到该意图,执行信息收集节点,询问航班号)
用户:HU7447
飞行客服小助手:航班HU7447从北京首都飞往成都,当前状态为已排班,预估出发时间为2024年12月26日6点10分,预估到达时间为2024年12月26日9点,目前未显示有延误、改道或取消信息。 下面继续帮您查询天气。 请提供您要查询哪个城市的天气?
(收集到航班信息,分支器分流到航班动态查询组件节点,查询到航班信息后,大模型总结后回复用户,由于原意图(查询天气)尚未结束,将话题拉回到原意图,继续询问收集城市信息)
用户:我昨天做的手术,今天可以坐飞机吗
飞行客服小助手:昨天做的手术,今天不可以坐飞机。 由于空中旅行压力要比地面大,即使机舱内调整了压力,但还是会有压力差,容易引起血压波动,导致伤口裂开、出血、感染等并发症,会增加术后病症发生的风险。为了您的飞行安全,请在术后15天再乘坐飞机。 下面继续帮您查询天气。 请提供您要查询哪个城市的天气?
(信息收集节点没有收集到城市信息,分支器分流到全局跳转节点,从知识库中找到了回复用户问题的答案,输出该答案给用户,然后将话题拉回到原意图,继续询问城市信息)
用户:成都。
飞行客服小助手:成都2024年12月26日天气情况如下: 温度范围:4℃ - 13℃ 天气状况:多云 风向风速:西南风 请注意,以上天气情况仅供参考,实际天气情况可能会有所不同。如需更多信息,请查询相关天气预报网站或应用。
(收集到城市信息,分支器分流到天气查询组件节点,查询到信息后,大模型总结回复用户,对话结束)
搭建过程:
步骤一:构建工作流Agent
- 登陆百度智能云千帆AppBuilder平台。
- 创建工作流Agent,填写应用配置的基本信息。
步骤二:搭建工作流
搭建工作流,依次选择节点,工作流如下:
一.意图识别
使用意图识别节点对用户初始输入进行意图区分,在本次配置中,共设置三种意图:a. 查询航班动态 b. 查询天气 c. 其他意图。不同的意图导入不同的分支。
二.分支一:查询天气
- 使用信息收集节点询问并收集城市信息,节点配置如下:
2.通过分支器节点分流如下两种情况:
1)收集到城市信息:先通过天气查询组件查询天气。
然后通过大模型节点进行润色总结,再连接到结束节点进行输出。
2)没有收集到城市信息:通过全局跳转节点跳转到相应的意图、或基于知识库回复用户问题、或基于闲聊大模型回复用户问题,然后将话题拉回到原意图,继续询问收集所需的用户信息。
全局跳转节点的配置:
输入:query,string类型,默认会引用前序最近连接的信息收集节点的输出参数query,在本示例中,为飞行小助手询问用户城市后,用户的回复内容。下面会根据用户的回复内容进行意图跳转、知识库问答或者闲聊问答。
跳转方式: 全局跳转节点支持三种跳转执行方式,按照优先级会依次执行这三种方式:
a) 全局意图识别。可选择开启或者关闭。在本示例中,开启全局意图识别,会将输入的query识别匹配全局的意图,全局意图的范围是所有意图分类节点中勾选了『允许跳转』的意图,若匹配到意图,则执行该意图后的工作流分支。若没有匹配到意图,则按照优先级,执行知识库问答。
b) 知识库问答。可选择开启或者关闭。在本示例中,开启知识库问答,会将输入的query去知识库中找答案,知识库在『对话设置』中配置,若从知识库中找到答案,则回复用户,若没有从知识库中找到答案,则按照优先级,执行闲聊回复兜底。
c) 闲聊回复兜底。默认开启,闲聊大模型会针对输入的query进行回复,闲聊大模型是在『对话设置』中进行配置。
拉回配置:
可开启或关闭拉回,在本示例中,开启拉回,具体拉回流程如下:
a) 当前面跳转到意图之后,会在该意图分支进行到结束节点之后,拉回到该全局跳转节点前序连接最近的信息收集节点,再次询问并收集城市信息。
b) 当前面跳转到知识库问答,会在知识库回复之后,拉回到该全局跳转节点前序连接最近的信息收集节点,再次询问并收集城市信息。
c) 当前面跳转到闲聊回复兜底,会在闲聊回复之后,拉回到该全局跳转节点前序连接最近的信息收集节点,再次询问并收集城市信息。
可配置最大拉回次数,达到该次数后,不再进行拉回,会按照该全局跳转节点的连线向后运行。
可配置拉回话术,会在拉回时,先输出拉回话术。本次示例设定为:下面继续帮您查询天气。
高级配置:
可选择全局意图识别的大模型,配置该模型的多样性,默认开启对话历史。
三.分支二:查询航班动态
该分支的配置同上述查询天气的分支。
四.分支三:其他意图
该分支为兜底意图,当小助手开场白之后,用户的回复内容没有识别到查询天气和查询航班动态的意图,则进入该分支,用知识库回复用户。
1、Query多轮改写节点:
该节点的目的是根据历史对话改写用户本轮query, 进行语义指代及省略补全。后续将改写后的query输入知识库节点可改善检索效果。
2、知识库节点:
3、大模型节点(知识问答总结)