Botpress NLU
Description
This repo contains every ML/NLU related code written by Botpress in the NodeJS environment.
The source code is structured in a mono-repo fashion using yarn workspaces. The ./packages directory contains all available packages. The main packages are:
- nlu-server: Contains the Botpress Standalone NLU Server
- lang-server: Contains the Botpress Language Server
- nlu-cli: Small CLI to use as an entry point for both
nlu-serverandlang-server
Check out each individual packages for more details.
Running from source
Prerequisites: Node 12.13 (you can use nvm) and Yarn.
- Run
yarnto fetch node packages. - Run
yarn build && yarn startto build and start the Standalone NLU server. - You can also run
yarn devto run the NLU Server with ts-node however, trainings won't be parallelized on several threads.
Running from pre-built binaries
New executable binary files are packaged at every release. You can download those directly on release page located here.
⚠️ ⚠️ Disclaimer ⚠️ ⚠️
The NLU Server does not enforce authentication in any way. This means it is completely exposed to many attacks. If you plan on using the nlu-server in your local Botpress setup, makes sure it is not publicly exposed. If you plan on exposing the NLU server, make sure it his hidden behind a reverse proxy which ensures a proper authentication. This reverse proxy should:
- Ensure each appId (
X-App-Idheader) is unique. - Ensure a user with appId
user1can't call the nlu server with headerX-App-Idset to anything other thanuser1. - Ensure only calls with a registered appId can call the nlu server except maybe for the
GET /inforoute.
The NLU Server's only purpose is to do NLU.
Licensing
Different liscences may apply to differents packages of the ./packages directory. If no liscence is specified, the package is protected by the same license as the main Botpress repository. You can find the license file here.
