AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Copyright (c) 2009-2022 EPAM Systems, Inc.
Licensed under the Apache License version 2.0
This repository includes:
Detailed documentation is available at http://lifescience.opensource.epam.com
Changelog could be found in CHANGELOG.md.
https://lifescience.opensource.epam.com/download/indigo.html
Main directory structure layout:
api: Indigo API sourcesbingo: Bingo sourcescore: Core algorithms and data structures sourcesthird_party: sources for third-party librariesutils: utilities sourcesEach project is placed in the corresponding directory with CMakeList.txt configuration file, that does not include other projects. In order to build the whole project with the correct references you need to use CMake configurations from the build_scripts directory.
This is an alternative setup solution next to have it on your PC directly. It builds on having the tools in a docker container and VSCode acts as a client.
The first time takes some minutes but afterwards you can directly develop from VSCode.
Remark for Windows Users: Its a known limitation that on windows the overlay driver is super slow, so if you want to have a fast IDE, clone your container into a volume rather than natively on the client or in your WSL distribution.
To build the project from the sources, the following tools should be installed:
Required:
Required to build all targets:
Required to build Indigo-WASM:
Python
python -m pip install wheelpython -m pip install setuptools==68.0.0python -m pip install waitresspython -m pip install flasggerpython -m pip install psycopg2python -m pip install sqlalchemypython -m pip install numpypython -m pip install celerypython -m pip install marshmallowpython -m pip install redispython -m pip install flask_httpauthpython -m pip install pyparsingpython -m pip install requestspython -m pip install pillowOn Linux use python3 insted of python. Using virtual environment might be required as well.
On Windows use cmd to run the commands.
Create build folder
mkdir build
Move to build folder
cd build
Run CMake to configure the project with desired options. For instance:
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=ON -DBUILD_INDIGO_UTILS=ON
Build Indigo from console:
cmake --build . --config Release --target <target name>
Replace <target name> with any of the following targets you need:
Build results could be collected from Indigo/dist folder.
'indigo-python' target is commonly used.
Befor running any test you have to build and install indigo-python
--target indigo-python or --target ALL_BUILD(on Windows) or --target all(on Linux). See Build instruction above.
- On Windows the package should be in 'Indigo/api/python/dist' folder
- On Linux it is located in 'Indigo\dist' folder
Package will be named like 'epam.indigo-<version-arch>.whl'. For instance: epam.indigo-1.29.0.dev2-py3-none-win_amd64.whl
Install package using pip
- If Indigo package has been already installed, uninstall it with the following command:
python -m pip uninstall <path-to-.whl-file> -y
python -m pip install <path-to-.whl-file>
Replace <path-to-.whl-file> with the right path to .whl package. For instance:
python -m pip install ../api/python/dist/epam.indigo-1.29.0.dev2-py3-none-win_amd64.whl
Run integration test
to run all test
python api/tests/integration/test.py -t 1
to run tests by mask use
test_name
python api/tests/integration/test.py -t 1 -p test_name
to update all tests "ref/" using -u flag
python api/tests/integration/test.py -u
to update all tests "ref/" without -u flag
export INDIGO_UPDATE_TESTS="True"
python api/tests/integration/test.py
to update a single test's "ref/" by mask use
test_nameand -u flag
python api/tests/integration/test.py -t 1 -p test_name -u
Build and install indigo-python
Set environment variable by running this command:
for Linux
export INDIGO_SERVICE_URL=http://localhost:5000/v2
for Windows in PowerShell
$env:INDIGO_SERVICE_URL="http://localhost:5000/v2"
Run backend service :
cd utils/indigo-service/backend/service
cp v2/common/config.py .
waitress-serve --listen="127.0.0.1:5000 [::1]:5000" app:app
you may use any port instead of 5000
Run backend API test:
python utils/indigo-service/backend/service/tests/api/indigo_test.py`
use
-k test_nameto run test by pattern.
Make sure git is running from path:
>git --version
git version 2.26.2.windows.1
Make sure python is running from path:
>python --version
Python 3.9.0
Make sure cmake is running from path:
>cmake --version
cmake version 3.18.4
Download corresponding ninja-xxx.zip and unpack to folder on path. Make sure it's running from path:
>ninja --version
1.10.2
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
Note: On Windows, run emsdk instead of ./emsdk, and emsdk_env.bat instead of source ./emsdk_env.sh, use cmd instead of powershell.
Clone (or checkout) Indigo repository
>git clone https://github.com/epam/Indigo.git
For each new session, set environment anew:
>cd emsdk
>./emsdk activate latest
If fresh build:
>mkdir build
>cd build
Now build:
>emcmake cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja
>ninja indigo-ketcher-js-test
Prepare conda build environment as described at https://docs.conda.io/projects/conda-build/en/stable/install-conda-build.html Change directory to ```recipe-conda``, set INDIGO_VERSION to existing Indigo version(already published at PyPi), run conda build: Linux/Mac:
>cd conda-recipe
>INDIGO_VERSION=1.29.0 conda build .
Windows(using cmd):
>cd conda-recipe
>set INDIGO_VERSION=1.29.0
>conda build .
To upload packages: install anaconda-client, login, and upload packet using command provided by conda-build in output
>conda install anaconda-client
>anaconda login
Enter username:
Enter password:
>anaconda upload /conda-build-dir/packet-name