botpress-nlu

0.1.0 • Public • Published

Botpress NLU ⚡

Botpress NLU is a Botpress module that adds NLU capatibilities to your bot by connecting to the NLU provider of your choice.

🚧 I'm looking for help to support more providers

Provider 🚩 Status
Native (built-in)
LUIS
DialogFlow Help needed
RASA

We believe NLP/NLU is a commodity, so this package abstracts the provider by providing a standard, clean interface that allows you (and the non-technicals) to easily edit the NLU data within Botpress.

With Botpress NLU,

  • You own your data
  • You can seamlessly switch to another NLP provider
  • (soon) You can continously train your bot on misunderstood phrases
  • (soon) You can share and import open-source, community-curated intents & entities

Installation

⚠️ This module only works with the upcoming Botpress X.

  • Install the module yarn add botpress-nlu
  • Configure a provider (see below)

Usage

  1. You need to chose a Provider (currently luis or rasa or native)
  2. Set the provider config to either luis or rasa
  3. Configure the provider

Global Configuration (source)

Key Environment Variable Required Default
provider NLU_PROVIDER Yes* native
intentsDir NLU_INTENTS_DIR Yes ./intents
entitiesDir NLU_ENTITIES_DIR Yes ./entities

'*': Provider is one of rasa, luis or native

Standard NLU Object (event.nlu)

Botpress NLU will instrument incoming events by providing a standardized object with the structure below.

Path Description Supported by
nlu.intent.name The name of the classified intent LUIS, RASA
nlu.intent.confidence Confidence of the classification, between 0 and 1, higher the better LUIS, RASA
nlu.intent.provider The provider that provided the classification LUIS, RASA
nlu.entities[i].name The name of the extracted entitiy -
nlu.entities[i].type The type of entity that was extracted LUIS, RASA
nlu.entities[i].value The normalized value of the extracted entity LUIS, RASA
nlu.entities[i].original The original (raw) value of the extracted entity RASA
nlu.entities[i].confidence The provider that extracted the entity LUIS, RASA
nlu.entities[i].position The position where it was found in the input string (start position) LUIS, RASA
nlu.sentiment TBD -
nlu.language TBD -

Providers – Features Matrix

Provider Intent Classification Entity Exraction Scopes (coming soon)
LUIS
RASA
Native

LUIS

LUIS Specific Configuration (source)

Key Environment Variable Required
luisAppId NLU_LUIS_APP_ID Yes
luisProgrammaticKey NLU_LUIS_PROGRAMMATIC_KEY Yes
luisAppSecret NLU_LUIS_APP_SECRET Yes
luisAppRegion NLU_LUIS_APP_REGION No (default is westus)

LUIS Caveats

There are some entities that LUIS doesn't support in some languages, make sure that the language you are using supports the entities you are using in Botpress (this module doesn't do this check for you).

LUIS FAQ

I get an error when syncing my model (click to see) Make sure that:
  • You have enough labels (min 2) for the intent
  • The entities you are using are supported by your app's language

RASA

Botpress NLU will create and train and maitain your projects and models automatically for you.

Note: By default, Botpress creates separate projects for development and production environment, e.g. dev__botpress__all and prod__botpress__all.

RASA Specific Configuration (source)

Key Environment Variable Required
rasaEndpoint NLU_RASA_URL No (default is http://localhost:5000/)
rasaToken NLU_RASA_TOKEN No (none by default)
rasaProject NLU_RASA_PROJECT No (default is botpress)

Contributing

The best way to help right now is by helping with the exising issues here on GitHub and by reporting new issues!

License

Botpress is dual-licensed under AGPLv3 and the Botpress Proprietary License.

By default, any bot created with Botpress is licensed under AGPLv3, but you may change to the Botpress License from within your bot's web interface in a few clicks.

For more information about how the dual-license works and why it works that way please see the FAQS.

Keywords

none

Install

npm i botpress-nlu

DownloadsWeekly Downloads

2

Version

0.1.0

License

Botpress Proprietary License

Unpacked Size

4.97 MB

Total Files

20

Last publish

Collaborators

  • allardy
  • michael.masson
  • franklevasseur
  • slvnperron