3

我正在尝试在 wit.ai 中编写一个示例应用程序。我使用https://wit.ai/docs/quickstart中显示的 node.js 客户端跟踪了快速入门应用程序。此处显示的示例只有一个自定义操作。但是当我尝试添加一个新故事和一个新动作时,我看到故事之间正在共享上下文。这会导致错误的行为(正在执行来自另一个故事的自定义操作)。

我找不到任何具有多个自定义操作和故事的示例。除了来自 wit.ai 网站的示例之外,还有其他 node.js 或 python 示例吗?

4

2 回答 2

3

我想机智引擎不会在他们身边存储上下文。您的“合并”功能必须以不同的方式合并实体,具体取决于您的应用逻辑。

但是如果你的故事已经完成,你需要为下一个故事明确上下文。我添加了一个内置函数clear-context,并从机智中调用此函数作为操作。

看看我的例子。它不是官方的 api,但您可以了解 wit http api 的工作原理。

于 2016-05-08T00:25:35.950 回答
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找到一个工作示例。

于 2016-04-26T13:43:29.680 回答