4
在將Wit.ai集成到網站中時,是否有某種方法來執行數據庫查詢,因爲用戶問題的答案必須從數據庫中提取,並且不能接受Chatbot的培訓。通過Wit.ai運行mysql查詢
在將Wit.ai集成到網站中時,是否有某種方法來執行數據庫查詢,因爲用戶問題的答案必須從數據庫中提取,並且不能接受Chatbot的培訓。通過Wit.ai運行mysql查詢
如您在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和上下文不止。 – ruselli