/botium-connector-luis

Botium Connector for Microsoft LUIS

Primary LanguageJavaScriptMIT LicenseMIT

Botium Connector for Microsoft LUIS

NPM

Codeship Status for codeforequity-at/botium-connector-luis npm version license

This is a Botium connector for testing your Microsoft LUIS intent resolution logic.

UPDATE 2020/06/15: As Chatbots grow in importance, automated testing solutions will remain critical for ensuring that Chatbots actually do what their designers intend. We've been busy working on a product that allows testers to have visual insights and deeper understanding in their Chatbot's performance, offering several solutions to boost their interaction! Botium Coach will be introduced to the market as part of our online event on the 24th of June.

Did you read the Botium in a Nutshell articles? Be warned, without prior knowledge of Botium you won't be able to properly use this library!

How it works

LUIS is just a stateless NLP. It does send answer, just returns intent, entities. So you are not able to test the answers, as for a chatbot engine. But you can check intent, and entities, and use other asserter and logic hook.

You can assert composite entities too:

INTENT <CompositeEntityName>.<EntityName>

It can be used as any other Botium connector with all Botium Stack components:

Prerequisites

  • Node.js and NPM
  • LUIS account
  • LUIS project (Just to try this connector you can use public IoT project from Microsoft used for the interactive demonstration)
  • Application ID
    • Open your project, then go to Manage, Application Information, Application ID
    • The Id for the public IoT project is df67dcdb-c37d-46af-88e1-8b97951ca1c2
  • LUIS key
    • authoring key (up to 1000 queries to the prediction endpoint API per month for all your LUIS apps)
    • subscription keys (Azure account required, free tier possible)
  • a project directory on your workstation to hold test cases and Botium configuration

Install Botium and Microsoft LUIS Connector

When using Botium CLI:

> npm install -g botium-cli
> npm install -g botium-connector-luis
> botium-cli init
> botium-cli run

When using Botium Bindings:

> npm install -g botium-bindings
> npm install -g botium-connector-luis
> botium-bindings init mocha
> npm install && npm run mocha

When using Botium Box:

Already integrated into Botium Box, no setup required

Connecting Microsoft Luis to Botium

Create a botium.json with Application ID, and LUIS key:

{
  "botium": {
    "Capabilities": {
      "PROJECTNAME": "Botium Project LUIS",
      "CONTAINERMODE": "luis",
      "LUIS_APP_ID": "xxx",
      "LUIS_ENDPOINT_KEY": "xxx"
    }
  }
}

Botium setup is ready, you can begin to write your BotiumScript files.

How to start sample

There is a small demo in samples/IoT dir with Botium Bindings. This tests the public IoT project. So to start it you have to add your authoring key to the botium.json file. Afterwards:

> npm install
> npm test

Additional Input Parameters

#begin
UPDATE_CUSTOM LUIS_PARAM|spellCheck|true

Supported Capabilities

Set the capability CONTAINERMODE to luis to activate this connector.

LUIS_API_VERSION

V2 or V3

LUIS_PREDICTION_ENDPOINT_URL

Default: https://westus.api.cognitive.microsoft.com

LUIS_PREDICTION_ENDPOINT_SLOT

Default: staging

Possible values:

  • staging
  • production

LUIS_PREDICTION_STATIC_PARAMS

Static parameters to add as endpoint url query parameters

"LUIS_PREDICTION_STATIC_PARAMS": {
  "spellCheck": "true",
  "verbose": "true"
}

LUIS_APP_ID

See Prerequisites

LUIS_ENDPOINT_KEY

See Prerequisites

LUIS_AUTHORING_KEY

Required for test set upload/download