工作流Agent:如何使用全局跳转节点搭建飞行客服小助手
整体概述
本文将通过意图识别节点、分支器节点、问答节点、全局跳转节点、信息处理节点和知识库节点编排工作流agent,搭建理解用户意图、帮助用户查询航班动态、帮助用户查询航班天气的飞行客服小助手 。
通过阅读本篇最佳实践,读者可以深度理解问答节点、信息处理节点、全局跳转节点的功能点和使用方式,搭建自己的工作流agent。
效果示例:
本文构建的示例工作流概览如下图所示:
在该工作流中,使用意图识别节点对用户原始提问进行分流,不同的意图进入不同的后续流程。 识别意图后,通过问答节点收集用户信息,分支器对用户回答内容进行判别。此时会出现两种情况:
1)当问答节点收集的用户信息符合分支器的判定标准时,连接天气查询组件或者航班信息查询组件进行查询返回结果。
2)当问答节点收集的用户信息不符合分支器的判定标准时,全局跳转节点会根据全局对话设置回答用户提问并拉回问答节点继续收集用户信息,直至符合分支器判别标准为止。
搭建示例如下:
用户:查天气
工作流agent:请问您要查询哪个城市的天气?
(工作流意图识别完成,分支到意图2查询天气,执行问答节点)
用户:我先查个航班动态
工作流agent:请提供您要查询的航班号
(分支器执行完成,分支到全局跳转节点,执行全局意图识别,跳转至意图1查询航班动态,执行问答节点)
用户:CA1234
工作流agent:已为您查询到航班号为CA1234的航班已于今天下午2点准点起飞,预计在今天晚上6点准点到达。下面帮您继续查询天气,您问您要查询哪个城市的天气?
(全局设置内意图1查询航班动态分支走完,航班查询节点执行完成,拉回收集城市节点,并输出拉回话术)
用户:我有个问题 昨天刚做完肠胃手术。今天可以坐飞机吗?
工作流agent:昨天刚做完肠胃手术,今天不可以坐飞机。下面帮您继续查询天气,您问您要查询哪个城市的天气。
(分支器执行完成,分支到全局跳转节点,执行全局意图识别失败,按照顺序执行知识库回复兜底,调用知识库进行回答,拉回收集城市节点,并输出拉回话术)
用户:北京的。
工作流agent:已为您查询到天气情况如下。
(执行天气查询节点,对话结束)
搭建过程:
步骤一:构建工作流agent
- 登陆百度智能云千帆appbuilder平台。
- 点击免费试用,打开主页。
- 点击创建工作流agent,填写应用配置的基本信息。
步骤二:搭建工作流
搭建工作流,依次选择节点,本文配置如下。
一.意图分类
使用意图识别节点对于用户初始输入进行意图区分,在本次配置中,共设置三种意图:a. 查询航班状态 b. 查询天气 c. 兜底意图。不同的意图导入不同的分支。
二.分支一:查询城市天气
- 使用信息收集节点查询城市天气,分支器节点判别采集的用户信息是否符合要求,若符合要求则连接天气查询组件返回查询结果,并在结束节点输出,工作流执行结束。
2.若不符合要求,则执行全局跳转节点。在本次示例中,未收集到符合判别器要求的用户回复,第一次跳转后执行全局意图识别,跳转至意图1查询航班动态。
全局跳转节点的配置:
输入:query,string类型,本示例中引用 收集城市-query。
跳转方式: 全局跳转节点支持三种跳转执行方式,运行全局跳转时,会依次执行这三种方式:
a) 全局意图识别。可选择开启或者关闭。开启时,跳转后二次识别所有意图分类节点中允许跳转的分支,若命中意图,则执行该意图后的工作流分支。若没有命中意图,则执行全局知识库问答。
b) 知识库问答。可选择开启或者关闭。知识库问答与对话设置一起配置使用。通过对话设置中配置的大模型进行回复,可在对话配置中配置知识库回复兜底,选择知识库和回答的大模型。若检索到符合用户query的回复,则执行知识库回答,回答结束后拉回上一次执行的信息收集节点,并执行拉回话术。若知识库未检索到符合用户query的回答,则执行闲聊回复兜底。
c) 闲聊回复兜底。默认开启。闲聊回度与对话设置一起配置使用。通过对话设置中配置的模型、人设要求、其他风格进行回复。执行闲聊回复兜底后拉回上一次执行的信息收集节点,并执行拉回话术。
拉回配置:
可开启允许拉回或者关闭。开启时,全局跳转节点执行完毕后,会拉回上一次执行的信息收集节点。本次示例为开启。 可配置拉回次数,设置用户执行几次拉回。本次示例设定为2. 可配置拉回话术。跳转执行完毕后,输出信息后会进行拉回话术输出。本次示例设定为:下面继续帮您查询天气。
高级配置:
可选择回复的大模型。配置该模型的多样性。可选择默认开启对话历史或者关闭。
三.分支二:采集用户航班信息
在本次示例中,意图识别至查询天气后,执行信息收集节点,收集用户信息:我先查个航班动态。分支器执行完成,分支到全局跳转节点,执行全局意图识别,跳转至意图1查询航班动态。
- 使用信息收集节点采集用户航班号信息,分支器节点判别采集的用户信息是否符合要求,若符合要求则连接航班信息查询组件返回查询结果,并在结束节点输出,工作流执行结束。
2.若不符合要求,则执行全局跳转节点。
全局跳转节点的规则: 全局跳转节点可以识别跳转用户意图,在跳转的意图流程结束后可以拉回到原流程,也可以用对话设置中的知识库或闲聊大模型回答用户的问题并可以拉回到原流程。全局跳转节点的具体说明见:创建应用节点说明。
全局跳转节点的配置:
输入:query,string类型,本示例中引用 收集航班号-query。
跳转方式: 全局跳转节点支持三种跳转执行方式,运行全局跳转时,会依次执行这三种方式:
a) 全局意图识别。可选择开启或者关闭。开启时,跳转后二次识别所有意图分类节点中允许跳转的分支,若命中意图,则执行该意图后的工作流分支。若没有命中意图,则执行全局知识库问答。
b) 知识库问答。可选择开启或者关闭。知识库问答与对话设置一起配置使用。通过对话设置中配置的大模型进行回复,可在对话配置中配置知识库回复兜底,选择知识库和回答的大模型。若检索到符合用户query的回复,则执行知识库回答,回答结束后拉回上一次执行的信息收集节点,并执行拉回话术。若知识库未检索到符合用户query的回答,则执行闲聊回复兜底。
c) 闲聊回复兜底。默认开启。闲聊回度与对话设置一起配置使用。通过对话设置中配置的模型、人设要求、其他风格进行回复。执行闲聊回复兜底后拉回上一次执行的信息收集节点,并执行拉回话术。
拉回配置:
可开启允许拉回或者关闭。开启时,全局跳转节点执行完毕后,会拉回上一次执行的信息收集节点。本次示例为开启。 可配置拉回次数,设置用户执行几次拉回。本次示例设定为2. 可配置拉回话术。跳转执行完毕后,输出信息后会进行拉回话术输出。本次示例设定为:下面继续帮您查询航班动态。
高级配置:
可选择回复的大模型。配置该模型的多样性。可选择默认开启对话历史或者关闭。
在本次示例中,通过拉回收集航班号的信息收集节点,获取到了符合要求的用户信息:航班号,成功执行航班信息查询。执行完毕后被拉回分支一中的收集城市的信息采集节点,并输出拉回话术为:已为您查询到航班号为CA1234的航班已于今天下午2点准点起飞,预计在今天晚上6点准点到达。下面帮您继续查询天气,您问您要查询哪个城市的天气?
由于用户输入为:我有个问题 昨天刚做完肠胃手术。今天可以坐飞机吗?,该信息不符合分支器判别标准,故继续执行全局跳转。由于本次用户query不属于任何意图,故执行知识库问答。根据知识库设置,输出知识库查询节点,并输出拉回话术,同时拉回至收集城市节点。输出为:昨天刚做完肠胃手术,今天不可以坐飞机。下面帮您继续查询天气,您问您要查询哪个城市的天气。
此时用户输入query为:北京。符合分支器判别标准,执行城市天气查询并输出,工作流执行结束。