【问题标题】:Node.js client for wit.ai calls multiple custom actionswit.ai 的 Node.js 客户端调用多个自定义操作
【发布时间】:2016-04-26 12:41:04
【问题描述】:

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

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

【问题讨论】:

    标签: wit.ai


    【解决方案1】:

    您需要为每个会话创建一个上下文,这是一个简单的示例(来自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 找到一个工作示例。

    【讨论】:

      【解决方案2】:

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

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

      查看我的example。 它不是官方的api,但是你可以理解wit http api是如何工作的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2021-03-06
        • 1970-01-01
        相关资源
        最近更新 更多