【问题标题】:Cannot pass data across intents in Dialogflow Fulfillment无法在 Dialogflow Fulfillment 中跨意图传递数据
【发布时间】:2019-01-09 20:16:56
【问题描述】:

在 Dialogflow Fulfillment 中,我只想使用 conv.user.storage 将数据从 Welcome Intent 传递到 help Intent,如下面的代码所示。我可以将它添加到欢迎意图中,但是当我尝试在帮助意图中检索它时,它始终是未定义的,这意味着数据不会传递给帮助意图。我花了几个小时做一些我认为直截了当的事情,但没有成功。我真的很感激一个真实世界的例子来说明如何解决它并理解我做错了什么。

function welcome(agent) {
   agent.add(request.body.queryResult.fulfillmentMessages[0].text.text[0]);
    var entity = 'media_getreq?message=volume';
    getData(entity).then(result => {
        let conv = agent.conv();
        conv.user.storage["devicedata"] = result;
        console.log(conv.user.storage["devicedata"]); //WORKS
    });
}

function help(agent) {              
        agent.add(request.body.queryResult.fulfillmentMessages[0].text.text[0]);
        let conv = agent.conv();
        console.log(conv.user.storage["devicedata"]); //ALWAYS EMPTY
}

【问题讨论】:

    标签: dialogflow-es-fulfillment


    【解决方案1】:

    您错过了Contexts 链接意图所需的关键组件。 上下文表示用户的当前状态 请求并允许您的代理将对话信息从一个意图传输到另一个意图。 您可以使用输入和输出上下文的组合来控制用户在对话序列中遍历的对话路径。

    总之,收集您的Welcome 输入的意图使用输出上下文来“记住”您所说的内容。 相同的上下文用作下一个意图的输入上下文,它将输入收集到HelpIntent。

    您需要相应地更新您的代码。详情请看:

    https://dialogflow.com/docs/contexts

    https://dialogflow.com/docs/contexts/contexts-api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      相关资源
      最近更新 更多