AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Ryax is the low-code serverless and open-source solution to build faster your AI workflows and applications
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Developers, build your AI workflows and applications in record time; deploy at scale with serverless technology; self-host, install on any cloud and HPC, or use our hosted platform. Open-source, low-code.
WARNING: We develop on GitLab. The GitHub repository is a read-only mirror — please open issues and merge requests on GitLab instead. To see the whole application code, see https://gitlab.com/ryax-tech/ryax/README 전문 보기 ↗WARNING: We develop on GitLab. The GitHub repository is a read-only mirror — please open issues and merge requests on GitLab instead. To see the whole application code, see https://gitlab.com/ryax-tech/ryax/
Ryax is the new open-source hybrid workflow orchestrator to optimize your AI workflows and applications. Create AI workflows and orchestrate them over hybrid infrastructure (multi-HPC and multi-cloud).
Ryax is composed of multiple micro-services and tools. To learn more about the internal architecture, see the documentation. The main components are:
User interfaces
Micro-services
Ryax Actions
Others
Main technologies used by Ryax
The code: Python, dependency-injector, SQLalchemy, GRPC.
Around the code: Nix, uv, ruff, mypy.
Deploying Ryax: Kubernetes, Helm, Slurm.
All you need to install Ryax is a Kubernetes cluster. Supported versions are:
Hardware:
helm install ryax oci://registry.ryax.org/release-charts/ryax-engine -n ryaxns --create-namespace
Note that depending on the actions that you run on your cluster, you might need more resources.
This is the standard and recommended approach. It works on most managed Kubernetes services, like AWS EKS, Azure AKS, GCP GKE, and Scaleway Kapsule.
For more details on the configuration, see our documentation.
We recommend this option if you wish to test our product with a minimal amount of configuration steps, and if you have enough RAM (~3GB) and disk (20GB) available.
/!\ Warning: Do not use this setup in production!
/!\ Warning: To make it easier for you to access the cluster from your browser, we expose the ports 80 (HTTP) and 443 (HTTPS) on your local machine. Make sure these aren't already used!
Copy the docker-compose.yml and the minimal.yaml files from this repository and run:
docker-compose up -d
Check that your local k3s is started with:
export KUBECONFIG=$PWD/kubeconfig.yaml
kubectl get pods -A
Once all pods are running, run:
helm install ryax oci://registry.ryax.org/release-charts/ryax-engine -n ryaxns --create-namespace -f ./minimal.yaml
Be patient, this may take some minutes depending on your internet connection.
Once it's done, you can access your cluster at: http://localhost/app/login
The admin password is generated for your installation. The helm install output
above tells you how to read it back; here are the same two commands:
RYAX_USER=$(kubectl -n ryaxns get secret ryax-admin-credentials -o jsonpath='{.data.admin-user}' | base64 -d)
RYAX_PASSWORD=$(kubectl -n ryaxns get secret ryax-admin-credentials -o jsonpath='{.data.admin-password}' | base64 -d)
echo "$RYAX_USER / $RYAX_PASSWORD"
Change it from Users once you are logged in; the secret is not updated when you do.
Go to the Infrastructure > New Site and create a Kubernetes site called "Local". Now click on Add node pool and add a "k3s" node pool with the quantity of resources you want to give to Ryax actions, for example: 1000 mCPU and 2GB of memory. Copy the Site ID and the Node pool ID into variables or directly in the command and run:
SITE_ID="GET ME FROM UI"
NODE_POOL_ID="GET ME FROM UI"
helm install ryax-worker-k8s oci://registry.ryax.org/release-charts/ryax-worker-k8s -n ryaxns \
--set config.site.id=$SITE_ID \
--set 'config.site.spec.nodePools[0].id'=$NODE_POOL_ID \
--set 'config.site.spec.nodePools[0].selector.node\.kubernetes\.io/instance-type'=k3s
The same two objects can be created over the REST API, which is handy for
scripting the whole install. It needs jq:
JWT=$(curl -s -X POST http://localhost/api/authorization/login \
-H 'Content-Type: application/json' \
-d "{\"username\":\"$RYAX_USER\",\"password\":\"$RYAX_PASSWORD\"}" | jq -r .jwt)
SITE_ID=$(curl -s -X POST http://localhost/api/runner/sites \
-H "Authorization: Bearer $JWT" -H 'Content-Type: application/json' \
-d '{"name":"Local","type":"KUBERNETES"}' | jq -r .site_id)
# cpu is in millicores and memory in bytes: 1000 mCPU and 2GiB below.
# Use "arm64" as architecture on an ARM machine.
NODE_POOL_ID=$(curl -s -X POST http://localhost/api/runner/node-pools \
-H "Authorization: Bearer $JWT" -H 'Content-Type: application/json' \
-d "{\"site_id\":\"$SITE_ID\",\"name\":\"k3s\",\"architecture\":\"x86_64\",
\"cpu\":1000,\"memory\":2147483648,
\"energy_score\":50,\"performance_score\":50,\"cost_score\":50,
\"filter_no_gpu_action\":false}" | jq -r .node_pool_id)
echo "SITE_ID=$SITE_ID NODE_POOL_ID=$NODE_POOL_ID"
Then run the helm install above — $SITE_ID and $NODE_POOL_ID are already set.
Now you can add actions to your Library by adding the default-action repository: https://gitlab.com/ryax-tech/workflows/default-actions.git Scan it, build useful triggers like, for example, Emit Every, HTTP API JSON, Run once, and HTTP POST. Also, build some example actions like Echo and Cat content of a file. Then, you can create your own workflows from the Dashboard and deploy them on your cluster!
For more detailed use cases, see the Quick Start Guide.
To uninstall your cluster, stop it with:
docker-compose down -v
A more complete roadmap will be published soon.
If you want to say thank you and/or support the active development of Ryax: