【问题标题】:Run mysql query through Wit.ai通过 Wit.ai 运行 mysql 查询
【发布时间】:2017-10-29 19:29:25
【问题描述】:

在将 Wit.ai 集成到网站时,是否有某种方法可以执行数据库查询,因为必须从数据库中获取用户问题的答案,并且无法训练 Chatbot。

【问题讨论】:

    标签: python-3.x api machine-learning chatbot wit.ai


    【解决方案1】:

    正如您在 tutorial 中看到的那样,您在 wit.ai 中定义操作,这些操作可能涉及可以作为响应发送给用户的变量。因此,您应该在您定义的操作中对数据库进行查询,如果您尚未定义它们,请执行此操作,因为您可以在其中使您的逻辑发生。另外,考虑到您可能会处理对数据库的非同步请求,那么您应该实现一个块机制,以便在您完成查询后立即返回每个操作中的上下文。

    我知道你想在 python 中实现,但我已经在 node.js 上实现了,所以这是我的示例代码。

      getFullName({sessionId, context, entities}) {
        let session;
        let fbid = sessionId.split("-")[0];
        return fbTypingOn(fbid)
          .then(() => {
            return model.getSesion(fbid);
          })
          .then(sesion => {
            session = sesion;
            return callFbUserAPI(session);
          })
          .then(first_name => {
            session.context.fullNameGreeting = utilsBot.buildGreeting(session);
            return model.setSesion(session);
          })
          .then( sesion => {
            return session.context;
          })
          .catch( error => {
            console.log("Error in getFullName " + error);
            session.context.fullNameGreeting = "Hola";
            return context;
          });
      }
    

    确保您阅读了官方页面中的所有文档,因为如果没有什么,那么您应该这样做。另外,我猜在 python 2 中已经有一个实现了。

    【讨论】:

    • 不客气。如您所见,我的 sessionId 是用户 facebook id 和另一个字符串的组合,因为当您在 wit.ai 中重新启动流程时,您应该清除上下文并生成一个新的 sessionId。此外,我在数据库中存储的不仅仅是 sessionId 和 context。
    猜你喜欢
    • 2012-01-25
    • 2010-12-10
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多