You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dialogflow意图是否支持可选输入上下文?无需创建重复意图

解决Dialogflow意图复用:用上下文+槽位默认值实现可选参数填充

嘿,完全不用创建两个几乎一样的意图!Dialogflow本身就支持你想要的这种“有上下文就用,没有就问”的逻辑,只需要一个主意图就能搞定,我给你一步步拆解怎么配置:

核心思路

利用输入上下文的可选性 + 参数默认值从上下文提取的组合,让同一个意图自动适配两种场景:

  • 当存储房间信息的上下文存在时,直接读取上下文里的room值,跳过槽位询问
  • 当上下文不存在时,触发槽位填充流程,引导用户指定房间

具体配置步骤

  1. 创建主意图
    新建一个意图(比如命名为TurnOnLights),把你的训练短语都加进去:

    • turn on lights in the lounge
    • turn on lights in the kitchen
    • turn on the lights(不带房间的触发短语)
  2. 定义必填槽位
    在意图的“参数”部分,添加一个必填参数room,绑定对应的实体(可以是自定义实体,包含lounge、kitchen等房间值),并标记为必填。

  3. 设置参数默认值(关键步骤)
    给room参数设置默认值,直接引用上下文里的变量。比如你用来存储房间的上下文叫room_context,那默认值就填:#room_context.room。

    这个默认值的作用是:如果上下文room_context存在且包含room变量,Dialogflow会自动把这个值填充到room参数里,不需要用户再输入。

  4. 配置输入上下文(可选)
    在意图的“上下文”标签页,添加room_context作为输入上下文。注意:Dialogflow的输入上下文是非强制的——就算这个上下文不存在,只要用户的查询匹配训练短语,意图依然会被触发,只是会进入槽位填充流程。

  5. 设置槽位填充提示
    在“参数”的“填充提示”里,添加引导用户的话术,比如:请问你要打开哪个房间的灯?。当上下文里没有room值时,Dialogflow就会用这句话询问用户。

场景验证

  • 有上下文的情况:如果之前的交互已经把room: lounge存在room_context里,用户说turn on the lights,意图触发后会直接读取上下文的lounge,执行打开客厅灯的操作,不会额外询问。
  • 无上下文的情况:用户第一次说turn on the lights,上下文不存在,意图触发后会弹出填充提示,等用户回答kitchen后,填充槽位并执行操作。

这样一来,一个意图就完美覆盖了两种场景,完全不用重复创建意图啦!

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:06:20