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-server
andlang-server
Check out each individual packages for more details.
Prerequisites: Node 12.13 (you can use nvm) and Yarn.
- Run
yarn
to fetch node packages. - Run
yarn build && yarn start
to build and start the Standalone NLU server. - You can also run
yarn dev
to run the NLU Server with ts-node however, trainings won't be parallelized on several threads.
New executable binary files are packaged at every release. You can download those directly on release page located here.
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-Id
header) is unique. - Ensure a user with appId
user1
can't call the nlu server with headerX-App-Id
set to anything other thanuser1
. - Ensure only calls with a registered appId can call the nlu server except maybe for the
GET /info
route.
The NLU Server's only purpose is to do NLU.
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.