2017-09-15 52 views
2

我有一個與Node.js一起構建在Microsoft bot框架中的聊天機器人,我將這個機器人與一個名爲LUIS.AI智能的NLP框架集成在一起,以處理基於upnon他們的意圖和實體的用戶對話。在這裏,我需要這個機器人來支持單個LUIS應用程序中的多種語言,但它不允許我們這樣做。在單個LUIS應用程序或代碼級別中是否有任何黑客方法支持多種語言?微軟chatbot(Node.js)在單個LUIS.AI應用程序中是否支持多種語言?

回答

2

代碼水平:您可以創建多個LUIS應用程序,並使用ILuisModelMap將它們插入到您的LuisRecognizer中。鑰匙將成爲您的語言環境。

// Assuming you've already instantiated your bot, time to instantiate 
// the LuisRecognizer with an ILuisModelMap. 

var many_language_recognizer = new builder.LuisRecognizer({ 
    'en': englishModel || process.env.EN_LUIS, 
    'es': spanishModel || process.env.ES_LUIS, 
    'fr': frenchModel || process.env.FR_LUIS 
}); 

bot.recognizer(many_language_recognizer); 

您還需要使用SDK的本地化功能來生成提示和消息。

LUIS程度: LUIS僅支持每個應用一個語言,因此不必創建多於一個的應用程序。

+0

感謝您的回覆。所以唯一的方法就是在LUIS中創建多個應用程序來支持多語言應用程序。有沒有其他的選擇可以在我們這邊提供一個單一的應用程序(英文),並且爲了多語言的目的而翻譯機器人響應和用戶響應? –

+0

當然可以!您可以使用[Translator Text API](https://azure.microsoft.com/en-us/services/cognitive-services/translator-text-api/)將所有傳入消息發送到LUIS之前進行翻譯。在這種情況下,您需要在調用LUIS識別器之前使用中間件來處理翻譯。您還可以使用中間件來翻譯您的機器人的響應,因此您不必在機器人內部使用其他本地化。 –

+0

謝謝史蒂芬。它確實有幫助。 –