To install without cloning, run the following command:
pip install git+https://github.com/CentML/centml-python-client.git@mainAlternatively to build from source, clone this repo then inside the project's base directory, run the following command:
pip install . For interactive use, authenticate once with the CLI. SDK examples reuse the stored credentials and refresh them when needed.
centml login
python examples/sdk/validate_auth.pyFor service-to-service use, provide both service-account environment variables:
export CENTML_SERVICE_ACCOUNT_ID="<service-account-id>"
export CENTML_SERVICE_ACCOUNT_SECRET="<service-account-secret>"
python examples/sdk/validate_auth.pyCENTML_PLATFORM_API_URL can be set when targeting a non-production API.
The Dynamo example uses SDK authentication separately from the bearer token that protects the deployed inference endpoint:
export CENTML_CLUSTER_ID="<cluster-id>"
export CENTML_HARDWARE_INSTANCE_ID="<hardware-instance-id>"
export CENTML_ENDPOINT_BEARER_TOKEN="<new-endpoint-token>"
# Required only for gated Hugging Face models:
export HF_TOKEN="<hugging-face-token>"
python examples/sdk/create_dynamo.pyUse python examples/sdk/get_clusters.py and
python examples/sdk/manage_hardware_instances.py to discover the required IDs.
Creating the example reserves GPU capacity and may incur usage charges. It does not
delete the deployment automatically.
Logs are read per pod. Discover pod names with get_deployment_pods() (terminated
pods still within log retention are included), then read with a
deployment_log_session(): fetch_older() pages toward the beginning of history and
fetch_newer() returns only new lines, while the session keeps the merged, ordered
log in .events. get_deployment_logs_range() fetches a specific time window
(epoch-millisecond bounds, both optional) and, with pod=None, merges every pod's
stream chronologically. The same paging is available statelessly through
get_deployment_logs(before=..., after=...), anchored on events you already hold
or on a bare epoch-millisecond boundary:
python examples/sdk/get_deployment_logs.pyTo uninstall centml, simply do:
pip uninstall centmlOnce installed, use the centml CLI tool with the following command:
centml If you want tab completion, run
source scripts/completions/completion.<shell language>Shell language can be: bash, zsh, fish
(Hint: add source /path/to/completions/completion.<shell language> to your ~/.bashrc, ~/.zshrc or ~/.config/fish/completions/centml.fish)
To run tests, first install required packages:
pip install -r requirements-dev.txt
cd testsWhen running on a local machine, it is recommended to run tests with the following command. This skips tests that require a GPU.
pytest --sanityTo run all the tests, use:
pytest-
SSLcertificate onMacOSSometimes, you will see issues when using command like
centml cluster [CMD], where the output might look like:File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/urllib3/util/retry.py", line 519, in increment raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.centml.com', port=443): Max retries exceeded with url: /deployments (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)')))Solution: To fix this issue, navigate to your
pythoninstallation directory and run theInstall Certificates.commandfile located there.For example, if you are using
python3.10, the file path would be:/Applications/Python 3.10/Install Certificates.command