-
Notifications
You must be signed in to change notification settings - Fork 3
M1 M2 processors Macbook steps to Installing Rasa
First, youβll want to install some base dependencies for your operating system. We will use brew 27 for this. If you donβt have brew installed you can do so by running:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
The script explains what it will do and then pauses before it does it. Once brew is installed you can install the required system dependencies.
brew install libpq libxml2 libxmlsec1 pkg-config postgresqlNext, we will install conda to deal with our dependencies. We will follow the steps that are described here 141 as a reference.
You can install conda by downloading this file 359 and running it locally via;
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activateThis will activate an environment that is maintained by conda. That means that conda is able to handle our Tensorflow dependencies from here on. Conda does not work with requirements.txt files that you may be familiar with from pip. Instead we will use a env_rasa2-8.yml file. Hereβs the one that will use:
# https://forum.rasa.com/t/an-unofficial-guide-to-installing-rasa-on-an-m1-macbook/51342
channels:
- apple
- conda-forge
dependencies:
- python==3.8.12
- dask==2021.11.2
- tensorflow-deps==2.7.0
- numpy>=1.19.2,<1.20.0
- scipy>=1.4.1,<1.8.0
- scikit-learn>=0.22,<0.25
- matplotlib==3.5.1
- pip
- pip:
- absl-py==0.13.0
- aio-pika==6.8.1
- aiofiles==0.8.0
- aioredis==2.0.1
- aioresponses==0.7.2
- aiormq==3.3.1
- anyio==3.4.0
- APScheduler==3.7.0
- async-generator==1.10
- async-timeout==4.0.2
- aiohttp==3.8.1
- httpcore==0.11.1
- httplib2==0.20.2
- httptools==0.3.0
- httpx==0.15.4
- bidict==0.21.4
- blinker==1.4
- boto3==1.20.28
- botocore==1.23.28
- CacheControl==0.12.10
- cachy==0.3.0
- certifi==2021.10.8
- chardet==4.0.0
- clang==5.0
- cleo==0.8.1
- clikit==0.6.2
- colorama==0.4.4
- colorclass==2.2.2
- coloredlogs==15.0.1
- colorhash==1.0.4
- crashtest==0.3.1
- croniter==1.1.0
- cytoolz==0.11.2
- decorator==5.1.0
- defusedxml==0.7.1
- distlib==0.3.4
- dm-tree==0.1.6
- docopt==0.6.2
- fakeredis==1.7.0
- fbmessenger==6.0.0
- filelock==3.4.2
- fire==0.4.0
- flatbuffers==1.12
- freezegun==1.1.0
- future==0.18.2
- gitdb==4.0.9
- GitPython==3.1.3
- google-auth==2.3.3
- google-pasta==0.2.0
- h11==0.9.0
- HeapDict==1.0.1
- html5lib==1.1
- humanfriendly==10.0
- isodate==0.6.1
- jmespath==0.10.0
- jsonpickle==2.0.0
- jsonschema==3.2.0
- kafka-python==2.0.2
- keyring==21.8.0
- locket==0.2.0
- lockfile==0.12.2
- lxml==4.7.1
- mattermostwrapper==2.2
- mock==4.0.3
- multidict==5.0.0
- munkres==1.1.4
- mypy_extensions==0.4.3
- networkx==2.6.3
- oauth2client==4.1.3
- onelogin==2.0.2
- packaging==20.9
- pamqp==2.3.0
- pastel==0.2.1
- pexpect==4.8.0
- pika==1.2.0
- pkgconfig==1.5.5
- pkginfo==1.8.2
- platformdirs==2.4.1
- poetry==1.1.12
- poetry-core==1.0.7
- prompt-toolkit==2.0.10
- protobuf==3.19.1
- psycopg2-binary==2.9.3
- ptyprocess==0.7.0
- pyasn1==0.4.8
- pyasn1-modules==0.2.7
- pydot==1.4.2
- pykwalify==1.8.0
- pylev==1.4.0
- pymongo==3.10.1
- pyrsistent==0.18.0
- pyTelegramBotAPI==3.8.3
- python-crfsuite==0.9.7
- python-engineio==4.3.0
- python-socketio==5.5.0
- python3-saml==1.12.0
- questionary==1.10.0
- randomname==0.1.5
- redis==3.5.3
- regex==2021.8.28
- rfc3986==1.5.0
- rocketchat-API==1.16.0
- ruamel.yaml==0.16.13
- ruamel.yaml.clib==0.2.2
- s3transfer==0.5.0
- sanic==20.9.1
- Sanic-Cors==0.10.0.post3
- sanic-jwt==1.6.0
- Sanic-Plugins-Framework==0.9.5
- sanic-routing==0.7.2
- sentry-sdk==1.3.1
- shellingham==1.4.0
- simple-image-download==0.2
- sklearn-crfsuite==0.3.6
- slackclient==2.9.3
- smmap==5.0.0
- sniffio==1.2.0
- SQLAlchemy==1.4.29
- tabulate==0.8.9
- tarsafe==0.0.3
- tensorboard==2.7.0
- tensorflow-estimator==2.7.0
- tensorflow-hub==0.12.0
- tensorflow-macos==2.7.0
# - tensorflow-metal==0.3.0
- tensorflow-probability==0.13.0
- termcolor==1.1.0
- terminaltables==3.1.10
- tfa-nightly==0.16.0.dev20220103155136
- tomlkit==0.8.0
- tqdm==4.62.3
- twilio==6.50.1
- typeguard==2.13.3
- typing-utils==0.1.0
- tzlocal==2.1
- ujson==4.3.0
- uvloop==0.14.0
- virtualenv==20.13.0
- wcwidth==0.2.5
- webencodings==0.5.1
- webexteamssdk==1.6
- websockets==8.1
- zict==2.0.0
- requests-toolbelt==0.9.1
- requests==2.26.0
- requests-oauthlib==1.3.0
- requests-toolbelt==0.9.1
Given such an env_rasa2-8.yml file, we can create a new environment. Weβll use the rasa2-8 name for the environment.
conda env create -v --name rasa2-8 -f env_rasa2-8.yml
Once these dependencies are installed we can active our environment.
conda activate rasa2-8
At the time of writing this tutorial youβll need to install the Rasa dependencies manually from git. The versions shown below have been tested beforehand and seem to work!
pip install git+https://github.com/RasaHQ/rasa-sdk@2.8.0 --no-deps
pip install git+https://github.com/RasaHQ/rasa@2.8.27 --no-deps
# Then finally run:
python -m rasa --version
python -m rasa init
python -m rasa train

- π€ Importance of chatbots
- βΉοΈ Rasa as an open source conversational AI framework
- π Bot potential features
- π Defining the intents & entities
- π¬ Building the dialogue flow
- βοΈ Setting up the development environment
- π§ Defining intents and entities in the nlu.yml
- π§ Defining actions.py
- π§ Defining the domain.yml
- π§ Defining stories in the stories.yml
- π§ Defining rules.yml
- π οΈ Setting up the config.yml
- π Integrating the chatbot with channels
- π Deploying the chatbot