Deploy Rasa Pro Services
Rasa Pro License
You'll need a license to get started with Rasa Pro. Talk with Sales
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.
Configure Rasa Plus to stream data to Kafka. The configuration for Kafka should be put in a configuration file
endpoints.yml
:endpoints.ymlevent_broker:type: kafkapartition_by_sender: Truetopic: rasa-eventsurl: <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.Rasa Pro Services is a docker image. Authenticate to pull the docker images:
gcloud auth configure-docker europe-west3-docker.pkg.devPull the Rasa Pro Services image to your machine:
docker pull europe-west3-docker.pkg.dev/rasa-releases/rasa-pro/rasa-pronote
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).
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-proFor 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 Variable | Description | Default |
---|---|---|
RASA_PRO_LICENSE | Required. The license key for Rasa Pro Services. | |
KAFKA_BROKER_ADDRESS | Required. The address of the Kafka broker. | |
KAFKA_TOPIC | Required. The topic Rasa Plus publishes events to and Rasa Pro consumes from. | rasa_core_events |
LOGGING_LEVEL | Set the log level of the application. Valid levels are DEBUG, INFO, WARNING, ERROR, CRITICAL. (Available from 3.0.2) | INFO |
RASA_ANALYTICS_DB_URL | The URL of the data lake to store analytics data in. | |
KAFKA_SASL_MECHANISM | The SASL mechanism to use for authentication. Valid mechanisms are | PLAIN |
KAFKA_SASL_USERNAME | The username for SASL authentication. | |
KAFKA_SASL_PASSWORD | The password for SASL authentication. | |
KAFKA_SECURITY_PROTOCOL | The security protocol to use for communication with Kafka. Supported mechanisms are PLAINTEXT and SASL_PLAINTEXT . | PLAINTEXT |
KAFKA_SSL_CA_LOCATION | The filepath for SSL CA Certificate that will be used to connect with Kafka (Available from 3.1.0b1 ) |
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
:
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:
- Read the changelog documentation on breaking changes.
- 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.