Driverless AI Engine profiles
Driverless AI (DAI) Engine profiles extend the common profile fields with configuration editability controls, TOML-based configuration layering, Triton Inference Server support, and storage constraints. For background on how profiles work, see Engine profiles.
Profile fields
The following table lists the fields specific to DAI Engine profiles. For shared fields (CPU, GPU, memory, timeouts, and OIDC roles), see the shared profile fields table.
| Field | Required | Type | Description |
|---|---|---|---|
storage_bytes_constraint | Required | Numeric constraint | Allowed range for persistent storage allocated to the engine |
config_editability | Required | Enum | Controls whether users can edit the DAI configuration. See Configuration editability |
base_configuration | Optional | Map (string to string) | Default DAI configuration key-value pairs. With CONFIG_EDITABILITY_BASE_CONFIG_ONLY, users can override only these keys. With CONFIG_EDITABILITY_FULL, users can also add new keys |
configuration_override | Optional | Map (string to string) | DAI configuration key-value pairs that always take precedence. Users cannot change these values |
triton_enabled | Optional | Boolean | Whether to turn on the embedded NVIDIA Triton Inference Server for engines created with this profile. Useful for low-latency model scoring |
max_non_interaction_duration | Optional | Duration | Maximum time an engine can run without user interaction before pausing |
max_unused_duration | Optional | Duration | Maximum time an engine can remain unused before pausing |
Configuration editability
Driverless AI engines use a TOML configuration file to control runtime behavior. The config_editability field determines how much of this configuration users can modify when creating an engine:
| Mode | Description |
|---|---|
CONFIG_EDITABILITY_FULL | Users can edit DAI configuration keys when creating an engine, except for keys reserved by the core configuration and the profile's configuration_override |
CONFIG_EDITABILITY_BASE_CONFIG_ONLY | Users can edit only the keys defined in base_configuration |
CONFIG_EDITABILITY_DISABLED | Users cannot edit the DAI configuration. The engine uses only the values set in the profile |
- Use
CONFIG_EDITABILITY_FULLfor data science teams who need to tune DAI settings for different experiments. - Use
CONFIG_EDITABILITY_BASE_CONFIG_ONLYwhen you want to expose a controlled set of parameters (such asaccuracyortime_column) while locking down the rest. - Use
CONFIG_EDITABILITY_DISABLEDfor standardized environments where consistency across all engines matters more than flexibility.
Configuration priority
When a DAI engine starts, the platform merges multiple sources to produce the final configuration, in this order (highest priority first):
configuration_override(profile-defined, not user-editable)- Core configuration (platform defaults, not user-editable)
- User-specified configuration (set during engine creation)
base_configuration(profile-defined defaults, overridable when permitted)
Manage DAI Engine profiles with the Python client
For installation instructions, see Python client installation.
List available profiles
To list profiles assigned to you based on your OIDC roles:
import h2o_engine_manager
aiem = h2o_engine_manager.login()
dai_engine_profile_client = aiem.dai_engine_profile_client
profiles = dai_engine_profile_client.list_all_assigned_dai_engine_profiles(
parent="workspaces/global"
)
for profile in profiles:
print(f"{profile.name}: {profile.display_name}")
Create a profile (administrator)
from h2o_engine_manager.clients.dai_engine_profile.dai_engine_profile import DAIEngineProfile
from h2o_engine_manager.clients.constraint.profile_constraint_numeric import ProfileConstraintNumeric
from h2o_engine_manager.clients.constraint.profile_constraint_duration import ProfileConstraintDuration
from h2o_engine_manager.clients.dai_engine_profile.config_editability import ConfigEditability
profile = DAIEngineProfile(
display_name="Data Science Team - GPU",
priority=1,
enabled=True,
assigned_oidc_roles_enabled=True,
assigned_oidc_roles=["data-science-team"],
max_running_engines=3,
cpu_constraint=ProfileConstraintNumeric(minimum="1", default="4", maximum="16"),
gpu_constraint=ProfileConstraintNumeric(minimum="0", default="1", maximum="4"),
memory_bytes_constraint=ProfileConstraintNumeric(
minimum="4Gi", default="16Gi", maximum="64Gi"
),
storage_bytes_constraint=ProfileConstraintNumeric(
minimum="10Gi", default="50Gi", maximum="100Gi"
),
max_idle_duration_constraint=ProfileConstraintDuration(
minimum="30m", default="1h", maximum="8h"
),
max_running_duration_constraint=ProfileConstraintDuration(
minimum="1h", default="8h", maximum="1d"
),
config_editability=ConfigEditability.CONFIG_EDITABILITY_FULL,
triton_enabled=True,
)
created = dai_engine_profile_client.create_dai_engine_profile(
parent="workspaces/global",
dai_engine_profile=profile,
dai_engine_profile_id="ds-team-gpu",
)
print(f"Created profile: {created.name}")
Update a profile (administrator)
To update specific fields of an existing profile, retrieve it first, modify the fields, and pass an update_mask specifying which fields to update:
profile = dai_engine_profile_client.get_dai_engine_profile(
name="workspaces/global/daiEngineProfiles/ds-team-gpu"
)
profile.max_running_engines = 5
profile.gpu_constraint = ProfileConstraintNumeric(minimum="0", default="2", maximum="8")
updated = dai_engine_profile_client.update_dai_engine_profile(
dai_engine_profile=profile,
update_mask="max_running_engines,gpu_constraint",
)
print(f"Updated profile: {updated.name}")
Pass update_mask="*" to update all fields at once.
Delete a profile (administrator)
dai_engine_profile_client.delete_dai_engine_profile(
name="workspaces/global/daiEngineProfiles/ds-team-gpu"
)
Create an engine with a profile
When the profile allows configuration editing (CONFIG_EDITABILITY_FULL or CONFIG_EDITABILITY_BASE_CONFIG_ONLY), you can pass a config dictionary to set Driverless AI configuration values at engine creation.
profiles = dai_engine_profile_client.list_all_assigned_dai_engine_profiles(
parent="workspaces/global"
)
selected_profile = profiles[0]
engine = aiem.dai_engine_client.create_engine(
workspace_id="default",
engine_id="my-dai-engine",
display_name="My DAI Engine",
profile=selected_profile.name,
dai_engine_version="workspaces/global/daiEngineVersions/1.10.7",
cpu=8,
gpu=1,
memory_bytes="32Gi",
storage_bytes="64Gi",
max_idle_duration="1h",
max_running_duration="8h",
config={"accuracy": "5", "time_column": "date"},
)
Related topics
- Submit and view feedback for this page
- Send feedback about AI Engine Manager to cloud-feedback@h2o.ai