notice

This is unreleased documentation for Rasa & Rasa Pro Documentation Main/Unreleased version.
For the latest released documentation, see the latest version (3.x).

Version: Main/Unreleased

Deploy Rasa Pro Services

Rasa Pro Only
Rasa Pro License

You'll need a license to get started with Rasa Pro. Connect with a Rasa expert

Not sure if you need Rasa Pro yet? Try it for free

Rasa Pro Services Setup

Installing Rasa Pro Services requires the deployment of a docker container. The container can be deployed in a different environment than Rasa Plus. Both deployments need to be able to connect to the same Kafka cluster to communicate.

Prerequisites

A Rasa Pro Services deployment needs to be connected to

  • a message broker (Kafka) and
  • a data warehouse (e.g. PostgreSQL).

The Kafka deployment should be a production deployment. We recommend a managed deployment, e.g. using Amazon Managed Streaming for Apache Kafka.

System Requirements

The minimum hardware requirements include information about the requirements you need to install and use Rasa Pro Services. Hardware requirements are dependent on the average number of conversations and expected workload. Your exact needs may be more, depending on your workload.

The following is the recommended minimum hardware guidance:

  • CPU: 2 vCPU
  • Memory: 4 GB
  • Disk space: 10 GB

These requirements correspond to the t3.medium instance type on AWS.

License

Running Rasa Pro Services requires a valid license. You need to supply the license as an environment variable to the service.

Installation and Configuration

Rasa Plus streams data to Kafka which gets consumed by Rasa Pro Services. These different services need to be run and configured to be able to communicate.

  1. Configure Rasa Plus to stream data to Kafka. The configuration for Kafka should be put in a configuration file endpoints.yml:

    endpoints.yml
    event_broker:
    type: kafka
    partition_by_sender: True
    topic: rasa-events
    url: <BROKER URL>

    The <BROKER_URL> needs to be replaced with an address of a bootstrap server of your Kafka cluster. Configuration examples for different security protocols and other parameters can be found in the Kafka Event Broker documentation.

  2. Rasa Pro Services is a docker image. Authenticate to pull the docker images:

    gcloud auth configure-docker europe-west3-docker.pkg.dev

    Pull the Rasa Pro Services image to your machine:

    docker pull europe-west3-docker.pkg.dev/rasa-releases/rasa-pro/rasa-pro-services
    note

    For a more complete walkthrough on how to manage the authentication credentials and licenses in a production environment, see the Rasa Plus Deployment Guide (select the Rasa Plus tab).

  3. Run the Rasa Pro Services docker image and configure it to receive data from your Rasa Plus assistant connected to Kafka:

    docker run \
    -e RASA_PRO_LICENSE=<your_license> \
    -e KAFKA_BROKER_ADDRESS=<BROKER_URL> \
    -e KAFKA_TOPIC=rasa-events \
    europe-west3-docker.pkg.dev/rasa-releases/rasa-pro/rasa-pro-services

    For production deployments, we recommend to us Amazon Elastic Container Service.

Docker Container Configuration (Reference)

The Rasa Pro Services docker container supports configuration through several environment variables. The following table lists the available environment variables:

Environment VariableDescriptionDefault
RASA_PRO_LICENSERequired. The license key for Rasa Pro Services.
KAFKA_BROKER_ADDRESSRequired. The address of the Kafka broker.
KAFKA_TOPICRequired. The topic Rasa Plus publishes events to and Rasa Pro consumes from.rasa_core_events
RASA_ANALYTICS_DB_URLThe URL of the data lake to store analytics data in.
KAFKA_SASL_MECHANISMThe SASL mechanism to use for authentication. Valid mechanisms arePLAIN
KAFKA_SASL_USERNAMEThe username for SASL authentication.
KAFKA_SASL_PASSWORDThe password for SASL authentication.
KAFKA_SECURITY_PROTOCOLThe security protocol to use for communication with Kafka. Supported mechanisms are PLAINTEXT and SASL_PLAINTEXT.PLAINTEXT

Healthcheck Endpoint

Rasa Pro Services exposes a health check endpoint at /healthcheck. The endpoint will return a 200 status code if the service is healthy. If any other status code is returned or if the endpoint is not reachable the service is unhealthy.

Example response for /healthcheck:

{
"details": {
"analytics-consumer": {
"alive": 1,
"isHealthy": true
}
},
"isHealthy": true
}

Connect to a secured Kafka instance

The connection to a secured Kafka instance can be configured by setting the following environment variables on the Rasa Pro docker container: KAFKA_SASL_MECHANISM, KAFKA_SASL_USERNAME, KAFKA_SASL_PASSWORD and KAFKA_SECURITY_PROTOCOL. A detailed description of the parameters can be found in the environment variable reference.

The environment variables need to be configured upon startup of the Rasa Pro docker container.

Using Kafka truststores and keystores is currently not supported.

Upgrading Versions

To upgrade to the latest version of Rasa Pro Services, you must follow these steps:

  1. Read the changelog documentation on breaking changes.
  2. Download a new docker container and run it.
Container Start-up

Note that the container might take some time to start-up as it is running database schema migrations as part of its start-up.

If the migrations have failed, the container will be shut down.