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

在Dialogflow中如何提取上一意图的用户输入值并在下一意图中使用

Dialogflow 多轮会话参数传递实现方案

这个需求可以通过Dialogflow原生的上下文(Context)和参数传递能力实现,不需要额外的外部存储,操作步骤如下:

步骤1:创建采集姓名的初始意图

  • 意图命名可设为获取用户姓名,配置触发该意图的训练短语,比如“你好”“哈喽”“在吗”这类首次打招呼的内容
  • 开启该意图的槽位填充(Slot Filling)功能,新增1个必填参数:
    • 参数名:user_name
    • 关联实体:优先用系统自带的@sys.given-name,如果中文姓名识别准确率不足,可以自定义姓名实体,或者临时用@sys.any代替
    • 槽位提示语:“你好呀,请问怎么称呼你?”
  • 在该意图的输出上下文配置项中,新增一个上下文,比如命名为user_info,有效期设置为2(至少覆盖下一轮会话即可)

步骤2:创建后续应答的触发意图

  • 意图命名可设为服务入口应答,在该意图的输入上下文配置项中,填入上一步创建的user_info,确保只有第一个意图完成姓名采集、输出该上下文后,本意图才会被触发
  • 配置训练短语,覆盖用户答复姓名的常见表达,比如“我叫张三”“张三”“你可以叫我张三”,标注出短语中的姓名部分对应user_name参数,关联和上一步相同的实体即可
  • 在响应内容中直接引用参数即可,写法如下:
    Hi $user_name,请问我可以为您提供什么帮助?
    
    Dialogflow会自动把$user_name替换为用户输入的真实姓名

额外配置说明

如果后续更多轮次的会话都需要调用用户姓名,把user_info上下文的有效期调整到对应轮次数即可,有效期内所有设置了user_info为输入上下文的意图,都可以直接调用$user_name参数。
如果是接入了Webhook做自定义逻辑处理,在Webhook接收到的请求体的queryResult.parameters字段中,也可以直接获取到user_name的取值,无需额外做持久化存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 08:54:01