如何更改.BOT文件中的聊天机器人的LUIS应用程序?

时间:2019-03-28 10:32:00

标签: node.js azure botframework luis

我正在使用适用于Node.js和Microsoft Azure服务的botbuilder SDK V4开发一个机器人……

.bot文件中,我们找到了加密的LUIS应用信息。

{
  "type": "luis",
  "name": "luis",
  "appId": <appId>,
  "authoringKey": <authoringKey>,
  "subscriptionKey": <subscriptionKey>,
  "version": "0.1",
  "region": <region>,
  "id": <id>
}

我的问题是如何在.bot文件中更改我的机器人使用的LUIS应用程序?

在LUIS端点中,有一个名为staging的参数,它将指定我是在过渡模式还是生产模式下使用LUIS应用程序。

那么,如何在.bot文件中指定暂存或生产模式?

1 个答案:

答案 0 :(得分:3)

TL; DR

您不能仅通过编辑机器人的配置来使用暂存插槽。

但是您可以将分段与识别器的选项一起使用,因此请使用另一个参数来激活分段使用。


详细信息-在LUIS中使用分阶段与生产

从技术上讲,对LUIS应用程序的StagingProduction插槽的调用之间的区别可以在所调用的URL中看到,其中存在一个 staging=true字段:

  • 阶段:https://_AzureRegion_.api.cognitive.microsoft.com/luis/v2.0/apps/_AppId_?staging=true&verbose=true&timezoneOffset=60&subscription-key=_YourKey_&q=_YourQuery_

  • 产品:https://_AzureRegion_.api.cognitive.microsoft.com/luis/v2.0/apps/_AppId_?verbose=true&timezoneOffset=60&subscription-key=_YourKey_&q=_YourQuery_

在Bot Builder中的实现

您可以在BotBuilder源中看到staging从未在配置中使用。但是,在名为LuisRecognizer的类中,您可以在存在options布尔值的地方传递staging,对于.Net请参见here,对于js请参见here。 / p>

因此在您的情况下使用js:

// Map the contents to the required format for `LuisRecognizer`.
const luisApplication = {
    applicationId: process.env.appId,
    endpointKey: process.env.subscriptionKey,
    azureRegion: process.env.region
}

// Create configuration for LuisRecognizer's runtime behavior.
const luisPredictionOptions = {
    includeAllIntents: true,
    log: true,
    staging: **POINT TO A CONFIG VARIABLE FOR EXAMPLE**
}

const luisRecognizer = new LuisRecognizer(luisApplication, luisPredictionOptions, true);