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
and lang-server
Check out each individual packages for more details.
Prerequisites: Node 16.13 (you can use nvm) and Yarn.
yarn
to fetch node packages.yarn build && yarn start
to build and start the Standalone NLU server.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.
A Prometheus endpoint can be configured to expose NLU specific metrics. By setting the PROMETHEUS_ENABLED
environment variables to true
, the port 9090
will expose prometheus metrics.
A Jaeger client can be configured using a subset of the standard Opentelemetry environment variables.
The important environment variables for configuring tracing are:
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:
X-App-Id
header) is unique.user1
can't call the nlu server with header X-App-Id
set to anything other than user1
.GET /info
route.The NLU Server's only purpose is to do NLU.
Different licences may apply to differents packages of the ./packages directory. If no licence is specified, the package is protected by the same license as the v12 Botpress repository.