在Dialogflow中将用户提供的值从一种意图传递到另一种意图

时间:2018-09-13 15:38:09

标签: dialogflow

团队, 在DialogFlow中,我从意图A的用户那里得到了一个值; (假设这是员工ID)。 在下一个意图B中,我想使用Employee ID(在先前的意图A中收集)并提供响应并执行Webhook。

我能够在意图A中收集值并以相同的意图显示。当试图将其传递给另一个Intent时,我惨遭失败。

在这方面感谢任何帮助。

Tnx 萨提亚

1 个答案:

答案 0 :(得分:1)

您将需要使用上下文来存储参数,并在另一个意图中通过上下文访问这些参数。

查看我的完整答案here

{  
  "fulfillmentText":"This is a text response",
  "fulfillmentMessages":[  ],
  "source":"example.com",
  "payload":{  
    "google":{  },
    "facebook":{  },
    "slack":{  }
  },
  "outputContexts":[  
    {  
      "name":"<Context Name>",
      "lifespanCount":5,
      "parameters":{  
        "<param name>":"<param value>"
      }
    }
  ],
  "followupEventInput":{  }
}

来自NodeJS代码
保存在第一个Intent中

let param1 = [];
let param2 = {};
let ctx = {'name': '<context name>', 'lifespan': 5, 'parameters': {'param1':param1, 'param2': param2}};
agent.setContext(ctx);

以其他意图访问

let params = agent.getContext("<context name>").parameters;
let param1 = params.param1;
let param2 = params.param2;