Skip to main content

Backend.AI Client

PyPI version Python Versions SDK Documentation Build Status (Windows) Code Coverage

The official client SDK for Backend.AI

Usage (KeyPair mode)

You should set the access key and secret key as environment variables to use the API. Grab your keypair from cloud.backend.ai or your cluster admin.

On Linux/macOS, create a shell script as my-backend-ai.sh and run it before using the backend.ai command:

export BACKEND_ACCESS_KEY=...
export BACKEND_SECRET_KEY=...
export BACKEND_ENDPOINT=https://my-precious-cluster
export BACKEND_ENDPOINT_TYPE=api

On Windows, create a batch file as my-backend-ai.bat and run it before using the backend.ai command:

chcp 65001
set PYTHONIOENCODING=UTF-8
set BACKEND_ACCESS_KEY=...
set BACKEND_SECRET_KEY=...
set BACKEND_ENDPOINT=https://my-precious-cluster
set BACKEND_ENDPOINT_TYPE=api

Note that you need to switch to the UTF-8 codepage for correct display of special characters used in the console logs.

Usage (Session mode)

Change BACKEND_ENDPOINT_TYPE to “session” and set the endpoint to the URL of your console server.

export BACKEND_ENDPOINT=https://my-precious-cluster
export BACKEND_ENDPOINT_TYPE=session
$ backend.ai login
User ID: myid@mydomain.com
Password:
✔ Login succeeded!

$ backend.ai ...  # run any command

$ backend.ai logout
✔ Logout done.

The session expiration timeout is set by the console server.

Command-line Interface

backend.ai command is the entry point of all sub commands. (Alternatively you can use a verbosely long version: python -m ai.backend.client.cli)

Highlight: run command

The run command execute a code snippet or code source files on a Backend.AI compute session created on-the-fly.

To run the code specified in the command line directly, use -c option to pass the code string (like a shell).

$ backend.ai run python:3.6-ubuntu18.04 -c "print('hello world')"
∙ Client session token: d3694dda6e5a9f1e5c718e07bba291a9
✔ Kernel (ID: zuF1OzMIhFknyjUl7Apbvg) is ready.
hello world

By default, you need to specify language with full version tag like python:3.6-ubuntu18.04. Depending on the Backend.AI admin’s language alias settings, this can be shortened just as python. If you want to know defined language aliases, contact the admin of Backend.AI server.

For more complicated programs, you may upload multiple files and then build & execute them. The below is a simple example to run a sample C program.

$ git clone https://gist.github.com/achimnol/df464c6a3fe05b21e9b06d5b80e986c5 c-example
Cloning into 'c-example'...
Unpacking objects: 100% (5/5), done.
$ cd c-example
$ backend.ai run gcc:gcc6.4-alpine3.8 main.c mylib.c mylib.h
∙ Client session token: 1c352a572bc751a81d1f812186093c47
✔ Kernel (ID: kJ6CgWR7Tz3_v2WsDHOwLQ) is ready.
✔ Uploading done.
✔ Build finished.
myvalue is 42
your name? LABLUP
hello, LABLUP!

Please refer the --help manual provided by the run command.

Highlight: start and app command

backend.ai start is simliar to the run command in that it creates a new compute session, but it does not execute anything there. You can subsequently call backend.ai run -t <sessionId> ... to execute codes snippets or use backend.ai app command to start a local proxy to a container service such as Jupyter which runs inside the compute session.

$ backend.ai start -t mysess -r cpu=1 -r mem=2g lablup/python:3.6-ubuntu18.04
∙ Session ID mysess is created and ready.
∙ This session provides the following app services: ipython, jupyter, jupyterlab
$ backend.ai app mysess jupyter
∙ A local proxy to the application "jupyter" provided by the session "mysess" is available at: http://127.0.0.1:8080

Highlight: ps and rm command

You can see the list of currently running sessions using your API keypair.

$ backend.ai ps
Session ID    Lang/runtime              Tag    Created At                        Terminated At    Status      CPU Cores    CPU Used (ms)    Total Memory (MiB)    Used Memory (MiB)    GPU Cores
------------  ------------------------  -----  --------------------------------  ---------------  --------  -----------  ---------------  --------------------  -------------------  -----------
88ee10a027    lablup/python:3.6-ubuntu         2018-12-11T03:53:14.802206+00:00                   RUNNING             1            16314                  1024                 39.2            0
fce7830826    lablup/python:3.6-ubuntu         2018-12-11T03:50:10.150740+00:00                   RUNNING             1            15391                  1024                 39.2            0

If you set -t option in the run command, it will be used as the session ID—you may use it to assign a human-readable, easy-to-type alias for your sessions. These session IDs can be reused after the current session using the same ID terminates.

To terminate a session, you can use terminate or rm command.

$ backend.ai rm 5baafb2136029228ca9d873e1f2b4f6a
✔ Done.

Highlight: proxy command

To use API development tools such as GraphiQL for the admin API, run an insecure local API proxy. This will attach all the necessary authorization headers to your vanilla HTTP API requests.

$ backend.ai proxy
∙ Starting an insecure API proxy at http://localhost:8084

More commands?

Please run backend.ai --help to see more commands.

Troubleshooting (FAQ)

  • There are error reports related to simplejson with Anaconda on Windows. This package no longer depends on simplejson since v1.0.5, so you may uninstall it safely since Python 3.5+ offers almost identical json module in the standard library.

    If you really need to keep the simplejson package, uninstall the existing simplejson package manually and try reinstallation of it by downloading a pre-built binary wheel from here.

Metadata

Release files for backend.ai-client 26.4.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for backend.ai-client 26.4.15
File Size Uploaded
backend_ai_client-26.4.15.tar.gz 311.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for backend.ai-client 26.4.15
File Interpreter ABI Platform
backend_ai_client-26.4.15-py3-none-any.whl Python 3 none any Details

Total release size: 789.4 kB

Release files / backend_ai_client-26.4.15.tar.gz

Download URL backend_ai_client-26.4.15.tar.gz
Size 311.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b44e925132c6d78b9b0ef6ac714fcdac7d7189de6258e7e0548a506e8458c1d5
BLAKE2b-256 checksum
How to use checksums
82440b938690e364c3f7f59f1468613b22083999bc244e06ffd028f1b28772de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / backend_ai_client-26.4.15-py3-none-any.whl

Download URL backend_ai_client-26.4.15-py3-none-any.whl
Size 478.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2cb969dd5658075caa43e74d2f972bed1962e592d484d38555a0a6039a3d06a4
BLAKE2b-256 checksum
How to use checksums
7231a5b97d71f2affd4fa8d1fd2a1db1e9deb6cd588d67ca0bc68dcc9424da83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

26.9.5

2 release files

26.9.4

2 release files

26.9.3

2 release files

26.9.2

2 release files

26.8.1

2 release files

26.8.0

2 release files

This release

26.4.15 This release

2 release files

26.4.9

2 release files

26.4.8

2 release files

26.4.6

2 release files

26.4.5

2 release files

26.4.4

2 release files

26.4.3

2 release files

26.4.2

2 release files

26.4.1

2 release files

26.3.3

2 release files

26.3.2

2 release files

26.3.1

2 release files

26.3.0

2 release files

26.2.5

2 release files

26.2.4

2 release files

26.2.3

2 release files

26.2.2

2 release files

26.2.1

2 release files

26.2.0

2 release files

26.1.0

2 release files

25.8.1

2 release files

25.8.0

2 release files

25.7.0

2 release files

25.6.7

2 release files

25.6.6

2 release files

25.6.4

2 release files

25.6.3

2 release files

25.6.2

2 release files

25.6.1

2 release files

25.6.0

2 release files

25.5.2

2 release files

25.5.1

2 release files

25.5.0

2 release files

25.4.0

2 release files

25.3.3

2 release files

25.3.2

2 release files

25.3.1

2 release files

25.3.0

2 release files

25.1.1

2 release files

24.12.0

1 release file

24.9.7

2 release files

24.9.4

2 release files

24.9.2

2 release files

24.9.1

2 release files

24.9.0

2 release files

24.3.9

2 release files

24.3.8

2 release files

24.3.6

2 release files

24.3.5

2 release files

24.3.3

2 release files

24.3.2

2 release files

23.9.8

2 release files

23.9.6

2 release files

23.9.3

2 release files

23.9.2

2 release files

23.9.1

2 release files

23.9.0

2 release files

23.3.9

2 release files

23.3.6

2 release files

23.3.5

2 release files

23.3.4

2 release files

23.3.3

2 release files

23.3.0

2 release files

22.9.9

2 release files

22.9.8

2 release files

22.9.5

2 release files

22.9.4

2 release files

22.9.3

2 release files

22.9.2

2 release files

22.9.0

2 release files

22.3.9

2 release files

22.3.8

2 release files

22.3.7

2 release files

22.3.6

2 release files

22.3.0

2 release files

21.9.5

2 release files

21.9.3

2 release files

21.9.2

2 release files

21.9.1

2 release files

21.3.9

2 release files

21.3.7

2 release files

21.3.6

2 release files

21.3.5

2 release files

21.3.4

2 release files

21.3.3

2 release files

21.3.2

2 release files

21.3.1

2 release files

21.3.0

2 release files

20.9.9

2 release files

20.9.8

2 release files

20.9.7

2 release files

20.9.6

2 release files

20.9.5

2 release files

20.9.4

2 release files

20.9.3

2 release files

20.9.0

2 release files

20.3.8

2 release files

20.3.7

2 release files

20.3.4

2 release files

20.3.3

2 release files

20.3.2

2 release files

20.3.1

2 release files

20.3.0

2 release files

19.9.9

2 release files

19.9.8

2 release files

19.9.7

2 release files

19.9.6

2 release files

19.9.4

2 release files

19.9.1

2 release files

19.3.2

2 release files

19.3.1

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page