Setting Up an AI Server

Read this page if you'll host an AI server or perform inference with a local server.

Starting an AI Server

Use PySDK to configure and launch an AI server. The server runs on your host and processes inference requests from remote clients.

You can start the AI server in several ways:

  • running AI server from a terminal directly on the host OS.

  • running AI server as a Linux system service.

  • running AI server with a Docker container.

Terminal

To run the PySDK AI server from a terminal, perform the following steps:

1

Create or select a user with administrative rights

Choose a user with administrative rights on the host.

2

Set up a Python virtual environment

For convenience and future maintenance, install PySDK in a Python virtual environment. Ensure Python and PySDK are installed in the virtual environment.

3

Create a directory for the local model zoo

Create a directory for hosting a local model zoo.

mkdir /home/<your_username>/zoo
4

Download models to the local model zoo

Download the models from the DeGirum AI Hub Model Zoo to the directory created earlier:

degirum download-zoo --path /home/<your_username>/zoo --token "token string" [--url "model_zoo_url"]
  • "token string": Your AI Hub access token from the DeGirum AI Hub.

  • Optional model_zoo_url: The URL for the model zoo in the format "https://hub.degirum.com/<organization>/<zoo>". If omitted, the public model zoo will be used.

5

Start the AI server

Launch the server with the following command:\

degirum server --zoo /home/<your_username>/zoo

The server runs until you press ENTER in the terminal. By default, it listens on TCP port 8778. To specify a different port, use the --port argument:

degirum server --zoo /home/<your_username>/zoo --port <your_port>

Linux Service

To automatically start the server on boot, configure it as a Linux service:

1

Complete the terminal setup steps

Follow all steps in Starting AI Server from Terminal except for launching the server.

2

Create a systemd service configuration file

Create a file named degirum.service in the /etc/systemd/system directory. Use the following template:

[Unit]
Description=DeGirum AI Service

[Service]
WorkingDirectory=/home/<your_username>/
ExecStart=<path_to_python> -m degirum.server --zoo /home/<your_username>/zoo
Restart=always
RestartSec=10
SyslogIdentifier=degirum-ai-server
User=<your_username>

[Install]
WantedBy=multi-user.target
3

Start the service

Start the service using systemctl:

sudo systemctl start degirum.service
4

Check the service status

Check the service status using systemctl:

sudo systemctl status degirum.service
5

Enable the service on startup

Use systemctl to automatically enable the degirum service on startup:

sudo systemctl enable degirum.service

Docker Container

To run the AI server as a Docker container, follow these steps:

1

Ensure Docker is installed

Refer to the official Docker documentation for installation instructions

2

Prepare the local model zoo

If hosting models locally, create and populate the model zoo directory as described in Starting AI Server from Terminal.

3

Run the Docker container

When hosting models locally:

docker run --name <your_server_name> -d -p 8778:8778 -v <your local model zoo>:/zoo --privileged degirum/<your_server_name>:<version>
   

When serving models only from AI Hub:

docker run --name <your_server_name> -d -p 8778:8778 --privileged degirum/<your_server_name>:<version>

Rescanning Model Zoos

If you started your AI server in a terminal or as a Linux service, you can tell the AI server to rescan the local model zoo directory by executing the following command on the same host: degirum server rescan-zoo

If you started your AI server in the Docker container, then you should rescan the model zoo directory by restarting the container: docker restart <your_server_name>

Last updated

Was this helpful?