GithubHelp home page GithubHelp logo

proficiency's Introduction

Proficiency

Regression test tool for rasa_nlu.

What is it for?

Proficiency allows bot developers to stay confident of the bot behaviour while its language model grows and becomes more complex. Developers can

  • define what intent and entites are expected given a certain query
  • define confidence levels required for certain, acceptable and uncertain matches
  • get a visual report of the test run
  • see details of the issues

Warning

In order to understand the following instructions you should be familiar with Rasa NLU and its terms. Please take a look at the docs if you feel you're missing something.

Setup

Install the library

npm install -g proficiency

Create a project folder where you will store

  • config.json: the configuration file, and
  • suite.json: the test suite.

For your convenience the folder src/sample-project contains example files that you can copy and customize.

Sample configuration is

{
  "project": "new_bot",
  "endpoints" : {
    "dev": {
      "name": "Dev",
      "url": "http://localhost:5000/parse"
    },
    "prod": {
      "name": "Production",
      "url": "https://example.com:5000/parse",
      "token": "rasa_nlu_server_token_if_any"
    }
  },
  "highConfidence": 0.75,
  "mediumConfidence": 0.65
}

As you can see, you can specify connection tokens for your endpoints. If null or missing, no token will be sent. Note: Be sure to use the same project name you used in Rasa. Otherwise the NLU serivce will be unable to answer.

Write regression tests in suite.json.

{
  "examples": [
    {
      "sentence": "Hi!",
      "expected": {
        "intent": {
          "name": "greetings"
        },
        "entities": []
      }
    },  
    {
      "sentence": "Hi Sarah!",
      "expected": {
        "intent": {
          "name": "greetings"
        },
        "entities": [
          {
            "start": 3,
            "end": 8,
            "value": "Sarah",
            "entity": "name"
          }
        ]
      }
    }
  ]
}

The format of each example is compatible with rasa_nlu responses. This way you can add new examples by

  • filling the sentence attribute, then
  • copying and pasting intent and entities from the response you received from rasa_nlu service, then
  • possibly removing fields like confidence, extractor, processors. They are not useful in this file.

Look at the available options

proficiency -h

Launch the test suite

Using your development endpoint:

npx proficiency <regression test folder path>

In production:

npx proficiency <regression test folder path> -p

Happy testing!

proficiency's People

Contributors

dependabot[bot] avatar gior avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.