
Security News
Package Maintainers Call for Improvements to GitHub’s New npm Security Plan
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
@botpress/nlu
Advanced tools
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 | ✅ |
Recast | ✅ |
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,
⚠️ This module only works with the upcoming Botpress X.
yarn add @botpress/nlu
dialogflow
, luis
, rasa
, recast
or native
)provider
configKey | 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
dialogflow
,rasa
,luis
,recast
ornative
event.nlu
)Botpress NLU will instrument incoming events by providing a standardized object with the structure below.
Path | Description | Supported by |
---|---|---|
nlu.intent | Best classified intent based on confidence (same structure as below) | Dialogflow, LUIS, Rasa, Recast |
nlu.intents[i].name | The name of the classified intent | LUIS, Rasa, Recast |
nlu.intents[i].confidence | Confidence of the classification, between 0 and 1 , higher the better | LUIS, Rasa, Recast |
nlu.intents[i].provider | The provider that provided the classification | * |
nlu.entities[i].name | The name of the extracted entitiy | Dialogflow |
nlu.entities[i].type | The type of entity that was extracted | LUIS, Rasa, Recast |
nlu.entities[i].value | The normalized value of the extracted entity | Dialogflow, LUIS, Rasa |
nlu.entities[i].original | The original (raw) value of the extracted entity | Rasa, Recast |
nlu.entities[i].confidence | Confidence of the extraction, between 0 and 1 | LUIS, Recast |
nlu.entities[i].provider | The provider that extracted the entity | * |
nlu.entities[i].position | The position where it was found in the input string (start position) | LUIS, Rasa |
nlu.sentiment | TBD | Recast |
nlu.language | TBD | Recast |
Botpress NLU also provides two convenient methods to the NLU Object : nlu.intent.is(intentName)
and nlu.intents.has(intentName)
.
Provider | Synchronization | Intent Classification | Entity Extraction | Scopes (coming soon) |
---|---|---|---|---|
Dialogflow | ❌ | ✅ | ✅ | ❌ |
LUIS | ✅ | ✅ | ✅ | ❌ |
RASA | ✅ | ✅ | ✅ | ❌ |
Recast | ✅ | ✅ | ✅ | ❌ |
Native | ✅ | ✅ | ❌ | ❌ |
NOTE: Dialogflow-provider is not fully implemented yet and isn't recommended to use at this point.
Botpress NLU use the V2 API of Dialogflow, checkout this link for more information.
Key | Environment Variable | Required |
---|---|---|
googleProjectId | NLU_GOOGLE_PROJECT_ID | Yes |
https://cloud.google.com/docs/authentication/getting-started | GOOGLE_APPLICATION_CREDENTIALS | Yes |
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 ) |
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).
Botpress NLU will create and train and maintain your projects and models automatically for you.
Note: By default, Botpress creates separate projects for development and production environment, e.g.
dev__botpress__all
andprod__botpress__all
.
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 ) |
Key | Environment Variable | Required |
---|---|---|
recastToken | NLU_RECAST_TOKEN | Yes |
recastUserSlug | NLU_RECAST_USER_SLUG | Yes |
recastBotSlug | NLU_RECAST_BOT_SLUG | Yes |
Note: Make sure to use developer token for Recast not request one.
The best way to help right now is by helping with the exising issues here on GitHub and by reporting new issues!
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.
FAQs
Botpress NLU module
We found that @botpress/nlu demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.