【问题标题】:Using paramter values from different intents in Dialogflow在 Dialogflow 中使用来自不同意图的参数值
【发布时间】:2020-04-11 21:57:43
【问题描述】:

我是 Dialogflow 的新手,我创建了一个机器人,它通过不同的意图(例如名字、姓名、生日等)查询不同的用户信息。现在我正在使用一个函数来实现,我需要来自不同意图的参数值。

  const {last_name, street, house_no, 
         zip_code, birthdate, 
          email} = agent.parameters;

在函数的输出中,参数被标记为“未定义”。我猜是因为 agent.parameters 仅指触发 webhook 的意图,它不会从所有其他意图中捕获参数值。有没有办法从其他意图中获取参数值?

【问题讨论】:

    标签: parameters dialogflow-es fulfillment


    【解决方案1】:

    如果您想使用来自不同意图的参数值,您首先必须将它们保存在您的 webhook 中。 Dialogflow 有一个名为 Context 的功能可以帮助您执行此操作。上下文有一个参数字段,您可以在其中存储值。因此,在您的第一个意图中,您可以通过创建上下文并将值添加到此上下文来存储它们。

    第一个意图

      const {last_name, street, house_no, 
         zip_code, birthdate, 
          email} = agent.parameters;
    
    agent.context.set('context_name', 5, {'lastName' : last_name, 'street': street});
    

    在上面的例子中,5 用来表示上下文的生命周期。因此,这些值将可用于 5 轮对话。接下来,在第二个意图中,您需要获取刚刚设置的上下文以使用这些值。之后,您可以从上下文的参数字段中获取值。

    第二个意图

    const context = agent.context.get('context_name');
    const lastName = context.parameters.lastName;
    const street = context.parameters.street;
    

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多