1. Python Environment Setup
Check if your Python environment is already configured:
Python3 Supported Versions
Currently, rasa supports the following Python versions:
Note that Python
3.10 is only supported for versions
3.4.x and upwards.
Additionally, rasa installation on Apple Silicon with Python
3.10 is not functional in
3.4.x but will be supported starting from
If these packages are already installed, these commands should display version numbers for each step, and you can skip to the next step.
Otherwise, proceed with the instructions below to install them.
Fetch the relevant packages using
apt, and install virtualenv using
2. Virtual Environment Setup
This step is optional, but we strongly recommend isolating python projects using virtual environments. Tools like virtualenv and virtualenvwrapper provide isolated Python environments, which are cleaner than installing packages system-wide (as they prevent dependency conflicts). They also let you install packages without root privileges.
Create a new virtual environment by choosing a Python interpreter and making a
./venv directory to hold it:
Activate the virtual environment:
M1 / M2 (Apple Silicon) Limitations
Rasa installations on Apple Silicon don't use Apple Metal by default.
We found that using the GPU on Apple Silicon increased training time for the
You can, however, install the optional dependency to test it yourself
or try it with other components using:
pip3 install 'rasa[metal]'.
Currently, not all of Rasa's dependencies support Apple Silicon natively. This leads to the following restrictions:
- You can not run Duckling as a docker container on Apple Silicon. If you want to use the duckling entity extractor we recommend a cloud deployment of duckling. Progress on this can be tracked on the Duckling project.
- Rasa on Apple Silicon does not support the
ConveRTFeaturizercomponent or pipelines containing it. The component relies on
tensorflow-textwhich currently isn't available for Apple Silicon. Progress on this can be tracked on the Tensorflow Text project.