/botium-connector-rasa

Botium Connector for Rasa

Primary LanguageJavaScriptMIT LicenseMIT

Botium Connector for Rasa

NPM

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

This is a Botium connector for testing your Rasa chatbot.

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

Botium connects to your Rasa chatbot either to Rasa Core or to Rasa NLU directly.

When connecting to Rasa Core, Botium can test dialogues. When connecting to Rasa NLU, Botium can test the NLU functions only with the Botium NLP Asserters

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

Requirements

  • Node.js and NPM
  • a Rasa bot
  • a project directory on your workstation to hold test cases and Botium configuration

Install Botium and Rasa Connector

When using Botium CLI:

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

When using Botium Bindings:

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

When using Botium Box:

Already integrated into Botium Box, no setup required

Connecting Rasa chatbot to Botium

Setting up Rasa

When using REST_INPUT (Rasa Core), you have to add the RestInput channel to your Rasa configuration.

When using NLU_INPUT (Rasa Core), you have to add the --enable-api command line switch when starting your Rasa server.

Setting up Botium

Create a botium.json with the the URL of your Rasa installation in your project directory:

{
  "botium": {
    "Capabilities": {
      "PROJECTNAME": "<whatever>",
      "CONTAINERMODE": "rasa",
      "RASA_MODE": "REST_INPUT",
      "RASA_ENDPOINT_URL": "https://box.botium.at/rasa-demo/"
    }
  }
}

To check the configuration, run the emulator (Botium CLI required) to bring up a chat interface in your terminal window:

> botium-cli emulator

Botium setup is ready, you can begin to write your test cases with BotiumScript.

Using the botium-connector-rasa-cli

This connector provides a CLI interface for importing convos and utterances from your Rasa model and convert it to BotiumScript.

You can either run the CLI with botium-cli (it is integrated there), or directly from this connector (see samples/nlu/package.json for an example):

> botium-connector-rasa-cli rasaimport path-to-my-nlu.md

Please note that a botium-core installation is required

For getting help on the available CLI options and switches, run:

> botium-connector-rasa-cli rasaimport --help

How to start sample

There are two samples available in the samples folder. Both of them are based on Sara - the Rasa Demo Bot. Adapt the botium.json in these directories with your own Rasa Demo installation.

You can start the Rasa Core sample with these commands:

> cd ./samples/core
> npm install && npm test

For the Rasa NLU samples, first the nlu.md file from the Sara github repository is downloaded and the test cases are generated out of it.

> cd ./samples/nlu
> npm install && npm generate && npm test

Supported Capabilities

Set the capability CONTAINERMODE to rasa to activate this connector.

RASA_ENDPOINT_URL

Rasa endpoint URL.

RASA_MODE

Default: REST_INPUT

REST_INPUT for using Rasa Core The Rasa endpoint URL is extended with /webhooks/rest/webhook for posting the Botium requests.

NLU_INPUT for using Rasa NLU The Rasa endpoint URL is extended with /model/parse for posting the Botium requests.

RASA_ENDPOINT_PING_URL

Default: endpoint URL/version

URL to ping for checking availability of Rasa. By default, the version-endpoint is contacted.

RASA_ENDPOINT_TOKEN

If your Rasa endpoint is protected with token authentication, you have to specify the token to use here.

RASA_ENDPOINT_JWT

If your Rasa endpoint is protected with JWT Auth, you have to specify the JWT Token here.