Skip to main content

Migration from Steam

AI Engine Manager (AIEM) is a new provider of AI Engines (Driverless AI and H2O-3) in the HAIC (H2O AI Cloud) and introduces a new API and a corresponding Python client.

AIEM is replacing Steam, causing a breaking change affecting all Python scrips, Wave apps, Jupyter Notebooks, or other python projects that use Steam.

We ask that you migrate all use of the Steam Python API to the new AIEM client as soon as possible, and we are here to assist in the process. Please contact us with questions and feature requests.

Documentation

The documentation for the client is available here. Make sure to read through the examples section.

Workspaces

Workspaces are the future way of organizing resources in HAIC (not just AIEM). Almost everything is a resource (AI Engines, models, app instances, etc.). All resources belong to a workspace, and a user can be a member of multiple workspaces.

The current HAIC does not have workspace support enabled, but you must still specify a workspace ID when creating AIEM engines. You must only use a workspace called default with AIEM at this time.

DAI client management

Steam manages the H2O Driverless AI (DAI) client centrally, so the Steam client downloads the DAI client from the Steam server before connecting. AIEM does not do that, and the DAI client must be installed in the Python environment to support connecting to DAI engines.

AIEM client declares the DAI client as a dependency so that pip install should fetch the latest version of the DAI client. There should be nothing to do on the app side as long as the AIEM client is in the requirements.txt.

H2O client management

The h2o Python client has a limitation that it is not backward compatible. It requires the Python client version to exactly match the backend version offered by AIEM. It is the responsibility of the app developer to ensure the versions match. This behaviour is the same in Steam and AIEM.

FAQ

Where are profiles?

Profiles are not part of AIEM, and workspaces mostly replace their functionality.

The engine has been starting for a long time. What's going on?

There is no longer a timeout when creating engines, so engines will not fail if they take a long time to start.

When the engine is in a STARTING state, AIEM is waiting on the infrastructure to provide a worker. There is nothing a user can do in this case.

On the other hand, when the engine is in CONNECTING state for an extensive period of time, it is a sign that the engine is unhealthy (engine bug, hang, or connection issue). The engine may recover, but it may be best to restart the engine.


Feedback