0.1.0 • Published 7 years ago

botpress-nlu v0.1.0

Weekly downloads
15
License
Botpress Propriet...
Repository
-
Last release
7 years ago

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āœ…
DialogFlowHelp 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)

KeyEnvironment VariableRequiredDefault
providerNLU_PROVIDERYes*native
intentsDirNLU_INTENTS_DIRYes./intents
entitiesDirNLU_ENTITIES_DIRYes./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.

PathDescriptionSupported by
nlu.intent.nameThe name of the classified intentLUIS, RASA
nlu.intent.confidenceConfidence of the classification, between 0 and 1, higher the betterLUIS, RASA
nlu.intent.providerThe provider that provided the classificationLUIS, RASA
nlu.entities[i].nameThe name of the extracted entitiy-
nlu.entities[i].typeThe type of entity that was extractedLUIS, RASA
nlu.entities[i].valueThe normalized value of the extracted entityLUIS, RASA
nlu.entities[i].originalThe original (raw) value of the extracted entityRASA
nlu.entities[i].confidenceThe provider that extracted the entityLUIS, RASA
nlu.entities[i].positionThe position where it was found in the input string (start position)LUIS, RASA
nlu.sentimentTBD-
nlu.languageTBD-

Providers – Features Matrix

ProviderIntent ClassificationEntity ExractionScopes (coming soon)
LUISāœ…āœ…āŒ
RASAāœ…āœ…āŒ
Nativeāœ…āŒāŒ

LUIS

LUIS Specific Configuration (source)

KeyEnvironment VariableRequired
luisAppIdNLU_LUIS_APP_IDYes
luisProgrammaticKeyNLU_LUIS_PROGRAMMATIC_KEYYes
luisAppSecretNLU_LUIS_APP_SECRETYes
luisAppRegionNLU_LUIS_APP_REGIONNo (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

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)

KeyEnvironment VariableRequired
rasaEndpointNLU_RASA_URLNo (default is http://localhost:5000/)
rasaTokenNLU_RASA_TOKENNo (none by default)
rasaProjectNLU_RASA_PROJECTNo (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.