2016-08-31 53 views
2

我正在寫一個可以講兩種語言的機器人。因此,我需要使用兩個獨立的LUIS應用程序(每種語言一個)。將模型和訂閱密鑰傳遞給LuisDialog,而不是通過屬性

的LuisDialog在機器人框架被初始化像這樣(例如微軟):

[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")] 
[Serializable] 
public class SimpleAlarmDialog : LuisDialog<object> 
{ 

不過,我需要使用取決於我有用戶的語言動態應用程序ID和訂閱密鑰決心。

兩個LUIS應用程序中的所有方法,意圖等都是相同的。

C#中的屬性不能是動態的。

什麼是另一種方式,我可以動態地將應用程序和訂閱鍵傳遞給LuisDialog,而不是硬編碼它們?

回答

6

您必須在Autofac容器中註冊您的LuisModelAttribute。你可以看一看here,它是如何在BotBuilder倉庫的AlarmBot示例中完成的

0

我通過稍微改變方法解決了問題。你實際上可以用兩個或更多的LuisModel屬性裝飾這個類,bot框架將同時查詢它們。

+1

是的,這是超過1個模型的另一種方式(請參閱http://stackoverflow.com/questions/38222920/how-to-integrate-multiple-luis-model-to-bot-framework/38229057#38229057)但是,這將不允許使用動態應用/訂閱密鑰 –

相關問題