Installation
BLAZE is currently supported on Linux, Windows, and Mac. Specific instrucutions shown below:
1. Environment Setup (Python, Pip)β
At the very start, please clone this repostiory using
git clone https://github.com/cisco-open/Blaze.git
Next, we must install the necessary packages for BLAZE. For this, we have two options:
Option 1 - Pyenv: Local Developmentβ
Install Dependencies
- For Ubuntu/Debian
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
- For Fedora/CentOS
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
Install Pyenv
curl https://pyenv.run | bash
Install Python version 3.9.16
pyenv install -v 3.9.16
You can check the installed Python version by using command
pyenv versions
Create virtual environment with specific version using below command
pyenv virtualenv 3.9.16 venv
Activate virtual environment using
pyenv local venv
or by running the following
pyenv activate <environment_name>
You can verify this by running
pyenv which python
Finally, install packages and modules using
pip install -r requirements.txt
Option 2 - Install using conda: Local developmentβ
NOTE: The use of Conda may require the use of Anaconda Commercial Edition to comply with Anaconda's Terms of Service if your use is considered commercial according to Anaconda. More information about Anaconda's Terms of Service and what qualifies as commercial usage can be found here: https://www.anaconda.com/blog/anaconda-commercial-edition-faq/
Once you have cloned the BLAZE repository, cd into it
cd Blaze
Create your conda environment with
conda env create -f blaze_env.yml
Then, activate your conda environment with
conda activate blaze
2. (Build) Drag-and-Drop YAML Builderβ
Run the Drag-and-Drop YAML Builder with:
python build.py
Now, a link should appear (ex. Dash is running on http://127.0.0.1:5000/
). Follow this link in your browser to open the builder!
Make sure to check-out the instructions found in BLAZE Drag-and-Drop - README for using the YAML Builder.
Additionally, depending on the model chosen, make sure to check out model-specific instructions found in BLAZE Models - README!
3. (Execute) Running a Pipelineβ
Once you have your YAML file (either generated or pre-existing), note its relative path.
Run the following command to launch the pipeline specified in the YAML file:
python run.py <path-to-your-yaml-file>
For example, one could run
python run.py yaml/01_search_custom.yaml
Now, a link should appear (ex. Dash is running on http://127.0.0.1:5000/
). Follow this this link in your browser to open the dashboard!
4. (Interact) Checking POSTMAN/Swaggerβ
To verify that the server hosting the pipeline is running correctly, one can do so using POSTMAN.
Additionally, one can use Swagger by simply appending /apidocs/
upon launching the backend. For example, if the backend server is running on https://localhost:3000
, then we can simply navigate to https://localhost:3000/apidocs/
in any browser to view the REST server via Swagger.
5. (Interact) Launching WebAppsβ
Option 1 - React WebAppβ
To interact with one's pipeline using our React WebApp, we need to first install Node.
To install node in Windows/Mac/Linux, we can do so with:
- Visit the NodeJS Homepage and install nodejs and npm
- We can check installation with
node -v
andnpm -v
Next, we will move into the client directory by using
cd client
Then, we install node_modules
by using command
npm install
Finally, we can run the frontend with
npm start
Option 2 - Dash Dashboardβ
To run the frontend built with Python's dash, we can simply run
python run_fr.py <path-to-yaml-file>
6. (Interact) WebEx Integrationsβ
Coming soon!
7. (Interact) Conversational AIβ
Coming Soon! Detailed instructions are currently being written, and will later be found at: BLAZE Conversational AI - README
Please raise an issue or reach out to our mailing list (blaze-github-owners@cisco.com) with any questions!