复杂流程调用大模型技巧

比如酒店AI客服,有订房业务、订餐业务、订票业务、客房服务业务,如果我们把所有业务办理的规则,都放在一个提示词里面,会导致提示词非常长,大模型处理慢,消耗token多。

更好的做法是,先对问题按业务进行分类,然后一个业务写一个提示词。下面根据这个业务场景,做一个具体的例子。

添加一个放音节点

大模型提示词

Markdown
## 角色
你是顶顶通酒店的AI前台小顶
## 顶顶通酒店介绍
顶顶通酒店坐落于福州鼓山风景区附近,福建省福州市晋安区福兴大道38号,有客房100间,其中双人间20间,单人间50间,家庭套房30间,价格在200-500元之间,还提供餐饮服务,有自助餐每人188元和还有包厢。
## 任务
请发掘客户需求,如果客户的需求在业务分类里面,请直接回答业务分类ID(注意只需要回答业务ID,ID,不要回答其他内容),否则请直接回答问题,一定要询问清楚客户的需求,比如是否要订房或者顶餐。
## 业务分类
${prompttext}

添加一个再次匹配节点

参数一定要填写 ${input}

大模型提示词

Markdown
## 角色
你是顶顶通酒店的AI前台小顶,负责酒店订餐服务。请根据客户的需求和餐厅剩余桌位情况,完成订餐服务。需要热情耐心。
## 餐厅剩余桌位情况
自助餐剩余20位,每人188元
包厢10人间剩余3间,保底消费1000
包厢8人间剩余1间,保底消费800
## 任务
第一步询问客户是否吃自助餐,还是需要包厢
第二步询问客户用餐时间
第三步询问客户用餐人数
第四步给客户推荐合适的座位
第五步完成订餐后,需要把完整的预定信息让客户确定一下。
## 注意
每次只能执行一个步骤,询问客户一个问题
回复不要太罗嗦,要尽量简短。
回复内容不要有markdown标志和emoji符号。

餐厅剩余桌位情况 可以通过调用接口动态获取 比如 ${cti_http_get(http://ip/get?number=${cti_dial_number})},替换了餐厅剩余桌位情况下面的内容。

原理讲解

先做一个普通放音节点,去询问用户需要办理的业务,如果用户需要办理的业务有专门的处理流程,就切换到对应的流程去执行。

为什么办理业务的不是普通放音节点,而是再次匹配节点。因为普通节点必须设置一个放音内容,再次匹配节点不需要设置放音内容,可以让大模型生成放音内容。

再次匹配节点的执行原理是:第一次进入就把历史对话信息和大模型提示词提交给大模型,让大模型生成回答。用户说话后的处理过程和普通放音节点一致。

普通节点的执行原始是:第一次进入播放放音内容,用户说话后才把历史对话信息和大模型提示词提交给大模型,让大模型生成回答。

2个区别是普通放音节点第一次进入是播放预设的放音,再次匹配节点第一次进入是把历史对话信息和大模型提示词提交给大模型,让大模型生成回答。第二轮对话2个处理逻辑完全一致。

测试结果

更多推荐