我正在尝试用wit.ai编写一个示例应用程序。我使用https://wit.ai/docs/quickstart处显示的node.js客户端跟随快速启动应用程序。 这里显示的示例只有一个自定义操作。但是当我尝试添加新故事和新动作时,我发现故事之间正在共享上下文。这导致了错误的行为(正在执行另一个故事的自定义操作)。
我找不到任何包含多个自定义操作和故事的示例。有什么node.js或python示例除了来自wit.ai网站的那些?
答案 0 :(得分:3)
您需要为每个会话创建一个上下文,这是一个快速示例(来自https://github.com/wit-ai/node-wit/blob/master/examples/messenger.js):
const findOrCreateSession = (fbid) => {
let sessionId;
// Let's see if we already have a session for the user fbid
Object.keys(sessions).forEach(k => {
if (sessions[k].fbid === fbid) {
// Yep, got it!
sessionId = k;
}
});
if (!sessionId) {
// No session found for user fbid, let's create a new one
sessionId = new Date().toISOString();
sessions[sessionId] = {
fbid: fbid,
context: { // New context per session id.
_fbid_: fbid
}
}; // set context, _fid_
}
return sessionId;
};
您可以在https://github.com/hunkim/Wit-Facebook找到一个有效的例子。
答案 1 :(得分:3)
我认为机智引擎并不存储他们的背景。 你'合并'函数必须以不同的方式合并实体,具体取决于您的应用程序逻辑。
但如果你的故事已经完成,你需要清除下一个故事的背景。
我添加了一个内置函数clear-context
,并将此函数作为动作调用。
查看我的example。 它不是官方的api,但你可以理解http api的工作方式。