Version: Latest

Running a Rasa SDK Action Server

Python action server, when built with Python, can be run by using rasa command or directly as a python module. The action server supports two protocols to invoke custom actions: HTTP and gRPC. By default, the action server runs on HTTP protocol. To run the action server on gRPC protocol, you need to specify the --grpc flag.

Running the action server

Running action server over HTTP(S) protocol

The action server supports both secure (HTTPS) and insecure HTTP connections.

HTTP protocol

To run action server over HTTP protocol use this command:

rasa run actions

When running the action server over HTTP protocol, make sure that Rasa is also configured to use HTTP protocol.

HTTPS protocol

To run action server over HTTPS protocol use this command:

rasa run actions --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key

When running the action server over HTTPS protocol, make sure that the Rasa server is also configured to use HTTPS protocol.

Listen on specific address

You can make your action server listen on a specific address using the SANIC_HOST environment variable:

SANIC_HOST=192.168.69.150 rasa run actions

Running the action server on gRPC protocol

The action server supports both secure and insecure gRPC connections. By default, the action server runs on insecure gRPC connection.

Insecure gRPC connection

To run the action server to accept insecure gRPC connections, use this command:

rasa run actions --grpc

When running the action server to accept insecure gRPC connections, make sure that the Rasa server is also configured to use insecure gRPC connections.

Secure gRPC connection

To run the action server to accept secure gRPC connections, you need to specify the --grpc, together with the --ssl-certificate and --ssl-keyfile flags:

rasa run actions --grpc --ssl-certificate /path/to/ssl_server_certificate --ssl-keyfile /path/to/ssl_server_key

When running the action server to accept secure gRPC connections, make sure that the Rasa server is also configured to use secure gRPC connections.

Specifying the actions module or package

By default the action server will look for your actions in a file called actions.py or in a package directory called actions.

You can specify a different actions module or package with the --actions flag.

rasa run actions --actions my_actions

Using the command above, the action server will expect to find your actions in a file called my_actions.py or in a package directory called my_actions.

Other options

To see the full list of options for running the action server, run:

rasa run actions --help