Migration Guide¶
This page contains information about changes between major versions and how you can migrate from one version to another.
0.17 to 0.18¶
Multiple deployment environments¶
Rasa Platform v0.18 introduces the ability to run multiple Core and NLU
services which host different deployment versions of your bot.
This features relies on additional services which require a newly
structured docker-compose.yml
file, and we recommend you fetch the latest
version by following the installation instructions.
By default, Core and NLU each have a production
and a development
service,
but you may add additional services by following the instructions in
Bot Deployment Environments.
Mongo root username update¶
This platform release makes use of a new MongoDB container which does not require
root permissions to run. The default mongo root username has changed to root
; please
update the MONGO_USERNAME
environment variable in your .env
or
docker-compose.yml
to root
. Please also update any hard-coded occurrences of
MONGO_USERNAME
in your core_endpoints.yml
.
0.15 to 0.16¶
Rasa Platform v0.16 is compatible with Rasa NLU 0.13.3 or higher and Rasa Core 0.11.4 or higher. Rasa Core 0.11 introduced some relatively large changes to the HTTP API, though migrating projects written in python is very easy. There are very few changes to your code required, see the Rasa Core migration guide for details.
Once you have updated your custom app code (more details on how to start the action server here), re-run the installation script.
If you have a custom installation, or don’t want to use the installation script, you need to:
- update your docker-compose / kubernetes/ openshift configuration. Here is the current version. We have added 3 containers: a new
event-service
, aRabbitMQ
instance and a separatelogger
container for managing logs. - download the latest rasa_commands script here
- ensure that the
JWT_SECRET
,RASA_PLATFORM_TOKEN
, andRABBITMQ_PASSWORD
variables are defined in your.env
file or are otherwise passed to your services. You can set all of these to random strings. - add a
credentials.yml
in the/etc/rasa_platform
directory specifying your output channels, which looks like this
Custom Actions¶
In previous versions of Rasa Core, the server running Rasa Core was also responsible for executing custom action code. As of Rasa Core 0.11, custom actions are executed by calling a webhook provided by the user. This enables Rasa Core to be used in a microservice architecture.
For python projects, all of this has been automated with the rasa_core_sdk package.
For projects using the HTTP api (e.g. with custom actions implemented in a language other than python),
Rasa Core 0.11 makes your app considerably simpler. The /parse
and /continue
endpoints have
been removed, and Rasa Core directly calls a webhook (provided by you) to execute custom actions.
This also means that you can edit your custom action code without restarting the Rasa Core server, and the app / server / docker container running your custom actions only depends on the tiny rasa code SDK package, and doesn’t need to have tensorflow and other Rasa Core dependencies installed.
Model Versioning¶
Rasa Core and NLU models are now both managed using a unified models API. You can push models to the server for both NLU and Core, see this page.
Rasa Core and NLU will poll Rasa Platform to request the model to run (the one tagged as active
).
This means that if you are running multiple Core & NLU instances, each will be automatically updated
when you tag a new model as active.
Rasa Platform will migrate your existing models to the new API when you start up the new version, but most models will be marked as ‘not compatible’ because of the major version upgrade to Rasa Core & NLU. Re-train your models locally and push them using the api. Or in the case of NLU, you can also re-train using the button in the interface.