通过与 LUIS.AI 集成的 bing 拼写检查 api 是否可以与基于 QnA 知识的问题的调度模式一起使用?

Can the bing spell check api via integration with LUIS.AI be used with the dispatch pattern for QnA knowledge based questions?

据我了解,通过 azure 的 bing 拼写检查 api 可以与 LUIS 查询集成,但不能与 qna 查询集成。但是,当您将分派多模型模式与父 LUIS 应用程序和子应用程序一起使用时,来自 luis 的整体查询或顶级查询可以 运行 bing 拼写检查 api。

这是确保对 qna 知识库应用某些拼写检查的建议方法吗?

是的,您可以使用 Dispatch Bot 执行此操作。当您从识别器返回结果时,如果拼写检查进行了更正,将会有一个 alteredText 值。您要做的是用这个新值替换原始文本。

const recognizerResult = await this.dispatchRecognizer.recognize(context);
if (recognizerResult.alteredText) {
    context.activity.text = recognizerResult.alteredText;
}

<code to select intent>

var processResult = await this.qnaDialog.processAsync(userDialog.qnaState, context.activity)

QnA Maker 现在应该会收到带有更改文本的查询。我没有完全实现此实现,但我必须在修改 context.activity.text 并从 Teams 中删除或@提及时做类似的事情,这会影响意图识别和 QnA 答案。

如 billoverton 所述,如果将 Bing 拼写检查与 LUIS 集成,则可以在 LUIS 结果的 alteredQuery 属性 中访问经过拼写检查的话语。如果您没有在话语到达 QnA Maker 之前传递话语的 LUIS 模型,您始终可以直接使用 HTTP requests or using an Azure SDK.[=15 调用 Bing 拼写检查 API =]

获得经过拼写检查的话语后,您可以通过 QnA 对话框将其传递给 QnA Maker,方法是像 billoverton 建议的那样修改轮次上下文的 activity,或者您也可以直接调用 API . QnA Maker documentation 中有大量关于使用 REST API 或 SDK 生成答案的信息。