Download and install Python, currently version 3.11.2, except for Windows which currently .6,
Warning |
---|
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 |
Info | ||
---|---|---|
| ||
The new backend of the Enterprise Search is built in Python, using Fast APIFastAPI, 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 Fast APIFastAPI here |
Note | ||
---|---|---|
| ||
Windows currently has issues with xmlsec library, And it only supports Python 3.9.x |
Note | ||
---|---|---|
| ||
Disable the path length limit to prevent issues in windows environment |
Tip | ||
---|---|---|
| ||
Connection to Accenture's VPN is required |
Clone the project from the repository
Code Block |
---|
git clone https://source.digital.accenture.com/scm/st/searchgaia-api.git |
Verify the current brach executing the command below, it should be main
Code Block |
---|
git branch |
If the branch wasn't main, checkout the main branch:
Code Block |
---|
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)
Code Block |
---|
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
Column | ||
---|---|---|
| ||
|
Column | ||
---|---|---|
| ||
or |
Column | ||
---|---|---|
| ||
|
If you want to name you virtual environment test then the command would look like this
Column | ||
---|---|---|
| ||
|
Column | ||
---|---|---|
| ||
or |
Column | ||
---|---|---|
| ||
|
Activate Virtual Environment
To use your virtual environment you need to activated, the activation command changes depending on your OS
For Windows
Code Block |
---|
{name_of_your_venv}\Scripts\activate.bat |
For Unix or macOS, run:
Code Block |
---|
source {name_of_your_venv}/bin/activate |
Note | ||
---|---|---|
| ||
If using a bash console on Windows, then you have to execute
|
Following the example of the venv named test, the commands would look like this:
Windows
Code Block |
---|
test\Scripts\activate.bat |
Unix or macOS:
Code Block |
---|
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:
Code Block |
---|
pip install -e . |
If that didn't work try
Column | ||
---|---|---|
| ||
|
width | 20px |
---|
or
Column | ||
---|---|---|
| ||
|
If none of the previous commands worked, try looking at this troubleshooting article.
Tip |
---|
If you have installed new python dependencies, you may to update the pyproject.toml, with the latest changes |
Same as above, but additionally it will install development dependencies necessary for testing a server mocking
Code Block |
---|
pip install -e '.[test]' |
After the installation is successful, proceed to install PyQPL
Note |
---|
The pyqpl library comes in the lib folder of the GAIA API |
Code Block |
---|
pip install lib/pyqpl-VERSION_IN_PROJECT-py3-none-any.whl |
Tip | ||
---|---|---|
| ||
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 Search GAIA API previously, have used PyQPL without notice.
Info | ||
---|---|---|
| ||
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
Code Block |
---|
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
Info |
---|
Since 3.0 version |
In the latest update to Version 3.0, significant architectural changes have been made to the GAIA API. The core functionalities of the GAIA API, including APIs, stages, and engines, have been migrated to a new, external library named GAIA Core. This strategic restructuring aims to segregate the foundational code from specialized implementations within the GAIA API.
Separation of Core and Specialized Code: The base code, comprising APIs, stages, and engines, has now been relocated to the GAIA Core library. Consequently, the GAIA API retains only the specialized code, tailored to specific applications and functionalities.
Benefits:
To install GAIA Core execute:
Note |
---|
The gaia_core library comes in the lib folder of the GAIA API |
Code Block |
---|
pip install lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl |
Tip | ||
---|---|---|
| ||
It's better to write lib/gaia_core and then let the autocomplete of the terminal write the rest of the file |
There are other optional dependencies, you can install depending on your necessities
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[ldap]" |
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[azure]" |
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[nltk]" |
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[genai]" |
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[test]" |
Code Block |
---|
pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[all]" |
Tip |
---|
you can even try combinations like pip install "lib/gaia_core-VERSION_IN_PROJECT-py3-none-any.whl[genai,test]" |
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Required Dependencies
Optional Dependencies
|
Uninstall GAIA Core local library
In case you need to upgrade the version of gaia_core, we recommend to uninstall the current library using the command
Code Block |
---|
pip uninstall gaia_core |
Delete the whl file and replace it with the new one, and use the same command as above to install the new one
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 activated (if you did one, otherwise is the same process), install the dependencies stored in the pyproject.toml. To install them execute the following command:
Code Block |
---|
pip install -e . |
This will install the bare minimum necessary dependencies in order to run GAIA API
Note |
---|
Since 1.1.0 version |
There are other optional dependencies, you can install depending on your necessities
If you want to use LDAP authentication
Code Block |
---|
pip install -e ".[ldap]" |
Note |
---|
Not applicable for versions 3.0 or higher |
If you want to use genai and vectorization capabilities
Code Block |
---|
pip install -e ".[genai]" |
Note |
---|
Not applicable for versions 3.0 or higher |
If you want to use the unit testing
Code Block |
---|
pip install -e ".[test]" |
If you want to install all required and optional dependencies
Code Block |
---|
pip install -e ".[all]" |
Tip |
---|
you can even try combinations like pip install -e ".[genai,test]" |
If that didn't work try
Column | ||
---|---|---|
| ||
|
Column | ||
---|---|---|
| ||
or |
Column | ||
---|---|---|
| ||
|
If none of the previous commands worked, try looking at this troubleshooting article.
Tip | ||
---|---|---|
| ||
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
Code Block |
---|
pip install -e ".[test]" |
Note | ||
---|---|---|
| ||
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
Column | ||
---|---|---|
| ||
|
Column | ||
---|---|---|
| ||
or |
Column | ||
---|---|---|
| ||
|