1

我正在尝试将 BING SpellChecker 包含在我的 LUIS 应用程序中。它工作正常,但我想在运行时更改我当前 LuisService 的 bool SpellChecker。想法:仅当 LUIS 使用原始查询获得“无”意图并使用更改后的查询再次尝试时,才使用拼写检查器。

因此,我需要在运行时更改变量并发布新请求。这可能吗?

这是我的 LuisDialog 构造函数:

public BasicLuisDialog() : base(new LuisService(new LuisModelAttribute(
        LUIS_appId,
        LUIS_apiKey,
        domain: LUIS_hostRegion
        )
    {
        Verbose = true,
        BingSpellCheckSubscriptionKey = BING_key,
        SpellCheck = true
    }))
    {
    }

谢谢你和最好的问候 Bahneby

4

1 回答 1

0

因此,查看Programmatic LUIS API 文档,看起来确实没有办法直接以编程方式编辑 LUIS 模型以包含/排除 Bing 拼写检查。


但是,话虽如此,也许您可​​以着手设计您的程序以实际从您的机器人调用 Bing 拼写检查,而不是让 LUIS 处理它。

伪代码将是:

  1. 从用户发送给您的机器人的消息文本中获取话语(无拼写检查
  2. 将话语发送到 LUIS
  3. 如果 LUIS 结果显示在处理无意图的方法中意图无=>,则获取消息并通过必应拼写检查 API“过滤”它
  4. 使用从 Bing Spell Check API 获得的经过拼写检查的话语再次从 None 意图处理程序调用 LUIS

您可以在此处以各种语言查看有关如何从他们的文档中调用 Bing Spell Check API 的示例。


编辑:如果启用拼写检查,刚刚注意到在 LUIS ai 门户中调用的端点

对于上面伪代码中的第 3 步和第 4 步,您可以通过编辑您的机器人在您从机器人内部的 None 意图处理程序对 LUIS 的第二次调用中调用的端点来组合它们。

只需更改 url 参数spellCheck=true(在您对 LUIS 的原始调用中,您可以使用 spellCheck=false`)

端点 URL 示例:

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/LUIS_APP_ID?spellCheck=true&bing-spell-check-subscription-key=%7BYOUR_BING_KEY_HERE%7D&verbose=true&timezoneOffset=-360&subscription-key=LUIS_SUBSCRIPTION_KEY&q=

于 2019-01-08T19:22:25.293 回答