声明性自适应对话框不适用于LUIS Recognizer

问题描述

我正在为我们的聊天机器人使用声明式自适应对话框。我在.dialog文件包括识别器LUIS感到很累。但是我在执行时未在工厂错误注册Microsoft.LuisRecognizer类型。我正在声明性文件中执行以下步骤。

在下面的4个声明性文件中创建。 Test.lu

enter image description here

在LUIS门户中创建经过培训的LUIS应用并发布。

Test.lu.dialog

{ "$kind": "Microsoft.MultiLanguageRecognizer","recognizers": { "en-us": "Test.en-us.lu","": "Test.en-us.lu" },"$schema": "../../TestBot.schema" }

Test.en-us.lu.dialog

    {
"$kind": "Microsoft.LuisRecognizer","applicationId": "my-app-id","endpoint": "our endpoint","endpointKey": "our key","$schema": "../../TestBot.schema"
}

Test.main.dialog

{
"$schema": "../../TestBot.schema","$kind": "Microsoft.AdaptiveDialog","autoEndDialog": true,"defaultResultProperty": "dialog.result","recognizer" : "Test.lu","triggers": [
{
"$kind": "Microsoft.OnIntent","intent": "Greeting","actions": [
{
"$kind": "Microsoft.SendActivity","activity": "Greetings intent!!!"
}
]
},{
"$kind": "Microsoft.OnIntent","intent": "Service","activity": "Service intent has been triggered..."
}
]
},"intent": "Cancel","activity": "The cancel intent has been triggered..."
}
]
}
]
}

我正在类中加载所需的对话框文件,但仍然遇到上述错误。请帮助我解决问题。

解决方法

您可以参考this的Adaptive Dialog(具有事件,流,时隙填充和歧义解决方案的丰富组成对话框)示例。

SDK为推理定义了一个声明性文件,称为.dialog文件。 .Dialog文件使您无需编写代码即可定义应用程序的逻辑。 .Dialog以开放式和可扩展的方式存储系统中任何对象的配置,并且这些定义可以重用,就像它们是自定义代码一样。可以通过.dialog文件创作SDK中的所有组件以及第三方库提供的组件,从而提供了丰富的系统组成和扩展功能。

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-adaptive-dialog-recognizers?view=azure-bot-service-4.0#luis-recognizer