我正在開發與微軟博特框架,路易斯和LUISActionBinding一個機器人。如何從一個意圖跳到另一個LuisActionDialog傳遞上下文的
在我LUIS應用程序我有3個主要的意圖:BuyX,FindA和FINDB。該機器人的主要目標是幫助用戶購買X,但他們可能首先要先使用某些過濾器搜索A或B,或者直接去購買X.
我爲每個意圖設置了Actions與必需和可選字段,一切都很好,我能夠接收由我的意圖處理程序的操作返回的對象。
在FindA處理我幫助用戶選擇一個A和在FINDB處理我幫助用戶選擇一個B.在BuyX我需要從A信息和B繼續。但是如果用戶做了FindA或FindB對話框,我想重用那些我得到的東西。
我的問題是我怎麼能觸發從意圖FindA意圖BuyX,使代碼達到我BuyXAction類與依據是什麼,我能夠從FindA動作+有意收購已經分配的一些屬性。
這樣,用戶就不必輸入任何東西說,他希望FindA對話期間購買X也不重複的東西,他已經做了/選擇。
在此先感謝。
這概念是爲什麼我選擇使用ActionBinding的原因之一。我的想法是爲BuyX創建子動作,例如BuyX_ChangeY,BuyX_ChangeZ等。但是這些Y和Z並不一定是我的A和B.您是否建議我應該讓FindA和FindB擴展BaseLuisContextualAction? –
是的,我會嘗試。 –
在我的FindActions中,我從服務獲取數據並根據用戶輸入進行過濾,並將對象列表返回給相應的意圖處理程序。在那裏,我使用列表向用戶顯示卡片,並獲得更多信息或選擇一個。採用這種方法,我必須將FindA/B意圖處理程序中的所有代碼移動到BuyX意向處理程序? –