【发布时间】:2017-09-21 15:48:22
【问题描述】:
如果 QnA 是使用 luis 创建的,是否可以将 QnA 集成到我的聊天机器人中?当 luis 没有答案时,我想使用 luis 的意图“none”来触发 QnA。 我该怎么做?
【问题讨论】:
标签: artificial-intelligence azure-language-understanding
如果 QnA 是使用 luis 创建的,是否可以将 QnA 集成到我的聊天机器人中?当 luis 没有答案时,我想使用 luis 的意图“none”来触发 QnA。 我该怎么做?
【问题讨论】:
标签: artificial-intelligence azure-language-understanding
查看Qna + LUIS Node.js 示例。
【讨论】:
是的,这是可能的。
在 Luis 对话框中添加这个
[LuisModel("modelID", "SubscriptionKey")]
[Serializable]
public class RootDialog : LuisDialog<object>
{
[LuisIntent("None")]
public async Task NoneRes(IDialogContext context, LuisResult result)
{
var qnadialog = new QnADialog();
await context.Forward(new QnADialog(), AfterQnADialog, context.Activity, CancellationToken.None);
}
private async Task AfterQnADialog(IDialogContext context, IAwaitable<object> result)
{
var answerFound = await result;
// handle after qna response
}
}
然后在 QnADialog 中添加这个
[Serializable]
[QnAMaker(authKey: "AuthKey", knowledgebaseId: "KnowledgebaseId", defaultMessage: "please rephrase, I could not understand.", scoreThreshold: 0.5, top: 1, endpointHostName: "https://yourAccount.azurewebsites.net/qnamaker")]
public class QnADialog : QnAMakerDialog
{}
因此,每当您的 LUIS 将返回 None 意图时,它都会调用 QnADialog 在属性本身中您将提供 AuthKey、知识库 ID、默认响应、主机地址等,它会起作用。
希望这会有所帮助
【讨论】:
你可以试试Dispatch tool for multiple LUIS and QnA models:
如果机器人使用多个 LUIS 模型和 QnA Maker 知识库 (KB),您可以使用 Disptach 工具确定哪个 LUIS 模型或 QnA Maker KB 最适合用户输入。调度工具通过创建单个 LUIS 应用来将用户输入路由到正确的模型来实现这一点。
该工具适用于 Bot Builder SDK v4。
【讨论】: