Download and install Python, currently version 3.11.16,
For version 1.0.0, Windows can manage 3.9.X due to a C compilation issue with a dependency. Issue fixed in version 1.1.0
Read About FastAPI
The new backend of the Enterprise Search is built in Python, using FastAPI, which allow us to maintain a structure like ExpressJs, but with a better understanding and on-the-fly documentation with Swagger UI and Redoc
You can see more about the features of FastAPI here
Compatibility Issue
Windows currently has issues with xmlsec library, And it only supports Python 3.9.x
Disable the path length
Connect to VPN
Connection to Accenture's VPN is required
Clone the project from the repository
git clone https://source.digital.accenture.com/scm/st/gaia-api.git
Verify the current brach executing the command below, it should be main
git branch
If the branch wasn't main, checkout the main branch:
git checkout main
Create a branch to work on, using the branch folder assigned <branch_folder>/develop (we recommend using develop as your working branch)
git checkout -b <branch_folder>/develop
We recommend the creation of a virtual environment to prevent python dependencies conflicts, is also helpful if you have multiple versions of python in the same machine
python -m venv {name_of_your_venv}
or
python3 -m venv {name_of_your_venv}
If you want to name you virtual environment test then the command would look like this
python -m venv test
or
python3 -m venv test
Activate Virtual Environment
To use your virtual environment you need to activated, the activation command changes depending on your OS
For Windows
{name_of_your_venv}\Scripts\activate.bat
For Unix or macOS, run:
source {name_of_your_venv}/bin/activate
Using Bash on Windows
If using a bash console on Windows, then you have to execute
source {name_of_your_venv}/Scripts/activate
Following the example of the venv named test, the commands would look like this:
Windows
test\Scripts\activate.bat
Unix or macOS:
source test/bin/activate
If you are working on Windows you may need to download Build Tools for Visual Studio and install the Universal Windows Platform build tools (Probably will require Admin rights). Unix bases OS should have any issues
Once the virtual environment is activates (if you did one, otherwise is the same process), install the dependencies stored in the pyproject.toml. To install them execute the following command:
pip install -e .
This will install the bare minimum necessary dependencies in order to run GAIA API
Since 1.1.0 version
There are other optional dependencies, you can install depending on your necessities
If you want to use LDAP authentication
pip install -e ".[ldap]"
If you want to use genai and vectorization capabilities
pip install -e ".[genai]"
If you want to use the unit testing
pip install -e ".[test]"
If you want to install all optional dependencies
pip install -e ".[all]"
you can even try combinations like pip install -e ".[genai,test]"
If that didn't work try
python -m pip install -e .
or
python3 -m pip install -e .
If none of the previous commands worked, try looking at this troubleshooting article.
Update the Pyproject.toml
If you have installed new python dependencies, you may to update the pyproject.toml, with the latest changes, you can see how in How to Add New Dependencies
Same as above, but additionally it will install development dependencies necessary for testing a server mocking
pip install -e '.[test]'
After the installation is successful, proceed to install PyQPL
pip install lib/pyqpl-VERSION_IN_PROJECT-py3-none-any.whl
Different version depending on the project and date of the code
Is better is you write lib/pyqpl and then let the autocomplete of the terminal write the rest of the file
PyQPL is our proprietary dependency, is a versatile scripting language that simplifies the construction of complex queries. It offers engine agnosticism, query parsing, manual query building, query translation, Saga coupling for advanced processing, synonym expansion, and support for custom operators. With PyQPL, you can write standardized queries irrespective of the underlying search engine, making it flexible and efficient for query processing tasks.
Is already seamlessly integrated into the Query Stage, and can be enable or disabled as need it, probably if you are working or had work with GAIA API previously, have used PyQPL without notice.
Ask for help
If any issue raises or a feature is required please don't hesitate to contact the development team
In case you need to upgrade the version of pyqpl, we recommend to uninstall the current library using the command
pip uninstall pyqpl
Delete the whl file and replace it with the new one, and use the same command as above to install the new one
Don't Forget the Search Engine
In order to startup the server the Non-SQL engine needs to be up and running, and the connection to it must setup in the Configuration
In root folder execute
python uvicorn_server.py
or
python3 uvicorn_server.py