Запустить запрос mysql через Wit.ai

При интеграции Wit.ai в веб-сайт существует ли какой-либо способ выполнения запросов к базе данных, поскольку ответы на вопросы пользователей должны извлекаться из базы данных и не могут быть обучены чат-боту.


person Kapil Sen    schedule 29.05.2017    source источник


Ответы (1)


Как вы видите в руководстве, вы определяете действия в 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.

person sgelves    schedule 07.06.2017
comment
пожалуйста. Как вы видите, мой идентификатор сеанса состоит из идентификатора пользователя facebook и другой строки, потому что при перезапуске потока в wit.ai вы должны очистить контекст и сгенерировать новый идентификатор сеанса. Кроме того, я храню в своей базе данных больше, чем sessionId и контекст. - person sgelves; 09.06.2017