This guide explains how to setup your Python Bridge to be used by Saga. It includes information on prerequisites, installing Python, and installing dependencies.
You can get the Python Bridge server as part of Saga deliverables which are stored in Artifactory repository here. At the time of writing the latest version of Saga available is 1.3.4.
(SAGA 1.3.1) The current version of Python Bridge was developed and tested using Python 3.9.5, but any Python 3.9.x version will suffice. At the moment of writing this guide the released version of 3.9 is Python 3.9.5 which you can download from here Python Release Python 3.9.5 | Python.org, please remember to download the 64-bit version of Python, some libraries are no compatible with the 32-bit version and will not work.
(SAGA 1.3.3) The python version has been updated to 3.11.4 which you can download from here Python 3.11.4, download the 64-bit version.
(SAGA 1.3.4) The python version has been updated to 3.11.9 which you can download from here Python 3.11.9, download the 64-bit version.
Remember to create a environment variable PYTHON_HOME, pointing to you current installation folder of Python
Once Python is installed, and poses a copy of Python Bridge, proceed to access the Python Bridge folder via console. Once there we will create a python virtual environment using the following command
python -m venv venv
This will create a folder named venv in our Python Bridge folder, a self-contained directory tree that contains a Python installation for a particular version of Python, plus a number of additional packages.
To be able to use this environment, we need to execute the activate script using the following command:
For Linux
source venv/bin/activate
For Windows
venv\Scripts\activate
This will execute the virtual environment and your console should present the prefix
(venv) C:\Python Bridge>
Once in the virtual environment proceed to install the Python Bridge dependencies, all the dependencies should be listed in a file called requirements.txt inside the Python Bridge folder. Install the dependencies by executing the following command:
pip install -r requirements.txt
If for any reason this command doesn't work try
python -m pip install -r requirements.txt
This process may take a few minutes, since pip needs to download and install every dependency
You may see a trusted or SSL certificate error message when trying to install dependencies. This because some of the hosts are not trusted by the pip tool.
Try with the next command:
pip install --trusted-host download.pytorch.org -r requirements.txt
If this doesn't work either you can tell pip to trust those hosts by adding them to a text file called "pip.ini" which you place in the "venv" folder.
And then, try running the following command:
pip config set global.trusted-host "pypi.org files.pythonhosted.org download.pytorch.org"
We have now a pyproject.toml file, so we can install libraries from there instead of using the requirements.txt. This method has multiple advantages, such as: optional dependencies, easy control over all the installed libraries, addition of advanced setup configurations and more.
To install the dependencies using this new method, you need to use:
pip install -e .
This will install all the required dependencies needed to start the server without any model.
To install extra optional dependencies, you can use this other command:
pip install -e .[all]
Where [all] is the name of the optional dependencies to install. They need to be added to the correct section on the pyproject file.
If you do not know how to do this, here is a page with all you need to know about the pyproject file and its optional dependencies.
This process may take a few minutes, since pip needs to download and install every dependency
Finally to start the Python Bridge server, all you need to do is to choose one of the following options:
For local testing only.
python server.py <Port Number>
For production environments. Supports https and basic authentication.
python server-cherrypy.py
If it's the first time starting Python Bridge, it will download a couple of models, among them BERT base uncased model, which has a size of roughly 4Gb. Python Bridge will not be ready until all the models are downloaded.
Once downloaded, next time you start Python Bridge it will be pretty fast.
If you do not wish to download the BERT model, go the the config.json file in the config folder and remove the Bert entry under model_types.
If you want to keep the model around for future usage, you can just disabled it by setting the 'enable' flag to false: "enabled": false
If you want to use Python Bridge with Saga you can check Recognizers documentation.