Algorithm Configurations

Configuring algorithms with parameters and data sources

Algorithm Configurations

Algorithm Configurations allow you to specify parameter values and data sources for your algorithm without modifying the Algorithm Version itself.

What is an Algorithm Configuration?

An Algorithm Configuration consists of:

  • Algorithm Version - Which version of the algorithm to use
  • Data Sources - Which data sources to use for each input Data Type
  • Parameters - User-specified parameter values (overriding defaults)

Creating a Configuration

from elements.sdk.elements_sdk import ElementsSDK

sdk = ElementsSDK()

config = await sdk.algorithm_config.create(
    algorithm_version_id="version-id-here",
    name="my-config",
    params={
        'data_sources': [
            {
                'data_type_name': 'pings',
                'data_source_ids': ['safegraph_pings']
            }
        ],
        'parameters': {
            'look_back_time': 1800,
            'look_forward_time': 3600
        }
    }
)

Configuration Structure

The params object contains:

data_sources

Specifies which data sources to use:

'data_sources': [
    {
        'data_type_name': 'pings',  # Must match manifest input
        'data_source_ids': ['safegraph_pings', 'cuebiq_pings']  # One or more sources
    }
]

parameters

Override default parameter values:

'parameters': {
    'look_back_time': 1800,  # Override default
    'look_forward_time': 3600,
    'override_visit_time': False
}

All parameters from the manifest can be overridden. Parameters not specified will use their default values.

Managing Configurations

Get Configuration

config = await sdk.algorithm_config.get(
    algorithm_config_id=config_id
)

List Configurations

configs = await sdk.algorithm_config.list(
    algorithm_version_id=version_id
)

Update Configuration

await sdk.algorithm_config.update(
    algorithm_config_id=config_id,
    name="updated-config-name",
    params={...}
)

Deprecate Configuration

await sdk.algorithm_config.deprecate(
    algorithm_config_id=config_id
)

Delete Configuration

await sdk.algorithm_config.delete(
    algorithm_config_id=config_id
)

Next Steps