运行mysql通过Wit.ai查询
Run mysql query through Wit.ai
在将 Wit.ai 集成到网站时,是否有某种方法可以执行数据库查询,因为必须从数据库中获取用户问题的答案,而不能将其训练到 Chatbot。
正如您在 tutorial 中看到的那样,您在 wit.ai 中定义了操作,这些操作可能涉及可以作为响应发送给用户的变量。所以,你应该在你定义的动作中查询数据库,如果你还没有定义它们,那么就去做吧,因为在那里你可以让你的逻辑发生。另外,考虑到您可能会处理对数据库的非同步请求,那么您应该在完成查询后实施一个块机制来 return 每个操作中的上下文。
我知道你想在 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 中已经有一个实现。
在将 Wit.ai 集成到网站时,是否有某种方法可以执行数据库查询,因为必须从数据库中获取用户问题的答案,而不能将其训练到 Chatbot。
正如您在 tutorial 中看到的那样,您在 wit.ai 中定义了操作,这些操作可能涉及可以作为响应发送给用户的变量。所以,你应该在你定义的动作中查询数据库,如果你还没有定义它们,那么就去做吧,因为在那里你可以让你的逻辑发生。另外,考虑到您可能会处理对数据库的非同步请求,那么您应该在完成查询后实施一个块机制来 return 每个操作中的上下文。
我知道你想在 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 中已经有一个实现。