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, a RabbitMQ instance and a separate logger container for managing logs.
  • download the latest rasa_commands script here
  • ensure that the JWT_SECRET, RASA_PLATFORM_TOKEN, and RABBITMQ_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.

Custom Core & NLU Servers

Rasa Platform 0.16 also makes it possible to integrate with running Rasa Core and NLU servers managed separately from Rasa Platform. Instructions for that are here.