如何在 dialogflow 的内联编辑器中使用会话实体?

How to use session entity in dialogflow's inline editor?

我的问题是在意图的挂钩之间传递参数。

例如:在一个钩子上,我向自己的后端发出了一个请求,并收到了一个 sessionId。我需要将 sessionId 传递给它的挂钩中的第二个请求的另一个意图。

我该怎么做?我找不到任何示例、文档或最佳实践。

感谢您的关注!

您可以使用 contexts 执行此操作。

在你的第一个意图中,你做了这样的事情:

function firstIntentHandler(agent){
  return axios.get(`https://yourserver.com`)
   .then(function (response)  {
    agent.add(response.data.sessionId);

    const context = {'name': 'yourcontextname', 'lifespan': 3, 'parameters': 
                     {'sessionid': response.data.sessionId }}; 
    agent.setContext(context);

        }).catch(function (error) {
    agent.add("An error occured.");
  });
}

sessionId 是您服务器发送的 json 数据中的变量名。

在您的其他意图中,您可以像这样访问此数据:

function otherIntentHandler(agent) {
  const context = agent.getContext("yourcontextname");
  const sessionid = context.parameters.sessionid;
  // do something with this session id
  });
} 

请注意上下文名称的驼峰式拼写。我有一种感觉,大写字母被存储为小写...