《Dialogflow零基础入门教程》6 进阶使用 --上下文对话管理

6.1 上下文的实际应用

什么是上下文?

在真实对话中,人们交流时通常不会重复之前已经明确的信息,而是利用之前对话中的内容来进行后续的交流。这种对话中“记住”前面内容的能力在Dialogflow中称为“上下文”(Context)。

用通俗的例子理解上下文:
你在餐厅点菜时,服务员会记录你的点单内容,不会反复问你已经确认过的菜品。
例如:

  • 用户:我想要一杯咖啡。
  • 机器人:好的,一杯咖啡。需要加糖吗?
  • 用户:要的。
  • 机器人:好的,加糖的咖啡已为您下单。

上下文的重要性

  • 提升用户体验,使对话自然流畅;
  • 避免用户重复提供相同信息;
  • 记录对话历史信息,实现智能交互。

6.2 配置和管理上下文

以下将通过一个简单的“点餐机器人”示例来教你如何配置上下文。

案例:点餐机器人

Step 1:创建意图(Intent)并设置上下文
  • 打开Dialogflow控制台,创建新的意图OrderFood

  • Training phrases 中输入示例短语:

    我要点餐
    点餐
    我想点吃的
    
  • 在该意图的顶部 Contexts 部分设置:

    • Output contexts 中输入:ordering,生命周期(Lifespan)设为5次对话回合。

此时,每当用户启动点餐对话后,上下文ordering会自动激活。
在这里插入图片描述


Step 2:创建后续意图,使用上下文管理对话状态
  • 再创建一个新意图:ChooseFood,用于捕获用户想要的具体食物。

  • Contexts 部分设置:

    • Input contexts:填写刚刚定义的ordering
    • Output contexts:继续填写ordering(生命周期继续保持5)。
  • Training phrases 中,用户可能说:

    我要一份披萨
    给我来一碗面
    一杯咖啡
    
  • Responses 中可填写:

    好的,您要的是 $food-item。还需要别的吗?
    

注意: $food-item 是通过实体(Entity)识别到的菜品名,这里你需要定义一个自定义实体food-item


Step 3:定义实体(Entities)
  • 点击 Entities,新建实体,名称为food-item

  • 在实体中填写常见菜品,比如:

    披萨
    面条
    咖啡
    汉堡
    沙拉
    
  • 保存实体。
    在这里插入图片描述

测试效果
用户:“我要点餐” → 上下文ordering启动。
机器人:“您想吃点什么?”
用户:“一杯咖啡” → 自动识别food-item实体。
在这里插入图片描述


Step 4:完成点餐流程(结束上下文)
  • 新建意图CompleteOrder,表示用户确认结束点餐。

  • 设置上下文:

    • Input contextsordering
    • Output contexts:空(表示结束对话状态)。
  • Training phrases:

    不要了
    就这些了
    没有了,谢谢
    
  • Responses:

    好的,您的订单已经确认,一会儿就送到!
    

这样,机器人完成了一次完整的点餐流程,上下文ordering也自然地结束了。
在这里插入图片描述


6.3 通过上下文改善用户体验(示例演示)

上下文不仅能记录当前的对话状态,还可以极大改善对话体验:

例如,用户临时改变主意:

  • 用户:“我要点餐。”
  • 机器人:“好的,您想吃什么?”
  • 用户:“一份披萨。”
  • 机器人:“好的,披萨已加入订单。还需要别的吗?”
  • 用户:“哦,不对,改成汉堡吧。”
  • 机器人(识别到修改意图):“好的,已将披萨改为汉堡,还需要别的吗?”
如何实现这种灵活对话体验?
  • 你只需要额外创建一个ModifyOrder意图:
    • Input contextsordering
    • Output contexts:继续使用ordering
    • Training phrases示例:
      改成汉堡
      我改成面条吧
      披萨换成沙拉
      
    • Response示例:
      好的,已将您的订单修改为 $food-item,还需要其他的吗?
      

这样通过上下文管理,使机器人能够轻松处理复杂对话流程。
在这里插入图片描述


小结与关键点:

  • 上下文(Context):帮助机器人记住和管理对话历史;
  • 配置上下文:在意图中设定输入(Input)和输出(Output)上下文;
  • 上下文生命周期(Lifespan):决定上下文持续回合数;
  • 通过上下文管理,可显著改善用户体验,提升机器人智能表现。

课后实践与练习:

练习1: 在点餐机器人中加入“取消订单”功能,用户可以随时说“取消点餐”,机器人应结束上下文。

练习2: 进一步扩展点餐机器人,使之能记住用户过去的点餐习惯,并主动推荐。

练习3: 创建一个简单的酒店预订机器人,通过上下文管理完整的房间预订对话流程。


通过以上详细讲解和实际操作,你将对Dialogflow的上下文管理有深入理解和实践掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山海青风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值