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



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

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

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

感谢您的关注!

您可以使用上下文执行此操作。

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

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
});
} 

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

最新更新